]>
Commit | Line | Data |
---|---|---|
2864d32b AB |
1 | #ifndef __ASM_GENERIC_MSGBUF_H |
2 | #define __ASM_GENERIC_MSGBUF_H | |
3 | ||
4 | #include <asm/bitsperlong.h> | |
5 | /* | |
6 | * generic msqid64_ds structure. | |
7 | * | |
8 | * Note extra padding because this structure is passed back and forth | |
9 | * between kernel and user space. | |
10 | * | |
11 | * msqid64_ds was originally meant to be architecture specific, but | |
12 | * everyone just ended up making identical copies without specific | |
13 | * optimizations, so we may just as well all use the same one. | |
14 | * | |
15 | * 64 bit architectures typically define a 64 bit __kernel_time_t, | |
16 | * so they do not need the first three padding words. | |
17 | * On big-endian systems, the padding is in the wrong place. | |
18 | * | |
19 | * Pad space is left for: | |
20 | * - 64-bit time_t to solve y2038 problem | |
21 | * - 2 miscellaneous 32-bit values | |
22 | */ | |
23 | ||
24 | struct msqid64_ds { | |
25 | struct ipc64_perm msg_perm; | |
26 | __kernel_time_t msg_stime; /* last msgsnd time */ | |
27 | #if __BITS_PER_LONG != 64 | |
28 | unsigned long __unused1; | |
29 | #endif | |
30 | __kernel_time_t msg_rtime; /* last msgrcv time */ | |
31 | #if __BITS_PER_LONG != 64 | |
32 | unsigned long __unused2; | |
33 | #endif | |
34 | __kernel_time_t msg_ctime; /* last change time */ | |
35 | #if __BITS_PER_LONG != 64 | |
36 | unsigned long __unused3; | |
37 | #endif | |
b9cd5ca2 L |
38 | __kernel_ulong_t msg_cbytes; /* current number of bytes on queue */ |
39 | __kernel_ulong_t msg_qnum; /* number of messages in queue */ | |
40 | __kernel_ulong_t msg_qbytes; /* max number of bytes on queue */ | |
2864d32b AB |
41 | __kernel_pid_t msg_lspid; /* pid of last msgsnd */ |
42 | __kernel_pid_t msg_lrpid; /* last receive pid */ | |
b9cd5ca2 L |
43 | __kernel_ulong_t __unused4; |
44 | __kernel_ulong_t __unused5; | |
2864d32b AB |
45 | }; |
46 | ||
47 | #endif /* __ASM_GENERIC_MSGBUF_H */ |