]> git.llucax.com Git - software/druntime.git/blob - import/stdc/posix/sys/ipc.d
Applied all D2 changes to trunk. It should now be a fully functional D2 runtime.
[software/druntime.git] / import / stdc / posix / sys / ipc.d
1 /**
2  * D header file for POSIX.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8  */
9 module stdc.posix.sys.ipc;
10
11 private import stdc.posix.config;
12 public import stdc.posix.sys.types; // for uid_t, gid_t, mode_t, key_t
13
14 extern (C):
15
16 //
17 // XOpen (XSI)
18 //
19 /*
20 struct ipc_perm
21 {
22     uid_t    uid;
23     gid_t    gid;
24     uid_t    cuid;
25     gid_t    cgid;
26     mode_t   mode;
27 }
28
29 IPC_CREAT
30 IPC_EXCL
31 IPC_NOWAIT
32
33 IPC_PRIVATE
34
35 IPC_RMID
36 IPC_SET
37 IPC_STAT
38
39 key_t ftok(in char*, int);
40 */
41
42 version( linux )
43 {
44     struct ipc_perm
45     {
46         key_t   __key;
47         uid_t   uid;
48         gid_t   gid;
49         uid_t   cuid;
50         gid_t   cgid;
51         ushort  mode;
52         ushort  __pad1;
53         ushort  __seq;
54         ushort  __pad2;
55         c_ulong __unused1;
56         c_ulong __unused2;
57     }
58
59     const IPC_CREAT     = 01000;
60     const IPC_EXCL      = 02000;
61     const IPC_NOWAIT    = 04000;
62
63     const key_t IPC_PRIVATE = 0;
64
65     const IPC_RMID      = 0;
66     const IPC_SET       = 1;
67     const IPC_STAT      = 2;
68
69     key_t ftok(in char*, int);
70 }
71 else version( darwin )
72 {
73
74 }
75 else version( freebsd )
76 {
77     struct ipc_perm
78     {
79         ushort cuid;
80         ushort cguid;
81         ushort uid;
82         ushort gid;
83         ushort mode;
84         ushort seq;
85         key_t key;
86     }
87
88     const IPC_CREAT     = 01000;
89     const IPC_EXCL      = 02000;
90     const IPC_NOWAIT    = 04000;
91
92     const key_t IPC_PRIVATE = 0;
93
94     const IPC_RMID      = 0;
95     const IPC_SET       = 1;
96     const IPC_STAT      = 2;
97
98     key_t ftok(in char*, int);
99 }