Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef __ASM_GENERIC_IPCBUF_H
0003 #define __ASM_GENERIC_IPCBUF_H
0004 
0005 #include <linux/posix_types.h>
0006 
0007 /*
0008  * The generic ipc64_perm structure:
0009  * Note extra padding because this structure is passed back and forth
0010  * between kernel and user space.
0011  *
0012  * ipc64_perm was originally meant to be architecture specific, but
0013  * everyone just ended up making identical copies without specific
0014  * optimizations, so we may just as well all use the same one.
0015  *
0016  * Pad space is left for:
0017  * - 32-bit mode_t on architectures that only had 16 bit
0018  * - 32-bit seq
0019  * - 2 miscellaneous 32-bit values
0020  */
0021 
0022 struct ipc64_perm {
0023     __kernel_key_t      key;
0024     __kernel_uid32_t    uid;
0025     __kernel_gid32_t    gid;
0026     __kernel_uid32_t    cuid;
0027     __kernel_gid32_t    cgid;
0028     __kernel_mode_t     mode;
0029                 /* pad if mode_t is u16: */
0030     unsigned char       __pad1[4 - sizeof(__kernel_mode_t)];
0031     unsigned short      seq;
0032     unsigned short      __pad2;
0033     __kernel_ulong_t    __unused1;
0034     __kernel_ulong_t    __unused2;
0035 };
0036 
0037 #endif /* __ASM_GENERIC_IPCBUF_H */