1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2 #ifndef _ASM_POWERPC_SHMBUF_H
3 #define _ASM_POWERPC_SHMBUF_H
4
5 /*
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12 /*
13 * The shmid64_ds structure for PPC architecture.
14 *
15 * Note extra padding because this structure is passed back and forth
16 * between kernel and user space.
17 *
18 * Pad space is left for:
19 * - 2 miscellaneous 32-bit values
20 */
21
22 struct shmid64_ds {
23 struct ipc64_perm shm_perm; /* operation perms */
24 #ifdef __powerpc64__
25 __kernel_time_t shm_atime; /* last attach time */
26 __kernel_time_t shm_dtime; /* last detach time */
27 __kernel_time_t shm_ctime; /* last change time */
28 #else
29 unsigned long shm_atime_high;
30 unsigned long shm_atime; /* last attach time */
31 unsigned long shm_dtime_high;
32 unsigned long shm_dtime; /* last detach time */
33 unsigned long shm_ctime_high;
34 unsigned long shm_ctime; /* last change time */
35 unsigned long __unused4;
36 #endif
37 size_t shm_segsz; /* size of segment (bytes) */
38 __kernel_pid_t shm_cpid; /* pid of creator */
39 __kernel_pid_t shm_lpid; /* pid of last operator */
40 unsigned long shm_nattch; /* no. of current attaches */
41 unsigned long __unused5;
42 unsigned long __unused6;
43 };
44
45 struct shminfo64 {
46 unsigned long shmmax;
47 unsigned long shmmin;
48 unsigned long shmmni;
49 unsigned long shmseg;
50 unsigned long shmall;
51 unsigned long __unused1;
52 unsigned long __unused2;
53 unsigned long __unused3;
54 unsigned long __unused4;
55 };
56
57 #endif /* _ASM_POWERPC_SHMBUF_H */