@@ -38,30 +38,96 @@ extern (C) nothrow @nogc:
3838/*
3939WNOHANG
4040WUNTRACED
41+ */
42+
43+ version (linux )
44+ {
45+ enum WNOHANG = 1 ;
46+ enum WUNTRACED = 2 ;
47+
48+ private
49+ {
50+ enum __W_CONTINUED = 0xFFFF ;
51+ }
52+ }
53+ else version (Darwin)
54+ {
55+ enum WNOHANG = 1 ;
56+ enum WUNTRACED = 2 ;
57+
58+ private
59+ {
60+ enum _WSTOPPED = 0x7F ; // octal 0177
61+ }
62+ }
63+ else version (FreeBSD )
64+ {
65+ enum WNOHANG = 1 ;
66+ enum WUNTRACED = 2 ;
67+
68+ private
69+ {
70+ enum _WSTOPPED = 0x7F ; // octal 0177
71+ enum __W_CONTINUED = 0x13 ;
72+ }
73+ }
74+ else version (NetBSD )
75+ {
76+ enum WNOHANG = 1 ;
77+ enum WUNTRACED = 2 ;
78+
79+ private
80+ {
81+ enum _WSTOPPED = 0x7F ; // octal 0177
82+ }
83+ }
84+ else version (OpenBSD )
85+ {
86+ enum WNOHANG = 1 ;
87+ enum WUNTRACED = 2 ;
88+
89+ private
90+ {
91+ enum _WSTOPPED = 0x7F ; // octal 0177
92+ enum _WCONTINUED = 0xFFFF ; // octal 0177777
93+ }
94+ }
95+ else version (DragonFlyBSD )
96+ {
97+ enum WNOHANG = 1 ;
98+ enum WUNTRACED = 2 ;
4199
100+ private
101+ {
102+ enum _WSTOPPED = 0x7F ; // octal 0177
103+ }
104+ }
105+ else version (Solaris )
106+ {
107+ enum WNOHANG = 64 ;
108+ enum WUNTRACED = 4 ;
109+ }
110+ else
111+ {
112+ static assert (false , " Unsupported platform" );
113+ }
114+
115+ /*
42116WEXITSTATUS
43117WIFCONTINUED
44118WIFEXITED
45119WIFSIGNALED
46120WIFSTOPPED
47121WSTOPSIG
48122WTERMSIG
49-
50- pid_t wait(int*);
51- pid_t waitpid(pid_t, int*, int);
52123*/
53124
54125version (CRuntime_Glibc )
55126{
56127 @safe pure :
57128
58- enum WNOHANG = 1 ;
59- enum WUNTRACED = 2 ;
60-
61129 private
62130 {
63- enum __W_CONTINUED = 0xFFFF ;
64-
65131 extern (D ) int __WTERMSIG( int status ) { return status & 0x7F ; }
66132 }
67133
@@ -85,14 +151,6 @@ else version (Darwin)
85151{
86152 @safe pure :
87153
88- enum WNOHANG = 1 ;
89- enum WUNTRACED = 2 ;
90-
91- private
92- {
93- enum _WSTOPPED = 0x7F ; // octal 0177
94- }
95-
96154 extern (D ) int _WSTATUS(int status) { return (status & 0x7F ); }
97155 extern (D ) int WEXITSTATUS ( int status ) { return (status >> 8 ); }
98156 extern (D ) int WIFCONTINUED ( int status ) { return status == 0x13 ; }
@@ -109,14 +167,6 @@ else version (FreeBSD)
109167{
110168 @safe pure :
111169
112- enum WNOHANG = 1 ;
113- enum WUNTRACED = 2 ;
114-
115- private
116- {
117- enum _WSTOPPED = 0x7F ; // octal 0177
118- }
119-
120170 extern (D ) int _WSTATUS(int status) { return (status & 0x7F ); }
121171 extern (D ) int WEXITSTATUS ( int status ) { return (status >> 8 ); }
122172 extern (D ) int WIFCONTINUED ( int status ) { return status == 0x13 ; }
@@ -133,14 +183,6 @@ else version (NetBSD)
133183{
134184 @safe pure :
135185
136- enum WNOHANG = 1 ;
137- enum WUNTRACED = 2 ;
138-
139- private
140- {
141- enum _WSTOPPED = 0x7F ; // octal 0177
142- }
143-
144186 extern (D ) int _WSTATUS(int status) { return (status & 0x7F ); }
145187 extern (D ) int WEXITSTATUS ( int status ) { return (status >> 8 ); }
146188 extern (D ) int WIFCONTINUED ( int status ) { return status == 0x13 ; }
@@ -157,15 +199,6 @@ else version (OpenBSD)
157199{
158200 @safe pure :
159201
160- enum WNOHANG = 1 ;
161- enum WUNTRACED = 2 ;
162-
163- private
164- {
165- enum _WSTOPPED = 0x7F ; // octal 0177
166- enum _WCONTINUED = 0xFFFF ; // octal 0177777
167- }
168-
169202 extern (D ) int _WSTATUS(int status) { return (status & 0x7F ); }
170203 extern (D ) int WEXITSTATUS (int status) { return (status >> 8 ) & 0xFF ; }
171204 extern (D ) int WIFCONTINUED (int status) { return (status & _WCONTINUED) == _WCONTINUED; }
@@ -182,14 +215,6 @@ else version (DragonFlyBSD)
182215{
183216 @safe pure :
184217
185- enum WNOHANG = 1 ;
186- enum WUNTRACED = 2 ;
187-
188- private
189- {
190- enum _WSTOPPED = 0x7F ; // octal 0177
191- }
192-
193218 extern (D ) int _WSTATUS(int status) { return (status & 0x7F ); }
194219 extern (D ) int WEXITSTATUS ( int status ) { return (status >> 8 ); }
195220 extern (D ) int WIFCONTINUED ( int status ) { return status == 0x13 ; }
@@ -206,9 +231,6 @@ else version (Solaris)
206231{
207232 @safe pure :
208233
209- enum WNOHANG = 64 ;
210- enum WUNTRACED = 4 ;
211-
212234 extern (D ) int WEXITSTATUS (int status) { return (status >> 8 ) & 0xff ; }
213235 extern (D ) int WIFCONTINUED (int status) { return (status & 0xffff ) == 0xffff ; }
214236 extern (D ) bool WIFEXITED (int status) { return (status & 0xff ) == 0 ; }
@@ -220,10 +242,6 @@ else version (Solaris)
220242else version (CRuntime_Bionic )
221243{
222244 @safe pure :
223-
224- enum WNOHANG = 1 ;
225- enum WUNTRACED = 2 ;
226-
227245 extern (D ) int WEXITSTATUS ( int status ) { return ( status & 0xFF00 ) >> 8 ; }
228246 extern (D ) bool WIFEXITED ( int status ) { return WTERMSIG (status) == 0 ; }
229247 extern (D ) bool WIFSIGNALED ( int status ) { return WTERMSIG (status + 1 ) >= 2 ; }
@@ -234,10 +252,6 @@ else version (CRuntime_Bionic)
234252else version (CRuntime_Musl )
235253{
236254 @safe pure :
237-
238- enum WNOHANG = 1 ;
239- enum WUNTRACED = 2 ;
240-
241255 extern (D ) int WEXITSTATUS ( int status ) { return ( status & 0xFF00 ) >> 8 ; }
242256 extern (D ) int WIFCONTINUED ( int status ) { return status == 0xffff ; }
243257 extern (D ) bool WIFEXITED ( int status ) { return WTERMSIG ( status ) == 0 ; }
@@ -250,13 +264,8 @@ else version (CRuntime_UClibc)
250264{
251265 @safe pure :
252266
253- enum WNOHANG = 1 ;
254- enum WUNTRACED = 2 ;
255-
256267 private
257268 {
258- enum __W_CONTINUED = 0xFFFF ;
259-
260269 extern (D ) int __WTERMSIG( int status ) { return status & 0x7F ; }
261270 }
262271
@@ -288,6 +297,11 @@ else
288297 static assert (false , " Unsupported platform" );
289298}
290299
300+ /*
301+ pid_t wait(int*);
302+ pid_t waitpid(pid_t, int*, int);
303+ */
304+
291305pid_t wait (int * );
292306pid_t waitpid (pid_t , int * , int );
293307
@@ -306,11 +320,9 @@ enum idtype_t
306320 P_PID,
307321 P_PGID
308322}
309-
310- int waitid(idtype_t, id_t, siginfo_t*, int);
311323*/
312324
313- version (CRuntime_Glibc )
325+ version (linux )
314326{
315327 enum WEXITED = 4 ;
316328 enum WSTOPPED = 2 ;
@@ -323,8 +335,6 @@ version (CRuntime_Glibc)
323335 P_PID ,
324336 P_PGID
325337 }
326-
327- int waitid (idtype_t, id_t , siginfo_t* , int );
328338}
329339else version (Darwin)
330340{
@@ -339,8 +349,6 @@ else version (Darwin)
339349 P_PID ,
340350 P_PGID
341351 }
342-
343- int waitid (idtype_t, id_t , siginfo_t* , int );
344352}
345353else version (FreeBSD )
346354{
@@ -369,8 +377,6 @@ else version (FreeBSD)
369377 P_CPUID ,
370378 P_PSETID
371379 }
372-
373- int waitid (idtype_t, id_t , siginfo_t* , int );
374380}
375381else version (NetBSD )
376382{
@@ -419,50 +425,51 @@ else version (Solaris)
419425 P_CPUID , /* CPU identifier. */
420426 P_PSETID , /* Processor set identifier */
421427 }
428+ }
429+ else
430+ {
431+ static assert (false , " Unsupported platform" );
432+ }
433+
434+ /*
435+ int waitid(idtype_t, id_t, siginfo_t*, int);
436+ */
422437
438+ version (CRuntime_Glibc )
439+ {
440+ int waitid (idtype_t, id_t , siginfo_t* , int );
441+ }
442+ else version (Darwin)
443+ {
444+ int waitid (idtype_t, id_t , siginfo_t* , int );
445+ }
446+ else version (FreeBSD )
447+ {
448+ int waitid (idtype_t, id_t , siginfo_t* , int );
449+ }
450+ else version (NetBSD )
451+ {
452+ }
453+ else version (OpenBSD )
454+ {
455+ }
456+ else version (DragonFlyBSD )
457+ {
458+ }
459+ else version (Solaris )
460+ {
423461 int waitid (idtype_t, id_t , siginfo_t* , int );
424462}
425463else version (CRuntime_Bionic )
426464{
427- enum WEXITED = 4 ;
428- enum WSTOPPED = 2 ;
429- enum WCONTINUED = 8 ;
430- enum WNOWAIT = 0x01000000 ;
431-
432- alias int idtype_t;
433-
434465 int waitid (idtype_t, id_t , siginfo_t* , int );
435466}
436467else version (CRuntime_Musl )
437468{
438- enum WEXITED = 4 ;
439- enum WSTOPPED = 2 ;
440- enum WCONTINUED = 8 ;
441- enum WNOWAIT = 0x01000000 ;
442-
443- enum idtype_t
444- {
445- P_ALL ,
446- P_PID ,
447- P_PGID
448- }
449-
450469 int waitid (idtype_t, id_t , siginfo_t* , int );
451470}
452471else version (CRuntime_UClibc )
453472{
454- enum WEXITED = 4 ;
455- enum WSTOPPED = 2 ;
456- enum WCONTINUED = 8 ;
457- enum WNOWAIT = 0x01000000 ;
458-
459- enum idtype_t
460- {
461- P_ALL ,
462- P_PID ,
463- P_PGID
464- }
465-
466473 int waitid (idtype_t, id_t , siginfo_t* , int );
467474}
468475else
0 commit comments