| ... | ... | @@ -1163,12 +1163,17 @@ pub fn totalSystemMemory() TotalSystemMemoryError!usize { |
| 1163 | 1163 | .linux => { |
| 1164 | 1164 | return totalSystemMemoryLinux() catch return error.UnknownTotalSystemMemory; |
| 1165 | 1165 | }, |
| 1166 | | .freebsd => { |
| 1166 | .freebsd, .netbsd, .openbsd, .dragonfly, .macos => { |
| 1167 | 1167 | var physmem: c_ulong = undefined; |
| 1168 | 1168 | var len: usize = @sizeOf(c_ulong); |
| 1169 | | os.sysctlbynameZ("hw.physmem", &physmem, &len, null, 0) catch |err| switch (err) { |
| 1169 | const name = switch (builtin.os.tag) { |
| 1170 | .macos => "hw.memsize", |
| 1171 | .netbsd => "hw.physmem64", |
| 1172 | else => "hw.physmem", |
| 1173 | }; |
| 1174 | os.sysctlbynameZ(name, &physmem, &len, null, 0) catch |err| switch (err) { |
| 1170 | 1175 | error.NameTooLong, error.UnknownName => unreachable, |
| 1171 | | else => |e| return e, |
| 1176 | else => return error.UnknownTotalSystemMemory, |
| 1172 | 1177 | }; |
| 1173 | 1178 | return @intCast(usize, physmem); |
| 1174 | 1179 | }, |