pub const W = struct pub fn EXITSTATUS(s: u32) u8pub fn TERMSIG(s: u32) SIGpub fn STOPSIG(s: u32) SIGpub fn IFEXITED(s: u32) boolpub fn IFSTOPPED(s: u32) boolpub fn IFSIGNALED(s: u32) bool200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226pub const W = struct {
pub const NOHANG = 1;
pub const UNTRACED = 2;
pub const STOPPED = 2;
pub const EXITED = 4;
pub const CONTINUED = 8;
pub const NOWAIT = 0x1000000;
pub fn EXITSTATUS(s: u32) u8 {
return @as(u8, @intCast((s & 0xff00) >> 8));
}
pub fn TERMSIG(s: u32) SIG {
return @fromBackingInt(@intCast(s & 0x7f));
}
pub fn STOPSIG(s: u32) SIG {
return @fromBackingInt(@intCast(EXITSTATUS(s)));
}
pub fn IFEXITED(s: u32) bool {
return (s & 0x7f) == 0;
}
pub fn IFSTOPPED(s: u32) bool {
return @as(u16, @truncate(((s & 0xffff) *% 0x10001) >> 8)) > 0x7f00;
}
pub fn IFSIGNALED(s: u32) bool {
return (s & 0xffff) -% 1 < 0xff;
}
}