xref: /linux/arch/mips/include/uapi/asm/shmbuf.h (revision 0d3b051adbb72ed81956447d0d1e54d5943ee6f5)
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 	long			shm_atime;	/* last attach time */
21 	long			shm_dtime;	/* last detach time */
22 	long			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 */
59