From 5c70d7bc723a8e0e47018d3606285005c280ddb8 Mon Sep 17 00:00:00 2001 From: David CARLIER Date: Sat, 22 Apr 2023 13:47:01 +0100 Subject: [PATCH] std.process: further totalSystemMemory portage --- lib/std/process.zig | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/std/process.zig b/lib/std/process.zig index 87dbed443f..56e3708f3b 100644 --- a/lib/std/process.zig +++ b/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); },