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