aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os.zig
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-03-08 16:04:02 +0100
committerLemonBoy <thatlemon@gmail.com>2020-03-23 18:47:40 +0100
commit27344464edea0b6acf4dfc78d71700d67a3f3968 (patch)
treecc6c77072ce3625dc4f1d0c7848e7d10f17149af /lib/std/os.zig
parent2f21c8f5ba2e73c1a674b481fd2a8ce87726c14c (diff)
downloadzig-27344464edea0b6acf4dfc78d71700d67a3f3968.tar.gz
zig-27344464edea0b6acf4dfc78d71700d67a3f3968.zip
std: Add missing C defines for NetBSD
Diffstat (limited to 'lib/std/os.zig')
-rw-r--r--lib/std/os.zig30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/std/os.zig b/lib/std/os.zig
index 2dec2c4c1d..f03aa96cf9 100644
--- a/lib/std/os.zig
+++ b/lib/std/os.zig
@@ -2542,6 +2542,17 @@ pub fn fstat(fd: fd_t) FStatError!Stat {
}
}
+ if (std.Target.current.os.tag == .netbsd) {
+ switch (errno(system.__fstat50(fd, &stat))) {
+ 0 => return stat,
+ EINVAL => unreachable,
+ EBADF => unreachable, // Always a race condition.
+ ENOMEM => return error.SystemResources,
+ EACCES => return error.AccessDenied,
+ else => |err| return unexpectedErrno(err),
+ }
+ }
+
switch (errno(system.fstat(fd, &stat))) {
0 => return stat,
EINVAL => unreachable,
@@ -3401,6 +3412,16 @@ pub fn clock_gettime(clk_id: i32, tp: *timespec) ClockGetTimeError!void {
}
return;
}
+
+ if (std.Target.current.os.tag == .netbsd) {
+ switch (errno(system.__clock_gettime50(clk_id, tp))) {
+ 0 => return,
+ EFAULT => unreachable,
+ EINVAL => return error.UnsupportedClock,
+ else => |err| return unexpectedErrno(err),
+ }
+ }
+
switch (errno(system.clock_gettime(clk_id, tp))) {
0 => return,
EFAULT => unreachable,
@@ -3423,6 +3444,15 @@ pub fn clock_getres(clk_id: i32, res: *timespec) ClockGetTimeError!void {
return;
}
+ if (std.Target.current.os.tag == .netbsd) {
+ switch (errno(system.__clock_getres50(clk_id, res))) {
+ 0 => return,
+ EFAULT => unreachable,
+ EINVAL => return error.UnsupportedClock,
+ else => |err| return unexpectedErrno(err),
+ }
+ }
+
switch (errno(system.clock_getres(clk_id, res))) {
0 => return,
EFAULT => unreachable,