authorgravatar for ypsvlq@gmail.comElaine Gibson <ypsvlq@gmail.com> 2026-08-03 09:59:04+01:00
committergravatar for ypsvlq@gmail.comElaine Gibson <ypsvlq@gmail.com> 2026-08-03 09:59:04+01:00
logad6a79f327f6762baf9661341330c5a190c6d718
treeceef1e710389808e26d5faaaaa2f9e5247503e8c
parentc41f0e5529d22c3b002689002e31761860a73528

std.c.haiku: cleanup


3 files changed, 17 insertions(+), 84 deletions(-)

lib/std/Thread.zig+3-4
......@@ -719,10 +719,9 @@ const PosixThreadImpl = struct {
719719 },
720720 .haiku => {
721721 var system_info: std.c.system_info = undefined;
722 const rc = std.c.get_system_info(&system_info); // always returns B_OK
723 return switch (posix.errno(rc)) {
724 .SUCCESS => @as(usize, @intCast(system_info.cpu_count)),
725 else => |err| posix.unexpectedErrno(err),
722 return switch (std.c.get_system_info(&system_info)) {
723 0 => @as(usize, @intCast(system_info.cpu_count)),
724 else => error.Unexpected,
726725 };
727726 },
728727 else => {
lib/std/c.zig+3-11
......@@ -11267,31 +11267,23 @@ pub const signalfd_siginfo = illumos.signalfd_siginfo;
1126711267pub const taskid_t = illumos.taskid_t;
1126811268pub const zoneid_t = illumos.zoneid_t;
1126911269
11270pub const B_OS_NAME_LENGTH = haiku.B_OS_NAME_LENGTH;
1127011271pub const DirEnt = haiku.DirEnt;
11271pub const _get_next_area_info = haiku._get_next_area_info;
11272pub const _get_next_image_info = haiku._get_next_image_info;
11273pub const _get_team_info = haiku._get_team_info;
11274pub const _kern_get_current_team = haiku._kern_get_current_team;
1127511272pub const _kern_open_dir = haiku._kern_open_dir;
1127611273pub const _kern_read_dir = haiku._kern_read_dir;
1127711274pub const _kern_read_stat = haiku._kern_read_stat;
1127811275pub const _kern_rewind_dir = haiku._kern_rewind_dir;
11279pub const readv_pos = haiku.readv_pos;
11280pub const writev_pos = haiku.writev_pos;
1128111276pub const area_id = haiku.area_id;
11282pub const area_info = haiku.area_info;
11283pub const directory_which = haiku.directory_which;
11284pub const find_directory = haiku.find_directory;
1128511277pub const find_thread = haiku.find_thread;
1128611278pub const get_system_info = haiku.get_system_info;
11287pub const image_info = haiku.image_info;
1128811279pub const port_id = haiku.port_id;
11280pub const readv_pos = haiku.readv_pos;
1128911281pub const sem_id = haiku.sem_id;
1129011282pub const status_t = haiku.status_t;
1129111283pub const system_info = haiku.system_info;
1129211284pub const team_id = haiku.team_id;
11293pub const team_info = haiku.team_info;
1129411285pub const thread_id = haiku.thread_id;
11286pub const writev_pos = haiku.writev_pos;
1129511287
1129611288pub const AUTH = openbsd.AUTH;
1129711289pub const BI = openbsd.BI;
lib/std/c/haiku.zig+11-69
......@@ -1,15 +1,8 @@
11const std = @import("../std.zig");
2const assert = std.debug.assert;
32const builtin = @import("builtin");
4const maxInt = std.math.maxInt;
5const iovec = std.posix.iovec;
6const iovec_const = std.posix.iovec_const;
7const socklen_t = std.c.socklen_t;
3const assert = std.debug.assert;
84const fd_t = std.c.fd_t;
95const off_t = std.c.off_t;
10const PATH_MAX = std.c.PATH_MAX;
11const uid_t = std.c.uid_t;
12const gid_t = std.c.gid_t;
136const dev_t = std.c.dev_t;
147const ino_t = std.c.ino_t;
158
......@@ -17,52 +10,20 @@ comptime {
1710 assert(builtin.os.tag == .haiku); // Prevent access of std.c symbols on wrong OS.
1811}
1912
20pub extern "root" fn _errnop() *i32;
21pub extern "root" fn find_directory(which: directory_which, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) u64;
22pub extern "root" fn find_thread(thread_name: ?*anyopaque) i32;
23pub extern "root" fn get_system_info(system_info: *system_info) usize;
24pub extern "root" fn _get_team_info(team: i32, team_info: *team_info, size: usize) i32;
25pub extern "root" fn _get_next_area_info(team: i32, cookie: *i64, area_info: *area_info, size: usize) i32;
26pub extern "root" fn _get_next_image_info(team: i32, cookie: *i32, image_info: *image_info, size: usize) i32;
27pub extern "root" fn _kern_get_current_team() team_id;
13pub const B_OS_NAME_LENGTH = 32;
14
2815pub extern "root" fn _kern_open_dir(fd: fd_t, path: [*:0]const u8) fd_t;
2916pub extern "root" fn _kern_read_dir(fd: fd_t, buffer: [*]u8, bufferSize: usize, maxCount: u32) isize;
3017pub extern "root" fn _kern_rewind_dir(fd: fd_t) status_t;
3118pub extern "root" fn _kern_read_stat(fd: fd_t, path: [*:0]const u8, traverseLink: bool, stat: *std.c.Stat, statSize: usize) status_t;
32pub extern "root" fn readv_pos(fd: fd_t, pos: off_t, vec: [*]const std.c.iovec, count: i32) isize;
33pub extern "root" fn writev_pos(fd: fd_t, pos: off_t, vec: [*]const std.c.iovec_const, count: i32) isize;
3419
35pub const area_info = extern struct {
36 area: u32,
37 name: [32]u8,
38 size: usize,
39 lock: u32,
40 protection: u32,
41 team_id: i32,
42 ram_size: u32,
43 copy_count: u32,
44 in_count: u32,
45 out_count: u32,
46 address: *anyopaque,
47};
20pub extern "root" fn find_thread(name: ?[*:0]const u8) thread_id;
21pub extern "root" fn get_system_info(info: *system_info) status_t;
4822
49pub const image_info = extern struct {
50 id: u32,
51 image_type: u32,
52 sequence: i32,
53 init_order: i32,
54 init_routine: *anyopaque,
55 term_routine: *anyopaque,
56 device: i32,
57 node: i64,
58 name: [PATH_MAX]u8,
59 text: *anyopaque,
60 data: *anyopaque,
61 text_size: i32,
62 data_size: i32,
63 api_version: i32,
64 abi: i32,
65};
23pub extern "root" fn _errnop() *i32;
24
25pub extern "root" fn readv_pos(fd: fd_t, pos: off_t, vec: [*]const std.c.iovec, count: i32) isize;
26pub extern "root" fn writev_pos(fd: fd_t, pos: off_t, vec: [*]const std.c.iovec_const, count: i32) isize;
6627
6728pub const system_info = extern struct {
6829 boot_time: i64,
......@@ -86,31 +47,12 @@ pub const system_info = extern struct {
8647 max_teams: u32,
8748 used_teams: u32,
8849 kernel_name: [256]u8,
89 kernel_build_date: [32]u8,
90 kernel_build_time: [32]u8,
50 kernel_build_date: [B_OS_NAME_LENGTH]u8,
51 kernel_build_time: [B_OS_NAME_LENGTH]u8,
9152 kernel_version: i64,
9253 abi: u32,
9354};
9455
95pub const team_info = extern struct {
96 team_id: i32,
97 thread_count: i32,
98 image_count: i32,
99 area_count: i32,
100 debugger_nub_thread: i32,
101 debugger_nub_port: i32,
102 argc: i32,
103 args: [64]u8,
104 uid: uid_t,
105 gid: gid_t,
106};
107
108pub const directory_which = enum(i32) {
109 B_USER_SETTINGS_DIRECTORY = 0xbbe,
110
111 _,
112};
113
11456pub const area_id = i32;
11557pub const port_id = i32;
11658pub const sem_id = i32;