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