Subversion Repositories shark

Rev

Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 1
#ifndef _LINUX_IPC_H
2
#define _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
#ifdef __KERNEL__
53
 
54
#define IPCMNI 32768  /* <= MAX_INT limit for ipc arrays (including sysctl changes) */
55
 
56
/* used by in-kernel data structures */
57
struct kern_ipc_perm
58
{
59
        spinlock_t      lock;
60
        int             deleted;
61
        key_t           key;
62
        uid_t           uid;
63
        gid_t           gid;
64
        uid_t           cuid;
65
        gid_t           cgid;
66
        mode_t          mode;
67
        unsigned long   seq;
68
        void            *security;
69
};
70
 
71
#endif /* __KERNEL__ */
72
 
73
#endif /* _LINUX_IPC_H */
74
 
75