Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

root/trunk/tango/stdc/posix/sys/ipc.d

Revision 4378, 2.2 kB (checked in by fawzi, 3 years ago)

opensolaris support, stremlined large file support

  • Property svn:mime-type set to text/x-dsrc
  • Property svn:eol-style set to native
Line 
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 tango.stdc.posix.sys.ipc;
10
11 private import tango.stdc.posix.config;
12 public import tango.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 }
100 else version( solaris )
101 {
102     struct ipc_perm
103     {
104         uid_t       uid;    /* owner's user id */
105         gid_t       gid;    /* owner's group id */
106         uid_t       cuid;   /* creator's user id */
107         gid_t       cgid;   /* creator's group id */
108         mode_t      mode;   /* access modes */
109         uint        seq;    /* slot usage sequence number */
110         key_t       key;    /* key */
111       version(X86_64){} else version(X86) {
112         int[4]      pad; /* reserve area */
113       }
114     }
115    
116     const IPC_CREAT     = 0001000;
117     const IPC_EXCL      = 0002000;
118     const IPC_NOWAIT    = 0004000;
119
120     const key_t IPC_PRIVATE = 0;
121
122     const IPC_RMID      = 10;
123     const IPC_SET       = 11;
124     const IPC_STAT      = 12;
125
126     key_t ftok(in char*, int);
127 }
Note: See TracBrowser for help on using the browser.