aboutsummaryrefslogtreecommitdiff
path: root/lib/std/c.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/c.zig')
-rw-r--r--lib/std/c.zig36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/std/c.zig b/lib/std/c.zig
index fdd544cba9..2a7579f260 100644
--- a/lib/std/c.zig
+++ b/lib/std/c.zig
@@ -114,6 +114,18 @@ pub const timespec = switch (native_os) {
return @as(wasi.timestamp_t, @intCast(ts.sec * 1_000_000_000)) +
@as(wasi.timestamp_t, @intCast(ts.nsec));
}
+
+ /// For use with `utimensat` and `futimens`.
+ pub const NOW: timespec = .{
+ .sec = 0,
+ .nsec = 0x3fffffff,
+ };
+
+ /// For use with `utimensat` and `futimens`.
+ pub const OMIT: timespec = .{
+ .sec = 0,
+ .nsec = 0x3ffffffe,
+ };
},
// https://github.com/SerenityOS/serenity/blob/0a78056453578c18e0a04a0b45ebfb1c96d59005/Kernel/API/POSIX/time.h#L17-L20
.windows, .serenity => extern struct {
@@ -123,10 +135,34 @@ pub const timespec = switch (native_os) {
.dragonfly, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct {
sec: isize,
nsec: isize,
+
+ /// For use with `utimensat` and `futimens`.
+ pub const NOW: timespec = .{
+ .sec = 0,
+ .nsec = -1,
+ };
+
+ /// For use with `utimensat` and `futimens`.
+ pub const OMIT: timespec = .{
+ .sec = 0,
+ .nsec = -2,
+ };
},
.netbsd, .illumos => extern struct {
sec: i64,
nsec: isize,
+
+ /// For use with `utimensat` and `futimens`.
+ pub const NOW: timespec = .{
+ .sec = 0,
+ .nsec = 0x3fffffff,
+ };
+
+ /// For use with `utimensat` and `futimens`.
+ pub const OMIT: timespec = .{
+ .sec = 0,
+ .nsec = 0x3ffffffe,
+ };
},
.openbsd, .haiku => extern struct {
sec: time_t,