Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / arch / mips / include / uapi / asm / shmbuf.h
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _ASM_SHMBUF_H
3 #define _ASM_SHMBUF_H
4
5 /*
6  * The shmid64_ds structure for the MIPS architecture.
7  * Note extra padding because this structure is passed back and forth
8  * between kernel and user space.
9  *
10  * As MIPS was lacking proper padding after shm_?time, we use 48 bits
11  * of the padding at the end to store a few additional bits of the time.
12  * libc implementations need to take care to convert this into a proper
13  * data structure when moving to 64-bit time_t.
14  */
15
16 #ifdef __mips64
17 struct shmid64_ds {
18         struct ipc64_perm       shm_perm;       /* operation perms */
19         size_t                  shm_segsz;      /* size of segment (bytes) */
20         __kernel_time_t         shm_atime;      /* last attach time */
21         __kernel_time_t         shm_dtime;      /* last detach time */
22         __kernel_time_t         shm_ctime;      /* last change time */
23         __kernel_pid_t          shm_cpid;       /* pid of creator */
24         __kernel_pid_t          shm_lpid;       /* pid of last operator */
25         unsigned long           shm_nattch;     /* no. of current attaches */
26         unsigned long           __unused1;
27         unsigned long           __unused2;
28 };
29 #else
30 struct shmid64_ds {
31         struct ipc64_perm       shm_perm;       /* operation perms */
32         size_t                  shm_segsz;      /* size of segment (bytes) */
33         unsigned long           shm_atime;      /* last attach time */
34         unsigned long           shm_dtime;      /* last detach time */
35         unsigned long           shm_ctime;      /* last change time */
36         __kernel_pid_t          shm_cpid;       /* pid of creator */
37         __kernel_pid_t          shm_lpid;       /* pid of last operator */
38         unsigned long           shm_nattch;     /* no. of current attaches */
39         unsigned short          shm_atime_high;
40         unsigned short          shm_dtime_high;
41         unsigned short          shm_ctime_high;
42         unsigned short          __unused1;
43 };
44 #endif
45
46 struct shminfo64 {
47         unsigned long   shmmax;
48         unsigned long   shmmin;
49         unsigned long   shmmni;
50         unsigned long   shmseg;
51         unsigned long   shmall;
52         unsigned long   __unused1;
53         unsigned long   __unused2;
54         unsigned long   __unused3;
55         unsigned long   __unused4;
56 };
57
58 #endif /* _ASM_SHMBUF_H */