authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-03-10 22:38:41+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-03-10 22:39:04+01:00
logb0dc61fae26ab37c41300a8e817cef45992669bb
tree3cfb8748ff1cc966ecb03c3ee63a59cfd22f5e9e
parent96f614d374cf76ca58b1932009d339dec9dc99ed

macos: add mach_* syscalls for process mgmt


1 files changed, 45 insertions(+), 0 deletions(-)

lib/std/c/darwin.zig+45
...@@ -70,6 +70,22 @@ pub extern "c" fn mach_timebase_info(tinfo: ?*mach_timebase_info_data) kern_retu...@@ -70,6 +70,22 @@ pub extern "c" fn mach_timebase_info(tinfo: ?*mach_timebase_info_data) kern_retu
70pub extern "c" fn malloc_size(?*const anyopaque) usize;70pub extern "c" fn malloc_size(?*const anyopaque) usize;
71pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int;71pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int;
7272
73pub const posix_spawnattr_t = *opaque {};
74pub const posix_spawn_file_actions_t = *opaque {};
75pub extern "c" fn posix_spawnattr_init(attr: *posix_spawnattr_t) c_int;
76pub extern "c" fn posix_spawnattr_destroy(attr: *posix_spawnattr_t) void;
77pub extern "c" fn posix_spawnattr_setflags(attr: *posix_spawnattr_t, flags: c_short) c_int;
78pub extern "c" fn posix_spawn_file_actions_init(actions: *posix_spawn_file_actions_t) c_int;
79pub extern "c" fn posix_spawn_file_actions_destroy(actions: *posix_spawn_file_actions_t) void;
80pub extern "c" fn posix_spawnp(
81 pid: *pid_t,
82 path: [*:0]const u8,
83 actions: ?*const posix_spawn_file_actions_t,
84 attr: *const posix_spawnattr_t,
85 argv: [*][*:0]const u8,
86 env: [*][*:0]const u8,
87) c_int;
88
73pub extern "c" fn kevent64(89pub extern "c" fn kevent64(
74 kq: c_int,90 kq: c_int,
75 changelist: [*]const kevent64_s,91 changelist: [*]const kevent64_s,
...@@ -107,6 +123,24 @@ pub extern "c" fn @"close$NOCANCEL"(fd: fd_t) c_int;...@@ -107,6 +123,24 @@ pub extern "c" fn @"close$NOCANCEL"(fd: fd_t) c_int;
107pub extern "c" fn mach_host_self() mach_port_t;123pub extern "c" fn mach_host_self() mach_port_t;
108pub extern "c" fn clock_get_time(clock_serv: clock_serv_t, cur_time: *mach_timespec_t) kern_return_t;124pub extern "c" fn clock_get_time(clock_serv: clock_serv_t, cur_time: *mach_timespec_t) kern_return_t;
109125
126pub const vm_map_t = mach_port_t;
127pub const mach_vm_address_t = usize;
128pub const vm_offset_t = usize;
129pub const mach_msg_type_number_t = natural_t;
130
131extern "c" var mach_task_self_: mach_port_t;
132pub fn mach_task_self() callconv(.C) mach_port_t {
133 return mach_task_self_;
134}
135
136pub extern "c" fn task_for_pid(target_tport: mach_port_name_t, pid: pid_t, t: *mach_port_name_t) kern_return_t;
137pub extern "c" fn mach_vm_write(
138 target_task: vm_map_t,
139 address: mach_vm_address_t,
140 data: vm_offset_t,
141 data_cnt: mach_msg_type_number_t,
142) kern_return_t;
143
110pub const sf_hdtr = extern struct {144pub const sf_hdtr = extern struct {
111 headers: [*]const iovec_const,145 headers: [*]const iovec_const,
112 hdr_cnt: c_int,146 hdr_cnt: c_int,
...@@ -2006,3 +2040,14 @@ pub const CPUFAMILY = enum(u32) {...@@ -2006,3 +2040,14 @@ pub const CPUFAMILY = enum(u32) {
2006 ARM_FIRESTORM_ICESTORM = 0x1b588bb3,2040 ARM_FIRESTORM_ICESTORM = 0x1b588bb3,
2007 _,2041 _,
2008};2042};
2043
2044pub const POSIX_SPAWN_RESETIDS: c_int = 0x0001;
2045pub const POSIX_SPAWN_SETPGROUP: c_int = 0x0002;
2046pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x0004;
2047pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x0008;
2048pub const POSIX_SPAWN_SETEXEC: c_int = 0x0040;
2049pub const POSIX_SPAWN_START_SUSPENDED: c_int = 0x0080;
2050pub const _POSIX_SPAWN_DISABLE_ASLR: c_int = 0x0100;
2051pub const POSIX_SPAWN_SETSID: c_int = 0x0400;
2052pub const _POSIX_SPAWN_RESLIDE: c_int = 0x0800;
2053pub const POSIX_SPAWN_CLOEXEC_DEFAULT: c_int = 0x4000;