Blame view

include/linux/ipc.h 2.38 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
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
  #ifndef _LINUX_IPC_H
  #define _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. */
cba4fbbff   Adrian Bunk   remove include/as...
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
  /*
   * 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))
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
78
  #ifdef __KERNEL__
0a3021f4e   Robert P. J. Day   Remove unnecessar...
79
  #include <linux/spinlock.h>
b119f13f5   Cedric Le Goater   [PATCH] ipc: head...
80

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
81
82
83
84
85
86
87
  #define IPCMNI 32768  /* <= MAX_INT limit for ipc arrays (including sysctl changes) */
  
  /* used by in-kernel data structures */
  struct kern_ipc_perm
  {
  	spinlock_t	lock;
  	int		deleted;
7ca7e564e   Nadia Derbey   ipc: store ipcs i...
88
  	int		id;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
89
90
91
92
93
94
95
96
97
98
99
100
101
  	key_t		key;
  	uid_t		uid;
  	gid_t		gid;
  	uid_t		cuid;
  	gid_t		cgid;
  	mode_t		mode; 
  	unsigned long	seq;
  	void		*security;
  };
  
  #endif /* __KERNEL__ */
  
  #endif /* _LINUX_IPC_H */