]> git.llucax.com Git - software/druntime.git/blob - import/stdc/posix/fcntl.d
Applied all D2 changes to trunk. It should now be a fully functional D2 runtime.
[software/druntime.git] / import / stdc / posix / fcntl.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.fcntl;
10
11 private import stdc.posix.config;
12 private import stdc.stdint;
13 public import stdc.stddef;          // for size_t
14 public import stdc.posix.sys.types; // for off_t, mode_t
15 public import stdc.posix.sys.stat;  // for S_IFMT, etc.
16
17 extern (C):
18
19 //
20 // Required
21 //
22 /*
23 F_DUPFD
24 F_GETFD
25 F_SETFD
26 F_GETFL
27 F_SETFL
28 F_GETLK
29 F_SETLK
30 F_SETLKW
31 F_GETOWN
32 F_SETOWN
33
34 FD_CLOEXEC
35
36 F_RDLCK
37 F_UNLCK
38 F_WRLCK
39
40 O_CREAT
41 O_EXCL
42 O_NOCTTY
43 O_TRUNC
44
45 O_APPEND
46 O_DSYNC
47 O_NONBLOCK
48 O_RSYNC
49 O_SYNC
50
51 O_ACCMODE
52 O_RDONLY
53 O_RDWR
54 O_WRONLY
55
56 struct flock
57 {
58     short   l_type;
59     short   l_whence;
60     off_t   l_start;
61     off_t   l_len;
62     pid_t   l_pid;
63 }
64
65 int creat(in char*, mode_t);
66 int fcntl(int, int, ...);
67 int open(in char*, int, ...);
68 */
69 version( linux )
70 {
71     const F_DUPFD       = 0;
72     const F_GETFD       = 1;
73     const F_SETFD       = 2;
74     const F_GETFL       = 3;
75     const F_SETFL       = 4;
76   static if( __USE_FILE_OFFSET64 )
77   {
78     const F_GETLK       = 12;
79     const F_SETLK       = 13;
80     const F_SETLKW      = 14;
81   }
82   else
83   {
84     const F_GETLK       = 5;
85     const F_SETLK       = 6;
86     const F_SETLKW      = 7;
87   }
88     const F_GETOWN      = 9;
89     const F_SETOWN      = 8;
90
91     const FD_CLOEXEC    = 1;
92
93     const F_RDLCK       = 0;
94     const F_UNLCK       = 2;
95     const F_WRLCK       = 1;
96
97     const O_CREAT       = 0100;
98     const O_EXCL        = 0200;
99     const O_NOCTTY      = 0400;
100     const O_TRUNC       = 01000;
101
102     const O_APPEND      = 02000;
103     const O_NONBLOCK    = 04000;
104     const O_SYNC        = 010000;
105     const O_DSYNC       = O_SYNC;
106     const O_RSYNC       = O_SYNC;
107
108     const O_ACCMODE     = 0003;
109     const O_RDONLY      = 00;
110     const O_WRONLY      = 01;
111     const O_RDWR        = 02;
112
113     struct flock
114     {
115         short   l_type;
116         short   l_whence;
117         off_t   l_start;
118         off_t   l_len;
119         pid_t   l_pid;
120     }
121
122     static if( __USE_LARGEFILE64 )
123     {
124         int   creat64(in char*, mode_t);
125         alias creat64 creat;
126
127         int   open64(in char*, int, ...);
128         alias open64 open;
129     }
130     else
131     {
132         int   creat(in char*, mode_t);
133         int   open(in char*, int, ...);
134     }
135 }
136 else version( darwin )
137 {
138     const F_DUPFD       = 0;
139     const F_GETFD       = 1;
140     const F_SETFD       = 2;
141     const F_GETFL       = 3;
142     const F_SETFL       = 4;
143     const F_GETOWN      = 5;
144     const F_SETOWN      = 6;
145     const F_GETLK       = 7;
146     const F_SETLK       = 8;
147     const F_SETLKW      = 9;
148
149     const FD_CLOEXEC    = 1;
150
151     const F_RDLCK       = 1;
152     const F_UNLCK       = 2;
153     const F_WRLCK       = 3;
154
155     const O_CREAT       = 0x0200;
156     const O_EXCL        = 0x0800;
157     const O_NOCTTY      = 0;
158     const O_TRUNC       = 0x0400;
159
160     const O_RDONLY      = 0x0000;
161     const O_WRONLY      = 0x0001;
162     const O_RDWR        = 0x0002;
163     const O_ACCMODE     = 0x0003;
164
165     const O_NONBLOCK    = 0x0004;
166     const O_APPEND      = 0x0008;
167     const O_SYNC        = 0x0080;
168     //const O_DSYNC
169     //const O_RSYNC
170
171     struct flock
172     {
173         off_t   l_start;
174         off_t   l_len;
175         pid_t   l_pid;
176         short   l_type;
177         short   l_whence;
178     }
179
180     int creat(in char*, mode_t);
181     int open(in char*, int, ...);
182 }
183 else version( freebsd )
184 {
185     const F_DUPFD       = 0;
186     const F_GETFD       = 1;
187     const F_SETFD       = 2;
188     const F_GETFL       = 3;
189     const F_SETFL       = 4;
190     const F_GETOWN      = 5;
191     const F_SETOWN      = 6;
192     const F_GETLK       = 7;
193     const F_SETLK       = 8;
194     const F_SETLKW      = 9;
195
196     const FD_CLOEXEC    = 1;
197
198     const F_RDLCK       = 1;
199     const F_UNLCK       = 2;
200     const F_WRLCK       = 3;
201
202     const O_CREAT       = 0x0200;
203     const O_EXCL        = 0x0800;
204     const O_NOCTTY      = 0;
205     const O_TRUNC       = 0x0400;
206
207     const O_RDONLY      = 0x0000;
208     const O_WRONLY      = 0x0001;
209     const O_RDWR        = 0x0002;
210     const O_ACCMODE     = 0x0003;
211
212     const O_NONBLOCK    = 0x0004;
213     const O_APPEND      = 0x0008;
214     const O_SYNC        = 0x0080;
215     //const O_DSYNC
216     //const O_RSYNC
217
218     struct flock
219     {
220         off_t   l_start;
221         off_t   l_len;
222         pid_t   l_pid;
223         short   l_type;
224         short   l_whence;
225     }
226
227     int creat(in char*, mode_t);
228     int open(in char*, int, ...);
229 }
230
231 //int creat(in char*, mode_t);
232 int fcntl(int, int, ...);
233 //int open(in char*, int, ...);
234
235 //
236 // Advisory Information (ADV)
237 //
238 /*
239 POSIX_FADV_NORMAL
240 POSIX_FADV_SEQUENTIAL
241 POSIX_FADV_RANDOM
242 POSIX_FADV_WILLNEED
243 POSIX_FADV_DONTNEED
244 POSIX_FADV_NOREUSE
245
246 int posix_fadvise(int, off_t, off_t, int);
247 int posix_fallocate(int, off_t, off_t);
248 */