xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/ipc.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_IPC_H
3*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_IPC_H
4*f80ad8b4SAndroid Build Coastguard Worker 
5*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
6*f80ad8b4SAndroid Build Coastguard Worker 
7*f80ad8b4SAndroid Build Coastguard Worker #define IPC_PRIVATE ((__kernel_key_t) 0)
8*f80ad8b4SAndroid Build Coastguard Worker 
9*f80ad8b4SAndroid Build Coastguard Worker /* Obsolete, used only for backwards compatibility and libc5 compiles */
10*f80ad8b4SAndroid Build Coastguard Worker struct ipc_perm
11*f80ad8b4SAndroid Build Coastguard Worker {
12*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_key_t	key;
13*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_uid_t	uid;
14*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_gid_t	gid;
15*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_uid_t	cuid;
16*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_gid_t	cgid;
17*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_mode_t	mode;
18*f80ad8b4SAndroid Build Coastguard Worker 	unsigned short	seq;
19*f80ad8b4SAndroid Build Coastguard Worker };
20*f80ad8b4SAndroid Build Coastguard Worker 
21*f80ad8b4SAndroid Build Coastguard Worker /* Include the definition of ipc64_perm */
22*f80ad8b4SAndroid Build Coastguard Worker #include <asm/ipcbuf.h>
23*f80ad8b4SAndroid Build Coastguard Worker 
24*f80ad8b4SAndroid Build Coastguard Worker /* resource get request flags */
25*f80ad8b4SAndroid Build Coastguard Worker #define IPC_CREAT  00001000   /* create if key is nonexistent */
26*f80ad8b4SAndroid Build Coastguard Worker #define IPC_EXCL   00002000   /* fail if key exists */
27*f80ad8b4SAndroid Build Coastguard Worker #define IPC_NOWAIT 00004000   /* return error on wait */
28*f80ad8b4SAndroid Build Coastguard Worker 
29*f80ad8b4SAndroid Build Coastguard Worker /* these fields are used by the DIPC package so the kernel as standard
30*f80ad8b4SAndroid Build Coastguard Worker    should avoid using them if possible */
31*f80ad8b4SAndroid Build Coastguard Worker 
32*f80ad8b4SAndroid Build Coastguard Worker #define IPC_DIPC 00010000  /* make it distributed */
33*f80ad8b4SAndroid Build Coastguard Worker #define IPC_OWN  00020000  /* this machine is the DIPC owner */
34*f80ad8b4SAndroid Build Coastguard Worker 
35*f80ad8b4SAndroid Build Coastguard Worker /*
36*f80ad8b4SAndroid Build Coastguard Worker  * Control commands used with semctl, msgctl and shmctl
37*f80ad8b4SAndroid Build Coastguard Worker  * see also specific commands in sem.h, msg.h and shm.h
38*f80ad8b4SAndroid Build Coastguard Worker  */
39*f80ad8b4SAndroid Build Coastguard Worker #define IPC_RMID 0     /* remove resource */
40*f80ad8b4SAndroid Build Coastguard Worker #define IPC_SET  1     /* set ipc_perm options */
41*f80ad8b4SAndroid Build Coastguard Worker #define IPC_STAT 2     /* get ipc_perm options */
42*f80ad8b4SAndroid Build Coastguard Worker #define IPC_INFO 3     /* see ipcs */
43*f80ad8b4SAndroid Build Coastguard Worker 
44*f80ad8b4SAndroid Build Coastguard Worker /*
45*f80ad8b4SAndroid Build Coastguard Worker  * Version flags for semctl, msgctl, and shmctl commands
46*f80ad8b4SAndroid Build Coastguard Worker  * These are passed as bitflags or-ed with the actual command
47*f80ad8b4SAndroid Build Coastguard Worker  */
48*f80ad8b4SAndroid Build Coastguard Worker #define IPC_OLD 0	/* Old version (no 32-bit UID support on many
49*f80ad8b4SAndroid Build Coastguard Worker 			   architectures) */
50*f80ad8b4SAndroid Build Coastguard Worker #define IPC_64  0x0100  /* New version (support 32-bit UIDs, bigger
51*f80ad8b4SAndroid Build Coastguard Worker 			   message sizes, etc. */
52*f80ad8b4SAndroid Build Coastguard Worker 
53*f80ad8b4SAndroid Build Coastguard Worker /*
54*f80ad8b4SAndroid Build Coastguard Worker  * These are used to wrap system calls.
55*f80ad8b4SAndroid Build Coastguard Worker  *
56*f80ad8b4SAndroid Build Coastguard Worker  * See architecture code for ugly details..
57*f80ad8b4SAndroid Build Coastguard Worker  */
58*f80ad8b4SAndroid Build Coastguard Worker struct ipc_kludge {
59*f80ad8b4SAndroid Build Coastguard Worker 	struct msgbuf __user *msgp;
60*f80ad8b4SAndroid Build Coastguard Worker 	long msgtyp;
61*f80ad8b4SAndroid Build Coastguard Worker };
62*f80ad8b4SAndroid Build Coastguard Worker 
63*f80ad8b4SAndroid Build Coastguard Worker #define SEMOP		 1
64*f80ad8b4SAndroid Build Coastguard Worker #define SEMGET		 2
65*f80ad8b4SAndroid Build Coastguard Worker #define SEMCTL		 3
66*f80ad8b4SAndroid Build Coastguard Worker #define SEMTIMEDOP	 4
67*f80ad8b4SAndroid Build Coastguard Worker #define MSGSND		11
68*f80ad8b4SAndroid Build Coastguard Worker #define MSGRCV		12
69*f80ad8b4SAndroid Build Coastguard Worker #define MSGGET		13
70*f80ad8b4SAndroid Build Coastguard Worker #define MSGCTL		14
71*f80ad8b4SAndroid Build Coastguard Worker #define SHMAT		21
72*f80ad8b4SAndroid Build Coastguard Worker #define SHMDT		22
73*f80ad8b4SAndroid Build Coastguard Worker #define SHMGET		23
74*f80ad8b4SAndroid Build Coastguard Worker #define SHMCTL		24
75*f80ad8b4SAndroid Build Coastguard Worker 
76*f80ad8b4SAndroid Build Coastguard Worker /* Used by the DIPC package, try and avoid reusing it */
77*f80ad8b4SAndroid Build Coastguard Worker #define DIPC            25
78*f80ad8b4SAndroid Build Coastguard Worker 
79*f80ad8b4SAndroid Build Coastguard Worker #define IPCCALL(version,op)	((version)<<16 | (op))
80*f80ad8b4SAndroid Build Coastguard Worker 
81*f80ad8b4SAndroid Build Coastguard Worker 
82*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_IPC_H */
83