aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/linux-headers/linux/ipc.h
blob: 5b39587bd9e6d788ca42760594255da6d80735f9 (plain) (blame)
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
82
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 
#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. */ 
 
/* 
 * These are used to wrap system calls. 
 * 
 * See architecture code for ugly details.. 
 */ 
struct ipc_kludge { 
	struct msgbuf *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 /* _LINUX_IPC_H */