| ... | ... | @@ -181,7 +181,6 @@ pub const NativeTargetInfo = struct { |
| 181 | 181 | ProcessFdQuotaExceeded, |
| 182 | 182 | SystemFdQuotaExceeded, |
| 183 | 183 | DeviceBusy, |
| 184 | | Unexpected, |
| 185 | 184 | }; |
| 186 | 185 | |
| 187 | 186 | /// Given a `CrossTarget`, which specifies in detail which parts of the target should be detected |
| ... | ... | @@ -225,10 +224,9 @@ pub const NativeTargetInfo = struct { |
| 225 | 224 | var version_info: std.os.windows.RTL_OSVERSIONINFOW = undefined; |
| 226 | 225 | version_info.dwOSVersionInfoSize = @sizeOf(@TypeOf(version_info)); |
| 227 | 226 | |
| 228 | | const rc = std.os.windows.ntdll.RtlGetVersion(&version_info); |
| 229 | | switch (rc) { |
| 227 | switch (std.os.windows.ntdll.RtlGetVersion(&version_info)) { |
| 230 | 228 | .SUCCESS => {}, |
| 231 | | else => return std.os.windows.unexpectedStatus(rc), |
| 229 | else => unreachable, |
| 232 | 230 | } |
| 233 | 231 | |
| 234 | 232 | // Starting from the system infos build a NTDDI-like version |
| ... | ... | @@ -245,15 +243,16 @@ pub const NativeTargetInfo = struct { |
| 245 | 243 | // There's no other way to obtain this info beside |
| 246 | 244 | // checking the build number against a known set of |
| 247 | 245 | // values |
| 248 | | for ([_]u32{ |
| 246 | const known_build_numbers = [_]u32{ |
| 249 | 247 | 10240, 10586, 14393, 15063, 16299, 17134, 17763, |
| 250 | 248 | 18362, 18363, |
| 251 | | }) |build, i| { |
| 249 | }; |
| 250 | for (known_build_numbers) |build, i| { |
| 252 | 251 | if (version_info.dwBuildNumber < build) |
| 253 | 252 | break :subver @truncate(u8, i); |
| 254 | 253 | } |
| 255 | 254 | // Unknown subversion, the OS is too new... |
| 256 | | break :subver 0; |
| 255 | break :subver @truncate(u8, known_build_numbers.len); |
| 257 | 256 | } else 0; |
| 258 | 257 | |
| 259 | 258 | const version: u32 = @as(u32, os_ver) << 16 | @as(u32, sp_ver) << 8 | sub_ver; |