xref: /aosp_15_r20/external/kernel-headers/original/uapi/asm-generic/ipcbuf.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
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