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