blob: 3dbcc1e771c03509a3c48906c2f7885416d7ec04 [file] [log] [blame]
Ben Cheng224b54f2013-10-15 18:26:18 -07001#ifndef __ASM_GENERIC_IPCBUF_H
2#define __ASM_GENERIC_IPCBUF_H
3
4/*
5 * The generic ipc64_perm structure:
6 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
9 * 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
19struct 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;
Christopher Ferrise0845012014-07-09 14:58:51 -070030 __kernel_ulong_t __unused1;
31 __kernel_ulong_t __unused2;
Ben Cheng224b54f2013-10-15 18:26:18 -070032};
33
34#endif /* __ASM_GENERIC_IPCBUF_H */