June 2025 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
01: #ifndef __ASM_GENERIC_IPCBUF_H 02: #define __ASM_GENERIC_IPCBUF_H 03: 04: /* 05: * The generic ipc64_perm structure: 06: * Note extra padding because this structure is passed back and forth 07: * between kernel and user space. 08: * 09: * 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: