drop NameTooLong from sysctlbynameZ error set (#24909)

This commit is contained in:
Sardorbek Imomaliev 2025-08-21 11:36:57 +01:00 committed by GitHub
parent cab6d752e8
commit 01b5023868
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 9 additions and 5 deletions

View File

@ -761,7 +761,7 @@ const PosixThreadImpl = struct {
var count_len: usize = @sizeOf(c_int); var count_len: usize = @sizeOf(c_int);
const name = if (comptime target.os.tag.isDarwin()) "hw.logicalcpu" else "hw.ncpu"; const name = if (comptime target.os.tag.isDarwin()) "hw.logicalcpu" else "hw.ncpu";
posix.sysctlbynameZ(name, &count, &count_len, null, 0) catch |err| switch (err) { posix.sysctlbynameZ(name, &count, &count_len, null, 0) catch |err| switch (err) {
error.NameTooLong, error.UnknownName => unreachable, error.UnknownName => unreachable,
else => |e| return e, else => |e| return e,
}; };
return @as(usize, @intCast(count)); return @as(usize, @intCast(count));

View File

@ -5291,13 +5291,19 @@ pub fn sysctl(
} }
} }
pub const SysCtlByNameError = error{
PermissionDenied,
SystemResources,
UnknownName,
} || UnexpectedError;
pub fn sysctlbynameZ( pub fn sysctlbynameZ(
name: [*:0]const u8, name: [*:0]const u8,
oldp: ?*anyopaque, oldp: ?*anyopaque,
oldlenp: ?*usize, oldlenp: ?*usize,
newp: ?*anyopaque, newp: ?*anyopaque,
newlen: usize, newlen: usize,
) SysCtlError!void { ) SysCtlByNameError!void {
if (native_os == .wasi) { if (native_os == .wasi) {
@compileError("sysctl not supported on WASI"); @compileError("sysctl not supported on WASI");
} }

View File

@ -1759,7 +1759,7 @@ pub fn totalSystemMemory() TotalSystemMemoryError!u64 {
var physmem: c_ulong = undefined; var physmem: c_ulong = undefined;
var len: usize = @sizeOf(c_ulong); var len: usize = @sizeOf(c_ulong);
posix.sysctlbynameZ("hw.physmem", &physmem, &len, null, 0) catch |err| switch (err) { posix.sysctlbynameZ("hw.physmem", &physmem, &len, null, 0) catch |err| switch (err) {
error.NameTooLong, error.UnknownName => unreachable, error.UnknownName => unreachable,
else => return error.UnknownTotalSystemMemory, else => return error.UnknownTotalSystemMemory,
}; };
return @as(usize, @intCast(physmem)); return @as(usize, @intCast(physmem));

View File

@ -228,7 +228,6 @@ pub fn resolveTargetQuery(query: Target.Query) DetectError!Target {
var len: usize = @sizeOf(@TypeOf(value)); var len: usize = @sizeOf(@TypeOf(value));
posix.sysctlbynameZ(key, &value, &len, null, 0) catch |err| switch (err) { posix.sysctlbynameZ(key, &value, &len, null, 0) catch |err| switch (err) {
error.NameTooLong => unreachable, // constant, known good value
error.PermissionDenied => unreachable, // only when setting values, error.PermissionDenied => unreachable, // only when setting values,
error.SystemResources => unreachable, // memory already on the stack error.SystemResources => unreachable, // memory already on the stack
error.UnknownName => unreachable, // constant, known good value error.UnknownName => unreachable, // constant, known good value

View File

@ -397,7 +397,6 @@ pub fn detectNativeCpuAndFeatures() ?Target.Cpu {
var cpu_family: std.c.CPUFAMILY = undefined; var cpu_family: std.c.CPUFAMILY = undefined;
var len: usize = @sizeOf(std.c.CPUFAMILY); var len: usize = @sizeOf(std.c.CPUFAMILY);
std.posix.sysctlbynameZ("hw.cpufamily", &cpu_family, &len, null, 0) catch |err| switch (err) { std.posix.sysctlbynameZ("hw.cpufamily", &cpu_family, &len, null, 0) catch |err| switch (err) {
error.NameTooLong => unreachable, // constant, known good value
error.PermissionDenied => unreachable, // only when setting values, error.PermissionDenied => unreachable, // only when setting values,
error.SystemResources => unreachable, // memory already on the stack error.SystemResources => unreachable, // memory already on the stack
error.UnknownName => unreachable, // constant, known good value error.UnknownName => unreachable, // constant, known good value