Blame view

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