blob: 888ca1c8f95141c9028a62585a04b9563c978af4 [file] [log] [blame]
Arnd Bergmann7bfd1242009-06-18 21:48:17 +02001#ifndef __ASM_GENERIC_IPCBUF_H
2#define __ASM_GENERIC_IPCBUF_H
Thomas Gleixner003a46c2007-10-15 13:57:47 +02003
4/*
Arnd Bergmann7bfd1242009-06-18 21:48:17 +02005 * The generic ipc64_perm structure:
Thomas Gleixner003a46c2007-10-15 13:57:47 +02006 * Note extra padding because this structure is passed back and forth
7 * between kernel and user space.
8 *
Arnd Bergmann7bfd1242009-06-18 21:48:17 +02009 * 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 *
Thomas Gleixner003a46c2007-10-15 13:57:47 +020013 * Pad space is left for:
Arnd Bergmann7bfd1242009-06-18 21:48:17 +020014 * - 32-bit mode_t on architectures that only had 16 bit
15 * - 32-bit seq
Thomas Gleixner003a46c2007-10-15 13:57:47 +020016 * - 2 miscellaneous 32-bit values
17 */
18
Joe Perches5ca22aa2008-03-23 01:02:26 -070019struct ipc64_perm {
Thomas Gleixner003a46c2007-10-15 13:57:47 +020020 __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 unsigned short __pad1;
27 unsigned short seq;
28 unsigned short __pad2;
29 unsigned long __unused1;
30 unsigned long __unused2;
31};
32
Arnd Bergmann7bfd1242009-06-18 21:48:17 +020033#endif /* __ASM_GENERIC_IPCBUF_H */