Commit 5c70d7bc72

David CARLIER <devnexen@gmail.com>
2023-04-22 14:47:01
std.process: further totalSystemMemory portage
1 parent c66151a
Changed files (1)
lib
lib/std/process.zig
@@ -1163,12 +1163,17 @@ pub fn totalSystemMemory() TotalSystemMemoryError!usize {
         .linux => {
             return totalSystemMemoryLinux() catch return error.UnknownTotalSystemMemory;
         },
-        .freebsd => {
+        .freebsd, .netbsd, .openbsd, .dragonfly, .macos => {
             var physmem: c_ulong = undefined;
             var len: usize = @sizeOf(c_ulong);
-            os.sysctlbynameZ("hw.physmem", &physmem, &len, null, 0) catch |err| switch (err) {
+            const name = switch (builtin.os.tag) {
+                .macos => "hw.memsize",
+                .netbsd => "hw.physmem64",
+                else => "hw.physmem",
+            };
+            os.sysctlbynameZ(name, &physmem, &len, null, 0) catch |err| switch (err) {
                 error.NameTooLong, error.UnknownName => unreachable,
-                else => |e| return e,
+                else => return error.UnknownTotalSystemMemory,
             };
             return @intCast(usize, physmem);
         },