xref: /linux-6.15/include/linux/ipc.h (revision 72375a88)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds #ifndef _LINUX_IPC_H
31da177e4SLinus Torvalds #define _LINUX_IPC_H
41da177e4SLinus Torvalds 
5*72375a88SKent Overstreet #include <linux/spinlock_types.h>
61efdb69bSEric W. Biederman #include <linux/uidgid.h>
70eb71a9dSNeilBrown #include <linux/rhashtable-types.h>
8607ca46eSDavid Howells #include <uapi/linux/ipc.h>
99405c03eSElena Reshetova #include <linux/refcount.h>
10b119f13fSCedric Le Goater 
111da177e4SLinus Torvalds /* used by in-kernel data structures */
1260f3e00dSDavidlohr Bueso struct kern_ipc_perm {
131da177e4SLinus Torvalds 	spinlock_t	lock;
1472a8ff2fSRafael Aquini 	bool		deleted;
157ca7e564SNadia Derbey 	int		id;
161da177e4SLinus Torvalds 	key_t		key;
171efdb69bSEric W. Biederman 	kuid_t		uid;
181efdb69bSEric W. Biederman 	kgid_t		gid;
191efdb69bSEric W. Biederman 	kuid_t		cuid;
201efdb69bSEric W. Biederman 	kgid_t		cgid;
212570ebbdSAl Viro 	umode_t		mode;
221da177e4SLinus Torvalds 	unsigned long	seq;
231da177e4SLinus Torvalds 	void		*security;
24dba4cdd3SManfred Spraul 
250cfb6aeeSGuillaume Knispel 	struct rhash_head khtnode;
260cfb6aeeSGuillaume Knispel 
27dba4cdd3SManfred Spraul 	struct rcu_head rcu;
289405c03eSElena Reshetova 	refcount_t refcount;
293859a271SKees Cook } ____cacheline_aligned_in_smp __randomize_layout;
301da177e4SLinus Torvalds 
311da177e4SLinus Torvalds #endif /* _LINUX_IPC_H */
32