1 #ifndef __ASM_GENERIC_IPCBUF_H 2 #define __ASM_GENERIC_IPCBUF_H 3 4 /* 5 * The generic ipc64_perm structure: 6 * Note extra padding because this structure is passed back and forth 7 * between kernel and user space. 8 * 9 * ipc64_perm was originally meant to be architecture specific, but 10 * everyone just ended up making identical copies without specific 11 * optimizations, so we may just as well all use the same one. 12 * 13 * Pad space is left for: 14 * - 32-bit mode_t on architectures that only had 16 bit 15 * - 32-bit seq 16 * - 2 miscellaneous 32-bit values 17 */ 18 19 struct ipc64_perm { 20 __kernel_key_t key; 21 __kernel_uid32_t uid; 22 __kernel_gid32_t gid; 23 __kernel_uid32_t cuid; 24 __kernel_gid32_t cgid; 25 __kernel_mode_t mode; 26 /* pad if mode_t is u16: */ 27 unsigned char __pad1[4 - sizeof(__kernel_mode_t)]; 28 unsigned short seq; 29 unsigned short __pad2; 30 unsigned long __unused1; 31 unsigned long __unused2; 32 }; 33 34 #endif /* __ASM_GENERIC_IPCBUF_H */ 35