1 #ifndef _I386_SHMBUF_H
2 #define _I386_SHMBUF_H
3 
4 /*
5  * The shmid64_ds structure for i386 architecture.
6  * Note extra padding because this structure is passed back and forth
7  * between kernel and user space.
8  *
9  * Pad space is left for:
10  * - 64-bit time_t to solve y2038 problem
11  * - 2 miscellaneous 32-bit values
12  */
13 
14 struct shmid64_ds {
15 	struct ipc64_perm	shm_perm;	/* operation perms */
16 	size_t			shm_segsz;	/* size of segment (bytes) */
17 	__kernel_time_t		shm_atime;	/* last attach time */
18 	unsigned long		__unused1;
19 	__kernel_time_t		shm_dtime;	/* last detach time */
20 	unsigned long		__unused2;
21 	__kernel_time_t		shm_ctime;	/* last change time */
22 	unsigned long		__unused3;
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		__unused4;
27 	unsigned long		__unused5;
28 };
29 
30 struct shminfo64 {
31 	unsigned long	shmmax;
32 	unsigned long	shmmin;
33 	unsigned long	shmmni;
34 	unsigned long	shmseg;
35 	unsigned long	shmall;
36 	unsigned long	__unused1;
37 	unsigned long	__unused2;
38 	unsigned long	__unused3;
39 	unsigned long	__unused4;
40 };
41 
42 #endif /* _I386_SHMBUF_H */
43