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