125981136fb13bcacf5f475f3e0ec750341e1e671Christopher Ferris/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng#ifndef __ASM_GENERIC_IPCBUF_H 3224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng#define __ASM_GENERIC_IPCBUF_H 4224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng 5224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng/* 6224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * The generic ipc64_perm structure: 7224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * Note extra padding because this structure is passed back and forth 8224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * between kernel and user space. 9224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * 10224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * ipc64_perm was originally meant to be architecture specific, but 11224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * everyone just ended up making identical copies without specific 12224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * optimizations, so we may just as well all use the same one. 13224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * 14224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * Pad space is left for: 15224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * - 32-bit mode_t on architectures that only had 16 bit 16224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * - 32-bit seq 17224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng * - 2 miscellaneous 32-bit values 18224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng */ 19224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng 20224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Chengstruct ipc64_perm { 21224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng __kernel_key_t key; 22224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng __kernel_uid32_t uid; 23224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng __kernel_gid32_t gid; 24224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng __kernel_uid32_t cuid; 25224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng __kernel_gid32_t cgid; 26224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng __kernel_mode_t mode; 27224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng /* pad if mode_t is u16: */ 28224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng unsigned char __pad1[4 - sizeof(__kernel_mode_t)]; 29224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng unsigned short seq; 30224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng unsigned short __pad2; 31e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris __kernel_ulong_t __unused1; 32e084501669a4e4931c9d648351ecd7d595b81b79Christopher Ferris __kernel_ulong_t __unused2; 33224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng}; 34224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng 35224b54f69543a5c0ec18f99bd717d2b724582eb6Ben Cheng#endif /* __ASM_GENERIC_IPCBUF_H */ 36