diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-12 18:15:51 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-12 18:15:51 -0700 |
commit | cd166bd0dde265a97dd9aa8e3451a2646d96d04b (patch) | |
tree | 3a7fb5b8bb8d7676e804845b75977be380b8dcff /include/asm-generic/msgbuf.h | |
parent | 6b702462cbe5b6f372966a53f4465d745d86b65c (diff) | |
parent | 5b02ee3d219f9e01b6e9146e25613822cfc2e5ce (diff) | |
download | op-kernel-dev-cd166bd0dde265a97dd9aa8e3451a2646d96d04b.zip op-kernel-dev-cd166bd0dde265a97dd9aa8e3451a2646d96d04b.tar.gz |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
add generic lib/checksum.c
asm-generic: add a generic uaccess.h
asm-generic: add generic NOMMU versions of some headers
asm-generic: add generic atomic.h and io.h
asm-generic: add legacy I/O header files
asm-generic: add generic versions of common headers
asm-generic: make bitops.h usable
asm-generic: make pci.h usable directly
asm-generic: make get_rtc_time overridable
asm-generic: rename page.h and uaccess.h
asm-generic: rename atomic.h to atomic-long.h
asm-generic: add a generic unistd.h
asm-generic: add generic ABI headers
asm-generic: add generic sysv ipc headers
asm-generic: introduce asm/bitsperlong.h
asm-generic: rename termios.h, signal.h and mman.h
Diffstat (limited to 'include/asm-generic/msgbuf.h')
-rw-r--r-- | include/asm-generic/msgbuf.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/asm-generic/msgbuf.h b/include/asm-generic/msgbuf.h new file mode 100644 index 0000000..aec850d --- /dev/null +++ b/include/asm-generic/msgbuf.h @@ -0,0 +1,47 @@ +#ifndef __ASM_GENERIC_MSGBUF_H +#define __ASM_GENERIC_MSGBUF_H + +#include <asm/bitsperlong.h> +/* + * generic msqid64_ds structure. + * + * Note extra padding because this structure is passed back and forth + * between kernel and user space. + * + * msqid64_ds was originally meant to be architecture specific, but + * everyone just ended up making identical copies without specific + * optimizations, so we may just as well all use the same one. + * + * 64 bit architectures typically define a 64 bit __kernel_time_t, + * so they do not need the first three padding words. + * On big-endian systems, the padding is in the wrong place. + * + * Pad space is left for: + * - 64-bit time_t to solve y2038 problem + * - 2 miscellaneous 32-bit values + */ + +struct msqid64_ds { + struct ipc64_perm msg_perm; + __kernel_time_t msg_stime; /* last msgsnd time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused1; +#endif + __kernel_time_t msg_rtime; /* last msgrcv time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused2; +#endif + __kernel_time_t msg_ctime; /* last change time */ +#if __BITS_PER_LONG != 64 + unsigned long __unused3; +#endif + unsigned long msg_cbytes; /* current number of bytes on queue */ + unsigned long msg_qnum; /* number of messages in queue */ + unsigned long msg_qbytes; /* max number of bytes on queue */ + __kernel_pid_t msg_lspid; /* pid of last msgsnd */ + __kernel_pid_t msg_lrpid; /* last receive pid */ + unsigned long __unused4; + unsigned long __unused5; +}; + +#endif /* __ASM_GENERIC_MSGBUF_H */ |