| ... | @@ -1762,7 +1762,20 @@ pub fn totalSystemMemory() TotalSystemMemoryError!u64 { | ... | @@ -1762,7 +1762,20 @@ pub fn totalSystemMemory() TotalSystemMemoryError!u64 { |
| 1762 | error.UnknownName => unreachable, | 1762 | error.UnknownName => unreachable, |
| 1763 | else => return error.UnknownTotalSystemMemory, | 1763 | else => return error.UnknownTotalSystemMemory, |
| 1764 | }; | 1764 | }; |
| 1765 | return @as(usize, @intCast(physmem)); | 1765 | return @as(u64, @intCast(physmem)); |
| | 1766 | }, |
| | 1767 | // whole Darwin family |
| | 1768 | .driverkit, .ios, .macos, .tvos, .visionos, .watchos => { |
| | 1769 | // "hw.memsize" returns uint64_t |
| | 1770 | var physmem: u64 = undefined; |
| | 1771 | var len: usize = @sizeOf(u64); |
| | 1772 | posix.sysctlbynameZ("hw.memsize", &physmem, &len, null, 0) catch |err| switch (err) { |
| | 1773 | error.PermissionDenied => unreachable, // only when setting values, |
| | 1774 | error.SystemResources => unreachable, // memory already on the stack |
| | 1775 | error.UnknownName => unreachable, // constant, known good value |
| | 1776 | else => return error.UnknownTotalSystemMemory, |
| | 1777 | }; |
| | 1778 | return physmem; |
| 1766 | }, | 1779 | }, |
| 1767 | .openbsd => { | 1780 | .openbsd => { |
| 1768 | const mib: [2]c_int = [_]c_int{ | 1781 | const mib: [2]c_int = [_]c_int{ |