xref: /haiku/headers/posix/sys/ipc.h (revision 47ca7595ca54e08dac7482950a35b045e6ad8801)
1187c5764SAxel Dörfler /*
2187c5764SAxel Dörfler  * Copyright 2008, Haiku Inc. All Rights Reserved.
3187c5764SAxel Dörfler  * Distributed under the terms of the MIT License.
4187c5764SAxel Dörfler  */
5187c5764SAxel Dörfler #ifndef _SYS_IPC_H
6187c5764SAxel Dörfler #define _SYS_IPC_H
7187c5764SAxel Dörfler 
8187c5764SAxel Dörfler 
9*47ca7595SAxel Dörfler #include <sys/cdefs.h>
10187c5764SAxel Dörfler #include <sys/types.h>
11187c5764SAxel Dörfler 
12187c5764SAxel Dörfler 
13187c5764SAxel Dörfler /* Mode bits for msgget(), semget(), and shmget() */
14187c5764SAxel Dörfler #define IPC_CREAT	01000	/* create key */
15187c5764SAxel Dörfler #define IPC_EXCL	02000	/* fail if key exists */
16187c5764SAxel Dörfler #define IPC_NOWAIT	04000	/* do not block */
17187c5764SAxel Dörfler 
18187c5764SAxel Dörfler /* Control commands for msgctl(), semctl(), and shmctl() */
19187c5764SAxel Dörfler #define IPC_RMID	0		/* remove identifier */
20*47ca7595SAxel Dörfler #define IPC_SET		1		/* set options */
21*47ca7595SAxel Dörfler #define IPC_STAT	2		/* get options */
22187c5764SAxel Dörfler 
23187c5764SAxel Dörfler /* Private key */
24*47ca7595SAxel Dörfler #define IPC_PRIVATE		(key_t)0
25187c5764SAxel Dörfler 
26187c5764SAxel Dörfler 
27187c5764SAxel Dörfler struct ipc_perm {
28*47ca7595SAxel Dörfler 	key_t	key;			/* IPC identifier */
29187c5764SAxel Dörfler 	uid_t	uid;			/* owner's user ID */
30187c5764SAxel Dörfler 	gid_t	gid;			/* owner's group ID */
31187c5764SAxel Dörfler 	uid_t	cuid;			/* creator's user ID */
32187c5764SAxel Dörfler 	gid_t	cgid;			/* creator's group ID */
33187c5764SAxel Dörfler 	mode_t	mode;			/* Read/write permission */
34187c5764SAxel Dörfler };
35187c5764SAxel Dörfler 
36187c5764SAxel Dörfler 
37*47ca7595SAxel Dörfler __BEGIN_DECLS
38187c5764SAxel Dörfler 
39187c5764SAxel Dörfler key_t ftok(const char *path, int id);
40187c5764SAxel Dörfler 
41*47ca7595SAxel Dörfler __END_DECLS
42187c5764SAxel Dörfler 
43187c5764SAxel Dörfler #endif	/* _SYS_IPC_H */
44