| ... | ... | @@ -114,6 +114,18 @@ pub const timespec = switch (native_os) { |
| 114 | 114 | return @as(wasi.timestamp_t, @intCast(ts.sec * 1_000_000_000)) + |
| 115 | 115 | @as(wasi.timestamp_t, @intCast(ts.nsec)); |
| 116 | 116 | } |
| 117 | |
| 118 | /// For use with `utimensat` and `futimens`. |
| 119 | pub const NOW: timespec = .{ |
| 120 | .sec = 0, |
| 121 | .nsec = 0x3fffffff, |
| 122 | }; |
| 123 | |
| 124 | /// For use with `utimensat` and `futimens`. |
| 125 | pub const OMIT: timespec = .{ |
| 126 | .sec = 0, |
| 127 | .nsec = 0x3ffffffe, |
| 128 | }; |
| 117 | 129 | }, |
| 118 | 130 | // https://github.com/SerenityOS/serenity/blob/0a78056453578c18e0a04a0b45ebfb1c96d59005/Kernel/API/POSIX/time.h#L17-L20 |
| 119 | 131 | .windows, .serenity => extern struct { |
| ... | ... | @@ -123,10 +135,34 @@ pub const timespec = switch (native_os) { |
| 123 | 135 | .dragonfly, .freebsd, .driverkit, .ios, .maccatalyst, .macos, .tvos, .visionos, .watchos => extern struct { |
| 124 | 136 | sec: isize, |
| 125 | 137 | nsec: isize, |
| 138 | |
| 139 | /// For use with `utimensat` and `futimens`. |
| 140 | pub const NOW: timespec = .{ |
| 141 | .sec = 0, |
| 142 | .nsec = -1, |
| 143 | }; |
| 144 | |
| 145 | /// For use with `utimensat` and `futimens`. |
| 146 | pub const OMIT: timespec = .{ |
| 147 | .sec = 0, |
| 148 | .nsec = -2, |
| 149 | }; |
| 126 | 150 | }, |
| 127 | 151 | .netbsd, .illumos => extern struct { |
| 128 | 152 | sec: i64, |
| 129 | 153 | nsec: isize, |
| 154 | |
| 155 | /// For use with `utimensat` and `futimens`. |
| 156 | pub const NOW: timespec = .{ |
| 157 | .sec = 0, |
| 158 | .nsec = 0x3fffffff, |
| 159 | }; |
| 160 | |
| 161 | /// For use with `utimensat` and `futimens`. |
| 162 | pub const OMIT: timespec = .{ |
| 163 | .sec = 0, |
| 164 | .nsec = 0x3ffffffe, |
| 165 | }; |
| 130 | 166 | }, |
| 131 | 167 | .openbsd, .haiku => extern struct { |
| 132 | 168 | sec: time_t, |