1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _ASM_X86_MSGBUF_H
2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _ASM_X86_MSGBUF_H
3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*
5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * The msqid64_ds structure for i386 architecture.
6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Note extra padding because this structure is passed back and forth
7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * between kernel and user space.
8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru *
9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Pad space on i386 is left for:
10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * - 64-bit time_t to solve y2038 problem
11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * - 2 miscellaneous 32-bit values
12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru *
13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Pad space on x8664 is left for:
14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * - 2 miscellaneous 64-bit values
15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct msqid64_ds {
17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	struct ipc64_perm msg_perm;
18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	__kernel_time_t msg_stime;	/* last msgsnd time */
19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __i386__
20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	__unused1;
21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	__kernel_time_t msg_rtime;	/* last msgrcv time */
23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __i386__
24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	__unused2;
25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	__kernel_time_t msg_ctime;	/* last change time */
27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __i386__
28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long	__unused3;
29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  msg_cbytes;	/* current number of bytes on queue */
31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  msg_qnum;	/* number of messages in queue */
32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  msg_qbytes;	/* max number of bytes on queue */
33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	__kernel_pid_t msg_lspid;	/* pid of last msgsnd */
34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	__kernel_pid_t msg_lrpid;	/* last receive pid */
35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  __unused4;
36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru	unsigned long  __unused5;
37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru};
38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif /* _ASM_X86_MSGBUF_H */
40