1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _LINUX_IPC_H 3 #define _LINUX_IPC_H 4 5 #include <linux/spinlock.h> 6 #include <linux/uidgid.h> 7 #include <linux/rhashtable.h> 8 #include <uapi/linux/ipc.h> 9 #include <linux/refcount.h> 10 11 #define IPCMNI 32768 /* <= MAX_INT limit for ipc arrays (including sysctl changes) */ 12 13 /* used by in-kernel data structures */ 14 struct kern_ipc_perm { 15 spinlock_t lock; 16 bool deleted; 17 int id; 18 key_t key; 19 kuid_t uid; 20 kgid_t gid; 21 kuid_t cuid; 22 kgid_t cgid; 23 umode_t mode; 24 unsigned long seq; 25 void *security; 26 27 struct rhash_head khtnode; 28 29 struct rcu_head rcu; 30 refcount_t refcount; 31 } ____cacheline_aligned_in_smp __randomize_layout; 32 33 #endif /* _LINUX_IPC_H */ 34