From 66d5f391eac2831f078f6e3ba3ca380075a14733 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:49:45 -0700 Subject: [PATCH 01/63] Revert "std.c: fix haiku's find_path signature." This reverts commit 9e0ac4449a18677ba695f7a75342cbdb049aad52. --- lib/std/c/haiku.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index d75bcbdc33..057bb0d07a 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -13,7 +13,7 @@ pub const _errno = _errnop; pub extern "c" fn find_directory(which: directory_which, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) status_t; -pub extern "c" fn find_path(codePointer: ?*const u8, baseDirectory: path_base_directory, subPath: ?[*:0]const u8, pathBuffer: [*:0]u8, bufferSize: usize) status_t; +pub extern "c" fn find_path(codePointer: *const u8, baseDirectory: path_base_directory, subPath: [*:0]const u8, pathBuffer: [*:0]u8, bufferSize: usize) status_t; pub extern "c" fn find_thread(thread_name: ?*anyopaque) i32; From 95e2605d30c15963c4d6bc9e39751031b0f52007 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:49:57 -0700 Subject: [PATCH 02/63] Revert "std.c: msghdr* struct removing prefixes to match linux." This reverts commit 8f14431bc883898aaf78cc985e2d90716187e882. --- lib/std/c/dragonfly.zig | 14 +++++++------- lib/std/c/freebsd.zig | 28 ++++++++++++++-------------- lib/std/c/haiku.zig | 14 +++++++------- lib/std/c/netbsd.zig | 28 ++++++++++++++-------------- lib/std/c/openbsd.zig | 28 ++++++++++++++-------------- lib/std/c/solaris.zig | 28 ++++++++++++++-------------- 6 files changed, 70 insertions(+), 70 deletions(-) diff --git a/lib/std/c/dragonfly.zig b/lib/std/c/dragonfly.zig index f18e193225..6782aa098a 100644 --- a/lib/std/c/dragonfly.zig +++ b/lib/std/c/dragonfly.zig @@ -889,13 +889,13 @@ pub const cmsghdr = extern struct { cmsg_type: c_int, }; pub const msghdr = extern struct { - name: ?*anyopaque, - namelen: socklen_t, - iov: [*]iovec, - iovlen: c_int, - control: ?*anyopaque, - controllen: socklen_t, - flags: c_int, + msg_name: ?*anyopaque, + msg_namelen: socklen_t, + msg_iov: [*]iovec, + msg_iovlen: c_int, + msg_control: ?*anyopaque, + msg_controllen: socklen_t, + msg_flags: c_int, }; pub const cmsgcred = extern struct { cmcred_pid: pid_t, diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 16b404fbda..6c2d577a73 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -355,36 +355,36 @@ pub const Flock = extern struct { pub const msghdr = extern struct { /// Optional address. - name: ?*sockaddr, + msg_name: ?*sockaddr, /// Size of address. - namelen: socklen_t, + msg_namelen: socklen_t, /// Scatter/gather array. - iov: [*]iovec, + msg_iov: [*]iovec, /// Number of elements in msg_iov. - iovlen: i32, + msg_iovlen: i32, /// Ancillary data. - control: ?*anyopaque, + msg_control: ?*anyopaque, /// Ancillary data buffer length. - controllen: socklen_t, + msg_controllen: socklen_t, /// Flags on received message. - flags: i32, + msg_flags: i32, }; pub const msghdr_const = extern struct { /// Optional address. - name: ?*const sockaddr, + msg_name: ?*const sockaddr, /// Size of address. - namelen: socklen_t, + msg_namelen: socklen_t, /// Scatter/gather array. - iov: [*]iovec_const, + msg_iov: [*]iovec_const, /// Number of elements in msg_iov. - iovlen: i32, + msg_iovlen: i32, /// Ancillary data. - control: ?*anyopaque, + msg_control: ?*anyopaque, /// Ancillary data buffer length. - controllen: socklen_t, + msg_controllen: socklen_t, /// Flags on received message. - flags: i32, + msg_flags: i32, }; pub const Stat = extern struct { diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index 057bb0d07a..c47ceeb003 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -173,25 +173,25 @@ pub const Flock = extern struct { pub const msghdr = extern struct { /// optional address - name: ?*sockaddr, + msg_name: ?*sockaddr, /// size of address - namelen: socklen_t, + msg_namelen: socklen_t, /// scatter/gather array - iov: [*]iovec, + msg_iov: [*]iovec, /// # elements in msg_iov - iovlen: i32, + msg_iovlen: i32, /// ancillary data - control: ?*anyopaque, + msg_control: ?*anyopaque, /// ancillary data buffer len - controllen: socklen_t, + msg_controllen: socklen_t, /// flags on received message - flags: i32, + msg_flags: i32, }; pub const off_t = i64; diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 3ab33cf9d5..1fc0784287 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -253,48 +253,48 @@ pub const EAI_MAX = 15; pub const msghdr = extern struct { /// optional address - name: ?*sockaddr, + msg_name: ?*sockaddr, /// size of address - namelen: socklen_t, + msg_namelen: socklen_t, /// scatter/gather array - iov: [*]iovec, + msg_iov: [*]iovec, /// # elements in msg_iov - iovlen: i32, + msg_iovlen: i32, /// ancillary data - control: ?*anyopaque, + msg_control: ?*anyopaque, /// ancillary data buffer len - controllen: socklen_t, + msg_controllen: socklen_t, /// flags on received message - flags: i32, + msg_flags: i32, }; pub const msghdr_const = extern struct { /// optional address - name: ?*const sockaddr, + msg_name: ?*const sockaddr, /// size of address - namelen: socklen_t, + msg_namelen: socklen_t, /// scatter/gather array - iov: [*]const iovec_const, + msg_iov: [*]const iovec_const, /// # elements in msg_iov - iovlen: i32, + msg_iovlen: i32, /// ancillary data - control: ?*const anyopaque, + msg_control: ?*const anyopaque, /// ancillary data buffer len - controllen: socklen_t, + msg_controllen: socklen_t, /// flags on received message - flags: i32, + msg_flags: i32, }; /// The stat structure used by libc. diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index b18978dfbb..06085903e4 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -251,48 +251,48 @@ pub const EAI_MAX = 15; pub const msghdr = extern struct { /// optional address - name: ?*sockaddr, + msg_name: ?*sockaddr, /// size of address - namelen: socklen_t, + msg_namelen: socklen_t, /// scatter/gather array - iov: [*]iovec, + msg_iov: [*]iovec, /// # elements in msg_iov - iovlen: c_uint, + msg_iovlen: c_uint, /// ancillary data - control: ?*anyopaque, + msg_control: ?*anyopaque, /// ancillary data buffer len - controllen: socklen_t, + msg_controllen: socklen_t, /// flags on received message - flags: c_int, + msg_flags: c_int, }; pub const msghdr_const = extern struct { /// optional address - name: ?*const sockaddr, + msg_name: ?*const sockaddr, /// size of address - namelen: socklen_t, + msg_namelen: socklen_t, /// scatter/gather array - iov: [*]const iovec_const, + msg_iov: [*]const iovec_const, /// # elements in msg_iov - iovlen: c_uint, + msg_iovlen: c_uint, /// ancillary data - control: ?*const anyopaque, + msg_control: ?*const anyopaque, /// ancillary data buffer len - controllen: socklen_t, + msg_controllen: socklen_t, /// flags on received message - flags: c_int, + msg_flags: c_int, }; pub const Stat = extern struct { diff --git a/lib/std/c/solaris.zig b/lib/std/c/solaris.zig index d6014a7a99..cbca1805bb 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/solaris.zig @@ -183,36 +183,36 @@ pub const EAI_MAX = 14; pub const msghdr = extern struct { /// optional address - name: ?*sockaddr, + msg_name: ?*sockaddr, /// size of address - namelen: socklen_t, + msg_namelen: socklen_t, /// scatter/gather array - iov: [*]iovec, + msg_iov: [*]iovec, /// # elements in msg_iov - iovlen: i32, + msg_iovlen: i32, /// ancillary data - control: ?*anyopaque, + msg_control: ?*anyopaque, /// ancillary data buffer len - controllen: socklen_t, + msg_controllen: socklen_t, /// flags on received message - flags: i32, + msg_flags: i32, }; pub const msghdr_const = extern struct { /// optional address - name: ?*const sockaddr, + msg_name: ?*const sockaddr, /// size of address - namelen: socklen_t, + msg_namelen: socklen_t, /// scatter/gather array - iov: [*]const iovec_const, + msg_iov: [*]const iovec_const, /// # elements in msg_iov - iovlen: i32, + msg_iovlen: i32, /// ancillary data - control: ?*const anyopaque, + msg_control: ?*const anyopaque, /// ancillary data buffer len - controllen: socklen_t, + msg_controllen: socklen_t, /// flags on received message - flags: i32, + msg_flags: i32, }; pub const cmsghdr = extern struct { From 88b4ee172f4a1822811c265613336c6bc5a2c435 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:50:09 -0700 Subject: [PATCH 03/63] Revert "std.c: few freebsd's kinfo api fixes." This reverts commit d07149c56d202c3503c4f5505e8b003b3e161145. --- lib/std/c/freebsd.zig | 50 +++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 6c2d577a73..deec41493d 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -94,7 +94,7 @@ pub extern "c" fn getpid() pid_t; pub extern "c" fn kinfo_getfile(pid: pid_t, cntp: *c_int) ?[*]kinfo_file; pub extern "c" fn kinfo_getvmmap(pid: pid_t, cntp: *c_int) ?[*]kinfo_vmentry; -pub extern "c" fn kinfo_getproc(pid: pid_t) ?*kinfo_proc; +pub extern "c" fn kinfo_getproc(pid: pid_t) ?[*]kinfo_proc; pub extern "c" fn kinfo_getvmobject(cntp: *c_int) ?[*]kinfo_vmobject; pub extern "c" fn kinfo_getswapvmobject(cntp: *c_int) ?[*]kinfo_vmobject; @@ -676,31 +676,31 @@ comptime { } pub const kinfo_vmentry = extern struct { - structsize: c_int, - type: c_int, - start: u64, - end: u64, - offset: u64, - vn_fileid: u64, - vn_fsid_freebsd11: u32, - flags: c_int, - resident: c_int, - private_resident: c_int, - protection: c_int, - ref_count: c_int, - shadow_count: c_int, - vn_type: c_int, - vn_size: u64, - vn_rdev_freebsd11: u32, - vn_mode: u16, - status: u16, - type_spec: extern union { - _vn_fsid: u64, - _obj: u64, + kve_structsize: c_int, + kve_type: c_int, + kve_start: u64, + kve_end: u64, + kve_offset: u64, + kve_vn_fileid: u64, + kve_vn_fsid_freebsd11: u32, + kve_flags: c_int, + kve_resident: c_int, + kve_private_resident: c_int, + kve_protection: c_int, + kve_ref_count: c_int, + kve_shadow_count: c_int, + kve_vn_type: c_int, + kve_vn_size: u64, + kve_vn_rdev_freebsd11: u32, + kve_vn_mode: u16, + kve_status: u16, + kve_type_spec: extern union { + _kve_vn_fsid: u64, + _kve_obj: u64, }, - vn_rdev: u64, - _ispare: [8]c_int, - rpath: [PATH_MAX]u8, + kve_vn_rdev: u64, + _kve_ispare: [8]c_int, + kve_rpath: [PATH_MAX]u8, }; pub const KINFO_VMENTRY_SIZE = 1160; From 381704dd0e7300dd5c621c46e9a64f374c3ad617 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:50:16 -0700 Subject: [PATCH 04/63] Revert "std.c: fix few capcisum api calls, following-up on 6ae19fa." This reverts commit 72dd22f262353fa7d37c89c7d163e97a162abb9b. --- lib/std/c/freebsd.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index deec41493d..3bdd6f9df3 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -554,11 +554,11 @@ pub const CAP = struct { pub extern "c" fn __cap_rights_init(version: c_int, rights: ?*cap_rights_t, ...) ?*cap_rights_t; pub extern "c" fn __cap_rights_set(rights: ?*cap_rights_t, ...) ?*cap_rights_t; pub extern "c" fn __cap_rights_clear(rights: ?*cap_rights_t, ...) ?*cap_rights_t; +pub extern "c" fn __cap_rights_merge(dst: ?*cap_rights_t, src: ?*const cap_rights_t) ?*cap_rights_t; +pub extern "c" fn __cap_rights_remove(dst: ?*cap_rights_t, src: ?*const cap_rights_t) ?*cap_rights_t; +pub extern "c" fn __cap_rights_contains(dst: ?*const cap_rights_t, src: ?*const cap_rights_t) bool; pub extern "c" fn __cap_rights_is_set(rights: ?*const cap_rights_t, ...) bool; -pub extern "c" fn cap_rights_merge(dst: ?*cap_rights_t, src: ?*const cap_rights_t) ?*cap_rights_t; -pub extern "c" fn cap_rights_remove(dst: ?*cap_rights_t, src: ?*const cap_rights_t) ?*cap_rights_t; -pub extern "c" fn cap_rights_contains(dst: ?*const cap_rights_t, src: ?*const cap_rights_t) bool; -pub extern "c" fn cap_rights_is_valid(rights: ?*const cap_rights_t) bool; +pub extern "c" fn __cap_rights_is_valid(rights: ?*const cap_rights_t) bool; pub const kinfo_file = extern struct { /// Size of this record. From 004711310a6b71e5145a73e4884866671dfdc54d Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:50:22 -0700 Subject: [PATCH 05/63] Revert "std.c: fix host_basic_info definition for darwin." This reverts commit ea1d64dae4bb34d62e9cfddf7e3da493ed8063e9. --- lib/std/c/darwin.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index c3e464f6d2..f1f706fa6c 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -4071,7 +4071,7 @@ pub const HOST = struct { pub const EXTMOD_INFO64_COUNT = HostCount(vm_extmod_statistics_data_t); }; -pub const host_basic_info = extern struct { +pub const host_basic_info = packed struct(u32) { max_cpus: integer_t, avail_cpus: integer_t, memory_size: natural_t, From 643c9868380a9fd34f2154beecfe36cbd9e2f688 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:50:27 -0700 Subject: [PATCH 06/63] Revert "std.c: freebsd fix typo for PROC.PROCCTL_MD_MIN constant." This reverts commit e9dd0a22f0d93683f97db747be53d8d2d21c3543. --- lib/std/c/freebsd.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 3bdd6f9df3..bcaff7e156 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2464,8 +2464,8 @@ pub const PROC = struct { // x86_64-only constants pub const KPTI = switch (builtin.cpu.arch) { .x86_64 => struct { - pub const CTL = PROC.PROCCTL_MD_MIN; - pub const STATUS = PROC.PROCCTL_MD_MIN + 1; + pub const CTL = PROC.PROCCTL_MD_MIND; + pub const STATUS = PROC.PROCCTL_MD_MIND + 1; pub const CTL_ENABLE_ON_EXEC = 1; pub const CTL_DISABLE_ON_EXEC = 2; pub const STATUS_ACTIVE = 0x80000000; @@ -2474,8 +2474,8 @@ pub const PROC = struct { }; pub const LA = switch (builtin.cpu.arch) { .x86_64 => struct { - pub const CTL = PROC.PROCCTL_MD_MIN + 2; - pub const STATUS = PROC.PROCCTL_MD_MIN + 3; + pub const CTL = PROC.PROCCTL_MD_MIND + 2; + pub const STATUS = PROC.PROCCTL_MD_MIND + 3; pub const CTL_LA48_ON_EXEC = 1; pub const CTL_LA57_ON_EXEC = 2; pub const CTL_DEFAULT_ON_EXEC = 3; From dad7eea8d9c8dee3f74ee1cd5533aa18f17b08d8 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:50:39 -0700 Subject: [PATCH 07/63] Revert "std.c: update netbsd/openbsd mman constants" This reverts commit 64f0059cd33b571d6cf91df45f4cb2e0af9c0742. --- lib/std/c/netbsd.zig | 16 ---------------- lib/std/c/openbsd.zig | 10 ---------- 2 files changed, 26 deletions(-) diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 1fc0784287..d9cc259f6d 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -579,12 +579,6 @@ pub const PROT = struct { pub const READ = 1; pub const WRITE = 2; pub const EXEC = 4; - pub fn MPROTECT(flag: u32) u32 { - return flag << 3; - } - pub fn MPROTECT_EXTRACT(flag: u32) u32 { - return (flag >> 3) & 0x7; - } }; pub const CLOCK = struct { @@ -627,16 +621,6 @@ pub const MAP = struct { pub const ALIGNMENT_64PB = MAP.ALIGNED(56); }; -pub const MADV = struct { - pub const NORMAL = 0; - pub const RANDOM = 1; - pub const SEQUENTIAL = 2; - pub const WILLNEED = 3; - pub const DONTNEED = 4; - pub const SPACEAVAIL = 5; - pub const FREE = 6; -}; - pub const MSF = struct { pub const ASYNC = 1; pub const INVALIDATE = 2; diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 06085903e4..314dcf74ba 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -466,16 +466,6 @@ pub const MAP = struct { pub const CONCEAL = 0x8000; }; -pub const MADV = struct { - pub const NORMAL = 0; - pub const RANDOM = 1; - pub const SEQUENTIAL = 2; - pub const WILLNEED = 3; - pub const DONTNEED = 4; - pub const SPACEAVAIL = 5; - pub const FREE = 6; -}; - pub const MSF = struct { pub const ASYNC = 1; pub const INVALIDATE = 2; From 8e9a33b82c1f8cbc457e7d0af37605952db0c4ae Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:50:48 -0700 Subject: [PATCH 08/63] Revert "Merge pull request #15867 from devnexen/haiku_malloc_usable_size" This reverts commit 3ef91233caf2c637797d84527a4e78f870e4b4b9, reversing changes made to 2839e35d1c06ca5b6bda1f20ae870f2b2fbbbfb1. --- lib/std/c/dragonfly.zig | 1 - lib/std/c/haiku.zig | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib/std/c/dragonfly.zig b/lib/std/c/dragonfly.zig index 6782aa098a..268391c830 100644 --- a/lib/std/c/dragonfly.zig +++ b/lib/std/c/dragonfly.zig @@ -21,7 +21,6 @@ pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*an pub extern "c" fn lwp_gettid() c_int; pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; -pub extern "c" fn malloc_usable_size(?*const anyopaque) usize; pub const pthread_mutex_t = extern struct { inner: ?*anyopaque = null, diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index c47ceeb003..7aba395b75 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -1071,5 +1071,3 @@ pub const sigevent = extern struct { /// TODO refines if necessary pub const PTHREAD_STACK_MIN = 2 * 4096; - -pub extern "c" fn malloc_usable_size(?*anyopaque) usize; From 9f20d01cfb593fb4959a1a16f786787477a3e91b Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:51:44 -0700 Subject: [PATCH 09/63] Revert "std.c: exposing timer api" This reverts commit 54ea0bbcdddc9e13ed98415d8883f03d59392509. --- lib/std/c.zig | 5 ----- lib/std/c/dragonfly.zig | 2 -- lib/std/c/freebsd.zig | 2 -- lib/std/c/linux.zig | 1 - lib/std/c/netbsd.zig | 2 -- lib/std/c/solaris.zig | 2 -- 6 files changed, 14 deletions(-) diff --git a/lib/std/c.zig b/lib/std/c.zig index 860fdab929..66875eadd0 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -408,11 +408,6 @@ pub extern "c" fn setlogmask(maskpri: c_int) c_int; pub extern "c" fn if_nametoindex([*:0]const u8) c_int; -pub extern "c" fn timer_create(clockid: c.clockid_t, sevp: *c.sigevent, timerid: *c.timer_t) c_int; -pub extern "c" fn timer_delete(timerid: c.timer_t) c_int; -pub extern "c" fn timer_settime(timerid: c.timer_t, flags: c_int, new_value: *const c.itimerspec, old_value: *c.itimerspec) c_int; -pub extern "c" fn timer_gettime(timerid: c.timer_t, flags: c_int, curr_value: *c.itimerspec) c_int; - pub usingnamespace if (builtin.os.tag == .linux and builtin.target.isMusl()) struct { // musl does not implement getcontext pub const getcontext = std.os.linux.getcontext; diff --git a/lib/std/c/dragonfly.zig b/lib/std/c/dragonfly.zig index 268391c830..52d37811dd 100644 --- a/lib/std/c/dragonfly.zig +++ b/lib/std/c/dragonfly.zig @@ -1162,5 +1162,3 @@ pub const sigevent = extern struct { }; pub const PTHREAD_STACK_MIN = 16 * 1024; - -pub const timer_t = *opaque {}; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index bcaff7e156..546df22a1d 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2586,8 +2586,6 @@ pub const sigevent = extern struct { }, }; -pub const timer_t = *opaque {}; - pub const MIN = struct { pub const INCORE = 0x1; pub const REFERENCED = 0x2; diff --git a/lib/std/c/linux.zig b/lib/std/c/linux.zig index ddc488e115..09f744ee17 100644 --- a/lib/std/c/linux.zig +++ b/lib/std/c/linux.zig @@ -100,7 +100,6 @@ pub const stack_t = linux.stack_t; pub const tcflag_t = linux.tcflag_t; pub const termios = linux.termios; pub const time_t = linux.time_t; -pub const timer_t = linux.timer_t; pub const timespec = linux.timespec; pub const timeval = linux.timeval; pub const timezone = linux.timezone; diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index d9cc259f6d..0ada556436 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -1723,5 +1723,3 @@ pub extern "c" fn ptrace(request: c_int, pid: pid_t, addr: ?*anyopaque, data: c_ /// TODO refines if necessary pub const PTHREAD_STACK_MIN = 16 * 1024; - -pub const timer_t = *opaque {}; diff --git a/lib/std/c/solaris.zig b/lib/std/c/solaris.zig index cbca1805bb..576d12e9c8 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/solaris.zig @@ -1948,5 +1948,3 @@ pub const sigevent = extern struct { }; pub const PTHREAD_STACK_MIN = if (@sizeOf(usize) == 8) 8 * 1024 else 4 * 1024; - -pub const timer_t = *opaque {}; From ba3b3528914f8e886b5fe2cba714de34c176a921 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:52:12 -0700 Subject: [PATCH 10/63] Revert "std.os: fix uname usage." This reverts commit 138f1253deb48434af707ec5e9124e889520be08. --- lib/std/c/darwin.zig | 12 ------------ lib/std/c/freebsd.zig | 12 ------------ 2 files changed, 24 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index f1f706fa6c..afa50c4286 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -4159,15 +4159,3 @@ pub const PTHREAD_STACK_MIN = switch (builtin.cpu.arch) { .arm, .aarch64 => 16 * 1024, else => 8 * 1024, }; - -pub const _SYS_NAMELEN = 256; - -pub const utsname = extern struct { - sysname: [255:0]u8, - nodename: [255:0]u8, - release: [255:0]u8, - version: [255:0]u8, - machine: [255:0]u8, -}; - -pub extern "c" fn uname(u: *utsname) c_int; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 546df22a1d..8c7548e174 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2824,15 +2824,3 @@ pub const PTHREAD_STACK_MIN = switch (builtin.cpu.arch) { .x86, .powerpc => 4 * 512, else => 4 * 1024, }; - -pub const SYS_NMLN = 256; - -pub const utsname = extern struct { - sysname: [255:0]u8, - nodename: [255:0]u8, - release: [255:0]u8, - version: [255:0]u8, - machine: [255:0]u8, -}; - -pub extern "c" fn uname(u: *utsname) c_int; From 1b9ffa0824198fc72b085ad99e9f27ad6f533f3a Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:54:35 -0700 Subject: [PATCH 11/63] Revert "std.Thread: refining stack size from platform minimum, changes more targetted towards platform like Linux/musl (#15791)" This reverts commit 41502c6aa53a3da31b276c23c4db74db7d04796b. --- lib/std/Thread.zig | 2 +- lib/std/c/darwin.zig | 6 ------ lib/std/c/dragonfly.zig | 2 -- lib/std/c/emscripten.zig | 2 -- lib/std/c/freebsd.zig | 6 ------ lib/std/c/haiku.zig | 3 --- lib/std/c/linux.zig | 12 ------------ lib/std/c/minix.zig | 2 -- lib/std/c/netbsd.zig | 3 --- lib/std/c/openbsd.zig | 7 ------- lib/std/c/solaris.zig | 2 -- lib/std/c/wasi.zig | 2 -- 12 files changed, 1 insertion(+), 48 deletions(-) diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index 64815bde72..ff4f7e8f49 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -695,7 +695,7 @@ const PosixThreadImpl = struct { defer assert(c.pthread_attr_destroy(&attr) == .SUCCESS); // Use the same set of parameters used by the libc-less impl. - const stack_size = @max(config.stack_size, c.PTHREAD_STACK_MIN); + const stack_size = @max(config.stack_size, 16 * 1024); assert(c.pthread_attr_setstacksize(&attr, stack_size) == .SUCCESS); assert(c.pthread_attr_setguardsize(&attr, std.mem.page_size) == .SUCCESS); diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index afa50c4286..b9fc59a1a7 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -4153,9 +4153,3 @@ pub const vm_extmod_statistics_t = *vm_extmod_statistics; pub const vm_extmod_statistics_data_t = vm_extmod_statistics; pub extern "c" fn vm_stats(info: ?*anyopaque, count: *c_uint) kern_return_t; - -/// TODO refines if necessary -pub const PTHREAD_STACK_MIN = switch (builtin.cpu.arch) { - .arm, .aarch64 => 16 * 1024, - else => 8 * 1024, -}; diff --git a/lib/std/c/dragonfly.zig b/lib/std/c/dragonfly.zig index 52d37811dd..bf14372e9f 100644 --- a/lib/std/c/dragonfly.zig +++ b/lib/std/c/dragonfly.zig @@ -1160,5 +1160,3 @@ pub const sigevent = extern struct { sigev_value: sigval, sigev_notify_function: ?*const fn (sigval) callconv(.C) void, }; - -pub const PTHREAD_STACK_MIN = 16 * 1024; diff --git a/lib/std/c/emscripten.zig b/lib/std/c/emscripten.zig index 8b9fd8c2a2..0d78d4d73f 100644 --- a/lib/std/c/emscripten.zig +++ b/lib/std/c/emscripten.zig @@ -9,5 +9,3 @@ pub const pthread_rwlock_t = extern struct { }; const __SIZEOF_PTHREAD_COND_T = 48; const __SIZEOF_PTHREAD_MUTEX_T = 28; - -pub const PTHREAD_STACK_MIN = 2048; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 8c7548e174..c2288b21b2 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2818,9 +2818,3 @@ pub const ptrace_cs_remote = extern struct { }; pub extern "c" fn ptrace(request: c_int, pid: pid_t, addr: [*:0]u8, data: c_int) c_int; - -/// TODO refines if necessary -pub const PTHREAD_STACK_MIN = switch (builtin.cpu.arch) { - .x86, .powerpc => 4 * 512, - else => 4 * 1024, -}; diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index 7aba395b75..e8e5ac70e0 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -1068,6 +1068,3 @@ pub const sigevent = extern struct { sigev_notify_function: ?*const fn (sigval) callconv(.C) void, sigev_notify_attributes: ?*pthread_attr_t, }; - -/// TODO refines if necessary -pub const PTHREAD_STACK_MIN = 2 * 4096; diff --git a/lib/std/c/linux.zig b/lib/std/c/linux.zig index 09f744ee17..d392a5ca72 100644 --- a/lib/std/c/linux.zig +++ b/lib/std/c/linux.zig @@ -350,18 +350,6 @@ const __SIZEOF_PTHREAD_MUTEX_T = switch (native_abi) { }; const __SIZEOF_SEM_T = 4 * @sizeOf(usize); -/// TODO refines if necessary -pub const PTHREAD_STACK_MIN = switch (native_abi) { - .musl, .musleabi, .musleabihf => 2048, - .gnu, .gnuabin32, .gnuabi64, .gnueabi, .gnueabihf, .gnux32 => switch (native_arch) { - .aarch64, .arm, .armeb, .powerpc, .powerpc64, .powerpc64le, .loongarch32, .loongarch64 => 131072, - .sparc64 => 24576, - else => 16 * 1024, - }, - .android => if (@sizeOf(usize) == 8) 16 * 1024 else 8 * 1024, - else => 16 * 1024, -}; - pub extern "c" fn pthread_setname_np(thread: std.c.pthread_t, name: [*:0]const u8) E; pub extern "c" fn pthread_getname_np(thread: std.c.pthread_t, name: [*:0]u8, len: usize) E; diff --git a/lib/std/c/minix.zig b/lib/std/c/minix.zig index 672f36ca86..62cefc14fb 100644 --- a/lib/std/c/minix.zig +++ b/lib/std/c/minix.zig @@ -16,5 +16,3 @@ const __SIZEOF_PTHREAD_MUTEX_T = switch (builtin.abi) { }, else => unreachable, }; - -pub const PTHREAD_STACK_MIN = 16 * 1024; diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 0ada556436..8b7c1afbbf 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -1720,6 +1720,3 @@ pub const PIOD = struct { }; pub extern "c" fn ptrace(request: c_int, pid: pid_t, addr: ?*anyopaque, data: c_int) c_int; - -/// TODO refines if necessary -pub const PTHREAD_STACK_MIN = 16 * 1024; diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 314dcf74ba..7496a85a5e 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -1634,10 +1634,3 @@ pub const HW = struct { pub const NCPUONLINE = 25; pub const POWER = 26; }; - -/// TODO refines if necessary -pub const PTHREAD_STACK_MIN = switch (builtin.cpu.arch) { - .sparc64 => 1 << 13, - .mips64 => 1 << 14, - else => 1 << 12, -}; diff --git a/lib/std/c/solaris.zig b/lib/std/c/solaris.zig index 576d12e9c8..4f81952374 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/solaris.zig @@ -1946,5 +1946,3 @@ pub const sigevent = extern struct { sigev_notify_function: ?*const fn (sigval) callconv(.C) void, sigev_notify_attributes: ?*pthread_attr_t, }; - -pub const PTHREAD_STACK_MIN = if (@sizeOf(usize) == 8) 8 * 1024 else 4 * 1024; diff --git a/lib/std/c/wasi.zig b/lib/std/c/wasi.zig index 2cb0a32b06..e1940054b6 100644 --- a/lib/std/c/wasi.zig +++ b/lib/std/c/wasi.zig @@ -119,5 +119,3 @@ pub const POLL = struct { pub const HUP = 0x2000; pub const NVAL = 0x4000; }; - -pub const PTHREAD_STACK_MIN = 16 * 1024; From 9d798ead633b4ac2f6641e339d63b13a79d6bbab Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:54:45 -0700 Subject: [PATCH 12/63] Revert "std.c: fix freebsd's CPU_ISSET call" This reverts commit 768965788ecb9a0a70b4363f9472471bb0bbe5ec. --- lib/std/c/freebsd.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index c2288b21b2..16afb95d45 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -38,10 +38,10 @@ pub fn CPU_SET(cpu: usize, set: *cpuset_t) void { } } -pub fn CPU_ISSET(cpu: usize, set: cpuset_t) bool { +pub fn CPU_ISSET(cpu: usize, set: cpuset_t) void { const x = cpu / @sizeOf(c_long); if (x < @sizeOf(cpuset_t)) { - return set.__bits[x] & __BIT_MASK(x) != 0; + return set.__bits[x] & __BIT_MASK(x); } return false; } From aff65e74e1bd4b8c7e547ea68ad54e2c7d0a958c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:54:51 -0700 Subject: [PATCH 13/63] Revert "std.os: gethostname non libc linking using uname like linux" This reverts commit f8991ba3d48a23b7c73079a017d69d3ead23d398. --- lib/std/os.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/os.zig b/lib/std/os.zig index d569a466cb..3cf22b77e7 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -5695,7 +5695,7 @@ pub fn gethostname(name_buffer: *[HOST_NAME_MAX]u8) GetHostNameError![]u8 { else => |err| return unexpectedErrno(err), } } - if (builtin.os.tag == .linux or builtin.os.tag == .macos or builtin.os.tag == .freebsd) { + if (builtin.os.tag == .linux) { const uts = uname(); const hostname = mem.sliceTo(&uts.nodename, 0); const result = name_buffer[0..hostname.len]; From 43162efbf42e02c9873924b3adf37716d2c175cf Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:55:03 -0700 Subject: [PATCH 14/63] Revert "std.c: adding ptrace for netbsd." This reverts commit ccfb0d408d5ffb40f77a8ad1fb57f0bb854583ad. --- lib/std/c/netbsd.zig | 52 -------------------------------------------- 1 file changed, 52 deletions(-) diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 8b7c1afbbf..57e1394097 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -1668,55 +1668,3 @@ pub const sigevent = extern struct { sigev_notify_function: ?*const fn (sigval) callconv(.C) void, sigev_notify_attributes: ?*pthread_attr_t, }; - -pub const PTRACE = struct { - pub const FORK = 0x0001; - pub const VFORK = 0x0002; - pub const VFORK_DONE = 0x0004; - pub const LWP_CREATE = 0x0008; - pub const LWP_EXIT = 0x0010; - pub const POSIX_SPAWN = 0x0020; -}; - -pub const PT = struct { - pub const TRACE_ME = 0; - pub const READ_I = 1; - pub const READ_D = 2; - pub const WRITE_I = 4; - pub const WRITE_D = 5; - pub const CONTINUE = 7; - pub const KILL = 8; - pub const ATTACH = 9; - pub const DETACH = 10; - pub const IO = 11; - pub const DUMPCORE = 11; - pub const LWPINFO = 12; -}; - -pub const ptrace_event = extern struct { - set_event: c_int, -}; - -pub const ptrace_state = extern struct { - report_event: c_int, - _option: extern union { - other_pid: pid_t, - lwp: lwpid_t, - }, -}; - -pub const ptrace_io_desc = extern struct { - op: c_int, - offs: ?*anyopaque, - addr: ?*anyopaque, - len: usize, -}; - -pub const PIOD = struct { - pub const READ_D = 1; - pub const WRITE_D = 2; - pub const READ_I = 3; - pub const WRITE_I = 4; -}; - -pub extern "c" fn ptrace(request: c_int, pid: pid_t, addr: ?*anyopaque, data: c_int) c_int; From 833af381f018de02dfc5180b8d6d5bd0cfe0f495 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:56:55 -0700 Subject: [PATCH 15/63] Revert "std.os: add linux timer api" This reverts commit b9d2e0e308794463db1b1acf04d76778c470a070. --- lib/std/os/linux.zig | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 4335bba009..aa2883ef6b 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -1591,43 +1591,6 @@ pub fn timerfd_settime(fd: i32, flags: u32, new_value: *const itimerspec, old_va return syscall4(.timerfd_settime, @as(usize, @bitCast(@as(isize, fd))), flags, @intFromPtr(new_value), @intFromPtr(old_value)); } -pub const sigevent = extern struct { - value: sigval, - signo: i32, - inotify: i32, - libc_priv_impl: opaque {}, -}; - -// Flags for sigevent sigev_inotify's field -pub const SIGEV = enum(i32) { - NONE = 0, - SIGNAL = 1, - THREAD = 2, - THREAD_ID = 4, -}; - -pub const timer_t = ?*anyopaque; - -pub fn timer_create(clockid: i32, sevp: *sigevent, timerid: *timer_t) usize { - var t: timer_t = undefined; - const rc = syscall3(.timer_create, @as(usize, @bitCast(@as(isize, clockid))), @intFromPtr(sevp), @intFromPtr(&t)); - if (@as(isize, @bitCast(rc)) < 0) return rc; - timerid.* = t; - return rc; -} - -pub fn timer_delete(timerid: timer_t) usize { - return syscall1(.timer_delete, timerid); -} - -pub fn timer_gettime(timerid: timer_t, curr_value: *itimerspec) usize { - return syscall2(.timer_gettime, @intFromPtr(timerid), @intFromPtr(curr_value)); -} - -pub fn timer_settime(timerid: timer_t, flags: i32, new_value: *const itimerspec, old_value: ?*itimerspec) usize { - return syscall4(.timer_settime, @intFromPtr(timerid), @as(usize, @bitCast(@as(isize, flags))), @intFromPtr(new_value), @intFromPtr(old_value)); -} - // Flags for the 'setitimer' system call pub const ITIMER = enum(i32) { REAL = 0, From faa6daef9981060eccf832b1c21d50929aa327dd Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:57:06 -0700 Subject: [PATCH 16/63] Revert "std.c: darwin's *copyfile api update." This reverts commit 40e8c2243c139dc499298645a2b387e30ae09cba. --- lib/std/c/darwin.zig | 64 ++++---------------------------------------- lib/std/fs.zig | 2 +- 2 files changed, 6 insertions(+), 60 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index b9fc59a1a7..b384fcf845 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -161,67 +161,13 @@ pub extern "c" fn _dyld_get_image_header(image_index: u32) ?*mach_header; pub extern "c" fn _dyld_get_image_vmaddr_slide(image_index: u32) usize; pub extern "c" fn _dyld_get_image_name(image_index: u32) [*:0]const u8; -pub const COPYFILE = struct { - pub const ACL = 1 << 0; - pub const STAT = 1 << 1; - pub const XATTR = 1 << 2; - pub const DATA = 1 << 3; - pub const SECURITY = COPYFILE.STAT | COPYFILE.ACL; - pub const METADATA = COPYFILE.SECURITY | COPYFILE.XATTR; - pub const ALL = COPYFILE.METADATA | COPYFILE.DATA; - pub const RECURSIVE = 1 << 15; - pub const CHECK = 1 << 16; - pub const EXCL = 1 << 17; - pub const NOFOLLOW_SRC = 1 << 18; - pub const NOFOLLOW_DST = 1 << 19; - pub const MOVE = 1 << 20; - pub const UNLINK = 1 << 21; - pub const NOFOLLOW = COPYFILE.NOFOLLOW_SRC | NOFOLLOW_DST; - pub const PACK = 1 << 22; - pub const UNPACK = 1 << 23; - pub const CLONE = 1 << 24; - pub const CLONE_FORCE = 1 << 25; - pub const RUN_IN_PLACE = 1 << 26; - pub const DATA_SPARSE = 1 << 27; - pub const PRESERVE_DST_TRACKED = 1 << 28; - pub const VERBOSE = 1 << 30; - pub const RECURSE_ERROR = 0; - pub const RECURSE_FILE = 1; - pub const RECURSE_DIR = 2; - pub const RECURSE_DIR_CLEANUP = 3; - pub const COPY_DATA = 4; - pub const COPY_XATTR = 5; - pub const START = 1; - pub const FINISH = 2; - pub const ERR = 3; - pub const PROGRESS = 4; - pub const CONTINUE = 0; - pub const SKIP = 1; - pub const QUIT = 2; - pub const STATE_SRC_FD = 1; - pub const STATE_SRC_FILENAME = 2; - pub const STATE_DST_FD = 3; - pub const STATE_DST_FILENAME = 4; - pub const STATE_QUARANTINE = 5; - pub const STATE_STATUS_CB = 6; - pub const STATE_STATUS_CTX = 7; - pub const STATE_COPIED = 8; - pub const STATE_XATTRNAME = 9; - pub const STATE_WAS_CLONED = 10; - pub const STATE_SRC_BSIZE = 11; - pub const STATE_DST_BSIZE = 12; - pub const STATE_BSIZE = 13; - pub const DISABLE_VAR: [*]u8 = "COPYFILE_DISABLE"; -}; +pub const COPYFILE_ACL = 1 << 0; +pub const COPYFILE_STAT = 1 << 1; +pub const COPYFILE_XATTR = 1 << 2; +pub const COPYFILE_DATA = 1 << 3; pub const copyfile_state_t = *opaque {}; -pub const copyfile_flags_t = u32; -pub extern "c" fn fcopyfile(from: fd_t, to: fd_t, state: ?copyfile_state_t, flags: copyfile_flags_t) c_int; -pub extern "c" fn copyfile(from: [*:0]u8, to: [*:0]u8, state: ?copyfile_state_t, flags: copyfile_flags_t) c_int; -pub extern "c" fn copyfile_state_alloc() copyfile_state_t; -pub extern "c" fn copyfile_state_free(state: copyfile_state_t) void; -pub extern "c" fn copyfile_state_get(s: copyfile_state_t, flag: u32, dst: ?*anyopaque) c_int; -pub extern "c" fn copyfile_state_set(s: copyfile_state_t, flag: u32, dst: ?*const anyopaque) c_int; +pub extern "c" fn fcopyfile(from: fd_t, to: fd_t, state: ?copyfile_state_t, flags: u32) c_int; pub extern "c" fn @"realpath$DARWIN_EXTSN"(noalias file_name: [*:0]const u8, noalias resolved_name: [*]u8) ?[*:0]u8; pub const realpath = @"realpath$DARWIN_EXTSN"; diff --git a/lib/std/fs.zig b/lib/std/fs.zig index 89a0d3ab6f..de18a085e4 100644 --- a/lib/std/fs.zig +++ b/lib/std/fs.zig @@ -3120,7 +3120,7 @@ const CopyFileRawError = error{SystemResources} || os.CopyFileRangeError || os.S // No metadata is transferred over. fn copy_file(fd_in: os.fd_t, fd_out: os.fd_t, maybe_size: ?u64) CopyFileRawError!void { if (comptime builtin.target.isDarwin()) { - const rc = os.system.fcopyfile(fd_in, fd_out, null, os.system.COPYFILE.DATA); + const rc = os.system.fcopyfile(fd_in, fd_out, null, os.system.COPYFILE_DATA); switch (os.errno(rc)) { .SUCCESS => return, .INVAL => unreachable, From b7e37f9ddce4cd3eaaf31a4577fb74d7a22a6193 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:57:12 -0700 Subject: [PATCH 17/63] Revert "std.c: add ptrace for freebsd support." This reverts commit b754068fbc7492962953068d31386d4c04e37ae5. --- lib/std/c/freebsd.zig | 114 ------------------------------------------ 1 file changed, 114 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 16afb95d45..8c6df5367d 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2704,117 +2704,3 @@ pub const RF = struct { }; pub extern "c" fn rfork(flags: c_int) c_int; - -pub const PTRACE = struct { - pub const EXC = 0x0001; - pub const SCE = 0x0002; - pub const SCX = 0x0004; - pub const SYSCALL = (PTRACE.SCE | PTRACE.SCX); - pub const FORK = 0x0008; - pub const LWP = 0x0010; - pub const VFORK = 0x0020; - pub const DEFAULT = PTRACE.EXEC; -}; - -pub const PT = struct { - pub const TRACE_ME = 0; - pub const READ_I = 1; - pub const READ_D = 2; - pub const WRITE_I = 4; - pub const WRITE_D = 5; - pub const CONTINUE = 7; - pub const KILL = 8; - pub const STEP = 9; - pub const ATTACH = 10; - pub const DETACH = 11; - pub const IO = 12; - pub const LWPINFO = 13; - pub const GETNUMLWPS = 14; - pub const GETLWPLIST = 15; - pub const CLEARSTEP = 16; - pub const SETSTEP = 17; - pub const SUSPEND = 18; - pub const RESUME = 19; - pub const TO_SCE = 20; - pub const TO_SCX = 21; - pub const SYSCALL = 22; - pub const FOLLOW_FORK = 23; - pub const LWP_EVENTS = 24; - pub const GET_EVENT_MASK = 25; - pub const SET_EVENT_MASK = 26; - pub const GET_SC_ARGS = 27; - pub const GET_SC_RET = 28; - pub const COREDUMP = 29; - pub const GETREGS = 33; - pub const SETREGS = 34; - pub const GETFPREGS = 35; - pub const SETFPREGS = 36; - pub const GETDBREGS = 37; - pub const SETDBREGS = 38; - pub const VM_TIMESTAMP = 40; - pub const VM_ENTRY = 41; - pub const GETREGSET = 42; - pub const SETREGSET = 43; - pub const SC_REMOTE = 44; - pub const FIRSTMACH = 64; -}; - -pub const ptrace_io_desc = extern struct { - op: c_int, - offs: ?*anyopaque, - addr: ?*anyopaque, - len: usize, -}; - -pub const PIOD = struct { - pub const READ_D = 1; - pub const WRITE_D = 2; - pub const READ_I = 3; - pub const WRITE_I = 4; -}; - -pub const ptrace_lwpinfo = extern struct { - lwpid: lwpid_t, - event: c_int, - flags: c_int, - sigmask: sigset_t, - siglist: sigset_t, - siginfo: siginfo_t, - tdname: [MAXCOMLEN + 1]u8, - child_pid: pid_t, - syscall_code: c_uint, - syscall_narg: c_uint, -}; - -pub const ptrace_sc_ret = extern struct { - retval: [2]isize, - err: c_int, -}; - -pub const ptrace_vm_entry = extern struct { - entry: c_int, - timestamp: c_int, - start: c_ulong, - end: c_ulong, - offset: c_ulong, - prot: c_uint, - pathlen: c_uint, - fileid: c_long, - fsid: u32, - pve_path: ?[*:0]u8, -}; - -pub const ptrace_coredump = extern struct { - fd: c_int, - flags: u32, - limit: isize, -}; - -pub const ptrace_cs_remote = extern struct { - ret: ptrace_sc_ret, - syscall: c_uint, - nargs: c_uint, - args: *isize, -}; - -pub extern "c" fn ptrace(request: c_int, pid: pid_t, addr: [*:0]u8, data: c_int) c_int; From a208c59a25e6d6b30f4a9bda4d562cb205e8a6b9 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:57:22 -0700 Subject: [PATCH 18/63] Revert "std.c: add netbsd's accept_filter_data for ACCEPT_FILTER sock opt." This reverts commit b677b3627818edc24828f36f8269a3c3843703a1. --- lib/std/c/netbsd.zig | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 57e1394097..6e4872612d 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -485,11 +485,6 @@ pub const AF = struct { pub const MAX = 37; }; -pub const accept_filter_arg = extern struct { - af_name: [16]u8, - af_args: [240]u8, -}; - pub const in_port_t = u16; pub const sa_family_t = u8; From e1fdd21f0e1d7aaa2a18af0fe35c921d93089b41 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:57:35 -0700 Subject: [PATCH 19/63] Revert "std.c: add rfork for freebsd" This reverts commit 2952fb97588fa2eb711bf84b479e959b60542192. --- lib/std/c/freebsd.zig | 38 -------------------------------------- 1 file changed, 38 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 8c6df5367d..b44a72fafc 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2666,41 +2666,3 @@ pub fn IOW(op: u8, nr: u8, comptime IT: type) u32 { pub fn IOWR(op: u8, nr: u8, comptime IT: type) u32 { return ioImpl(ioctl_cmd.INOUT, op, nr, @sizeOf(IT)); } - -pub const RF = struct { - pub const NAMEG = 1 << 0; - pub const ENVG = 1 << 1; - /// copy file descriptors table - pub const FDG = 1 << 2; - pub const NOTEG = 1 << 3; - /// creates a new process - pub const PROC = 1 << 4; - /// shares address space - pub const MEM = 1 << 5; - /// detaches the child - pub const NOWAIT = 1 << 6; - pub const CNAMEG = 1 << 10; - pub const CENVG = 1 << 11; - /// distinct file descriptor table - pub const CFDG = 1 << 12; - /// thread support - pub const THREAD = 1 << 13; - /// shares signal handlers - pub const SIGSHARE = 1 << 14; - /// emits SIGUSR1 on exit - pub const LINUXTHPN = 1 << 16; - /// child in stopped state - pub const STOPPED = 1 << 17; - /// use high pid id - pub const HIGHPID = 1 << 18; - /// selects signal flag for parent notification - pub const SIGSZMB = 1 << 19; - pub fn SIGNUM(f: u32) u32 { - return f >> 20; - } - pub fn SIGFLAGS(f: u32) u32 { - return f << 20; - } -}; - -pub extern "c" fn rfork(flags: c_int) c_int; From 86a5edca6238f4c9b861931e40d8cbe005568819 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 10:58:03 -0700 Subject: [PATCH 20/63] Revert "std.os: implementing sched_setaffinity wrapper for freebsd" This reverts commit 05268bb9677ef0545cca6c788169b2707842dc8d. --- lib/std/c/freebsd.zig | 31 ------------------------------- lib/std/os.zig | 13 ------------- 2 files changed, 44 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index b44a72fafc..d845f87753 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -18,41 +18,10 @@ fn __BIT_COUNT(bits: []const c_long) c_long { return count; } -fn __BIT_MASK(s: usize) c_long { - var x = s % CPU_SETSIZE; - return @as(c_long, @bitCast(@as(c_ulong, @intCast(1)) << @as(u6, @intCast(x)))); -} - pub fn CPU_COUNT(set: cpuset_t) c_int { return @as(c_int, @intCast(__BIT_COUNT(set.__bits[0..]))); } -pub fn CPU_ZERO(set: *cpuset_t) void { - @memset((set.*).__bits[0..], 0); -} - -pub fn CPU_SET(cpu: usize, set: *cpuset_t) void { - const x = cpu / @sizeOf(c_long); - if (x < @sizeOf(cpuset_t)) { - (set.*).__bits[x] |= __BIT_MASK(x); - } -} - -pub fn CPU_ISSET(cpu: usize, set: cpuset_t) void { - const x = cpu / @sizeOf(c_long); - if (x < @sizeOf(cpuset_t)) { - return set.__bits[x] & __BIT_MASK(x); - } - return false; -} - -pub fn CPU_CLR(cpu: usize, set: *cpuset_t) void { - const x = cpu / @sizeOf(c_long); - if (x < @sizeOf(cpuset_t)) { - (set.*).__bits[x] &= !__BIT_MASK(x); - } -} - pub const cpulevel_t = c_int; pub const cpuwhich_t = c_int; pub const id_t = i64; diff --git a/lib/std/os.zig b/lib/std/os.zig index 3cf22b77e7..dd9384bdf4 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -5537,19 +5537,6 @@ pub fn sched_setaffinity(pid: pid_t, cpus: []usize) SchedSetAffinityError!cpu_se .PERM => return error.PermissionDenied, else => |err| return unexpectedErrno(err), } - } else if (builtin.os.tag == .freebsd) { - freebsd.CPU_ZERO(&set); - for (cpus) |cpu| { - freebsd.CPU_SET(cpu, &set); - } - switch (errno(freebsd.cpuset_setaffinity(freebsd.CPU_LEVEL_WHICH, freebsd.CPU_WHICH_PID, pid, @sizeOf(cpu_set_t), &set))) { - .SUCCESS => return set, - .FAULT => unreachable, - .SRCH => unreachable, - .INVAL => return error.InvalidCpu, - .PERM => return error.PermissionDenied, - else => |err| return unexpectedErrno(err), - } } else { @compileError("unsupported platform"); } From 182bec87718dda88406575f0dea18bf11954c88c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:01:42 -0700 Subject: [PATCH 21/63] Revert "std.os: adding linux's sched_setaffinity and its wrapper" This reverts commit c7bf8bab38f8b89c1371eedb9229e00a29b5ca5b. --- lib/std/c/linux.zig | 5 ----- lib/std/os.zig | 21 --------------------- lib/std/os/linux.zig | 37 ------------------------------------- 3 files changed, 63 deletions(-) diff --git a/lib/std/c/linux.zig b/lib/std/c/linux.zig index d392a5ca72..2618f8d47b 100644 --- a/lib/std/c/linux.zig +++ b/lib/std/c/linux.zig @@ -13,10 +13,6 @@ pub const ARCH = linux.ARCH; pub const AT = linux.AT; pub const CLOCK = linux.CLOCK; pub const CPU_COUNT = linux.CPU_COUNT; -pub const CPU_SET = linux.CPU_SET; -pub const CPU_ISSET = linux.CPU_ISSET; -pub const CPU_CLR = linux.CPU_CLR; -pub const CPU_ZERO = linux.CPU_ZERO; pub const E = linux.E; pub const Elf_Symndx = linux.Elf_Symndx; pub const F = linux.F; @@ -249,7 +245,6 @@ pub extern "c" fn setrlimit64(resource: rlimit_resource, rlim: *const rlimit) c_ pub extern "c" fn getrandom(buf_ptr: [*]u8, buf_len: usize, flags: c_uint) isize; pub extern "c" fn sched_getaffinity(pid: c_int, size: usize, set: *cpu_set_t) c_int; -pub extern "c" fn sched_setaffinity(pid: c_int, size: usize, set: *const cpu_set_t) c_int; pub extern "c" fn eventfd(initval: c_uint, flags: c_uint) c_int; pub extern "c" fn epoll_ctl(epfd: fd_t, op: c_uint, fd: fd_t, event: ?*epoll_event) c_int; pub extern "c" fn epoll_create1(flags: c_uint) c_int; diff --git a/lib/std/os.zig b/lib/std/os.zig index dd9384bdf4..dbcff656d6 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -5494,7 +5494,6 @@ pub fn clock_getres(clk_id: i32, res: *timespec) ClockGetTimeError!void { } pub const SchedGetAffinityError = error{PermissionDenied} || UnexpectedError; -pub const SchedSetAffinityError = error{ InvalidCpu, PermissionDenied } || UnexpectedError; pub fn sched_getaffinity(pid: pid_t) SchedGetAffinityError!cpu_set_t { var set: cpu_set_t = undefined; @@ -5522,26 +5521,6 @@ pub fn sched_getaffinity(pid: pid_t) SchedGetAffinityError!cpu_set_t { } } -pub fn sched_setaffinity(pid: pid_t, cpus: []usize) SchedSetAffinityError!cpu_set_t { - var set: cpu_set_t = undefined; - if (builtin.os.tag == .linux) { - system.CPU_ZERO(&set); - for (cpus) |cpu| { - system.CPU_SET(cpu, &set); - } - switch (errno(system.sched_setaffinity(pid, @sizeOf(cpu_set_t), &set))) { - .SUCCESS => return set, - .FAULT => unreachable, - .SRCH => unreachable, - .INVAL => return error.InvalidCpu, - .PERM => return error.PermissionDenied, - else => |err| return unexpectedErrno(err), - } - } else { - @compileError("unsupported platform"); - } -} - /// Used to convert a slice to a null terminated slice on the stack. /// TODO https://github.com/ziglang/zig/issues/287 pub fn toPosixPath(file_path: []const u8) ![MAX_PATH_BYTES - 1:0]u8 { diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index aa2883ef6b..2a067743c3 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -1536,12 +1536,6 @@ pub fn mbind(addr: ?*anyopaque, len: u32, mode: i32, nodemask: *const u32, maxno return syscall6(.mbind, @intFromPtr(addr), len, @as(usize, @bitCast(@as(isize, mode))), @intFromPtr(nodemask), maxnode, flags); } -pub fn sched_setaffinity(pid: pid_t, size: usize, set: *const cpu_set_t) usize { - const rc = syscall3(.sched_setaffinity, @as(usize, @bitCast(@as(isize, pid))), size, @intFromPtr(set)); - if (@as(isize, @bitCast(rc)) < 0) return rc; - return 0; -} - pub fn epoll_create() usize { return epoll_create1(0); } @@ -3560,11 +3554,6 @@ pub const CPU_SETSIZE = 128; pub const cpu_set_t = [CPU_SETSIZE / @sizeOf(usize)]usize; pub const cpu_count_t = std.meta.Int(.unsigned, std.math.log2(CPU_SETSIZE * 8)); -fn cpu_mask(s: usize) cpu_count_t { - var x = s & (CPU_SETSIZE * 8); - return @as(cpu_count_t, @intCast(1)) << @as(u4, @intCast(x)); -} - pub fn CPU_COUNT(set: cpu_set_t) cpu_count_t { var sum: cpu_count_t = 0; for (set) |x| { @@ -3573,32 +3562,6 @@ pub fn CPU_COUNT(set: cpu_set_t) cpu_count_t { return sum; } -pub fn CPU_ZERO(set: *cpu_set_t) void { - @memset(set, 0); -} - -pub fn CPU_SET(cpu: usize, set: *cpu_set_t) void { - const x = cpu / @sizeOf(usize); - if (x < @sizeOf(cpu_set_t)) { - (set.*)[x] |= cpu_mask(x); - } -} - -pub fn CPU_ISSET(cpu: usize, set: cpu_set_t) bool { - const x = cpu / @sizeOf(usize); - if (x < @sizeOf(cpu_set_t)) { - return set[x] & cpu_mask(x) != 0; - } - return false; -} - -pub fn CPU_CLR(cpu: usize, set: *cpu_set_t) void { - const x = cpu / @sizeOf(usize); - if (x < @sizeOf(cpu_set_t)) { - (set.*)[x] &= !cpu_mask(x); - } -} - pub const MINSIGSTKSZ = switch (native_arch) { .x86, .x86_64, .arm, .mipsel => 2048, .aarch64 => 5120, From 8678d445c2dfe81918f0958df1d4da314f06db6f Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:02:43 -0700 Subject: [PATCH 22/63] Revert "linux adding some NUMA support" This reverts commit 6f418c11e1ad1150fbdb002cfe1be92bda4e93cb. --- lib/std/c/linux.zig | 16 ---------------- lib/std/os/linux.zig | 16 ---------------- 2 files changed, 32 deletions(-) diff --git a/lib/std/c/linux.zig b/lib/std/c/linux.zig index 2618f8d47b..c4986101df 100644 --- a/lib/std/c/linux.zig +++ b/lib/std/c/linux.zig @@ -371,19 +371,3 @@ pub const dirent64 = struct { d_type: u8, d_name: [256]u8, }; - -pub const MPOL = struct { - pub const F_NODE = 1 << 0; - pub const F_ADDR = 1 << 1; - pub const F_MEMS_ALLOWED = 1 << 2; - /// flags for SYS_mbind - pub const MF_STRICT = 1 << 0; - pub const MF_MOVE = 1 << 1; - pub const MF_MOVE_ALL = 1 << 2; - pub const MF_LAZY = 1 << 3; - pub const MF_INTERNAL = 1 << 4; - pub const MF_VALID = MPOL.MF_STRICT | MPOL.MF_MOVE | MPOL.MOVE_ALL; -}; - -pub extern "c" fn getcpu(cpu: *c_uint, node: *c_uint) c_int; -pub extern "c" fn sched_getcpu() c_int; diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 2a067743c3..b2ead56b31 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -1520,22 +1520,6 @@ pub fn sched_getaffinity(pid: pid_t, size: usize, set: *cpu_set_t) usize { return 0; } -pub fn getcpu(cpu: *u32, node: *u32) usize { - return syscall3(.getcpu, @intFromPtr(cpu), @intFromPtr(node), 0); -} - -pub fn sched_getcpu() usize { - var cpu: u32 = undefined; - const rc = syscall3(.getcpu, @intFromPtr(&cpu), 0, 0); - if (@as(isize, @bitCast(rc)) < 0) return rc; - return @as(usize, @intCast(cpu)); -} - -/// libc has no wrapper for this syscall -pub fn mbind(addr: ?*anyopaque, len: u32, mode: i32, nodemask: *const u32, maxnode: u32, flags: u32) usize { - return syscall6(.mbind, @intFromPtr(addr), len, @as(usize, @bitCast(@as(isize, mode))), @intFromPtr(nodemask), maxnode, flags); -} - pub fn epoll_create() usize { return epoll_create1(0); } From 0043cdbecad72993214fa58b69767eba2a4fa189 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:03:52 -0700 Subject: [PATCH 23/63] Revert "std.c: further darwin's host statistics data" This reverts commit cceadf52baff2590c1b38c469b1177918183dfe8. --- lib/std/c/darwin.zig | 41 ++++++++--------------------------------- 1 file changed, 8 insertions(+), 33 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index b384fcf845..c09112128e 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -3920,7 +3920,6 @@ pub const cpu_subtype_t = integer_t; pub const cpu_threadtype_t = integer_t; pub const host_flavor_t = integer_t; pub const host_info_t = *integer_t; -pub const host_info64_t = *integer_t; pub const host_can_has_debugger_info = extern struct { can_has_debugger: boolean_t, }; @@ -3984,10 +3983,6 @@ pub const host_preferred_user_arch = extern struct { pub const host_preferred_user_arch_data_t = host_preferred_user_arch; pub const host_preferred_user_arch_t = *host_preferred_user_arch; -fn HostCount(comptime HT: type) mach_msg_type_number_t { - return @as(mach_msg_type_number_t, @intCast(@sizeOf(HT) / @sizeOf(integer_t))); -} - pub const HOST = struct { pub const BASIC_INFO = 1; pub const SCHED_INFO = 3; @@ -4002,19 +3997,14 @@ pub const HOST = struct { pub const LOAD_INFO = 1; pub const VM_INFO = 2; pub const CPU_LOAD_INFO = 3; - pub const VM_INFO64 = 4; - pub const EXTMOD_INFO64 = 5; - pub const EXPIRED_TASK_INFO = 6; - pub const CAN_HAS_DEBUGGER_COUNT = HostCount(host_can_has_debugger_info_data_t); - pub const SCHED_INFO_COUNT = HostCount(host_sched_info_data_t); - pub const RESOURCES_SIZES_COUNT = HostCount(kernel_resource_sizes_data_t); - pub const PRIORITY_INFO_COUNT = HostCount(host_priority_info_data_t); - pub const CPU_LOAD_INFO_COUNT = HostCount(host_cpu_load_info_data_t); - pub const LOAD_INFO_COUNT = HostCount(host_load_info_data_t); - pub const PREFERRED_USER_ARCH_COUNT = HostCount(host_preferred_user_arch_data_t); - pub const VM_INFO_COUNT = HostCount(vm_statistics_data_t); - pub const VM_INFO64_COUNT = HostCount(vm_statistics64_data_t); - pub const EXTMOD_INFO64_COUNT = HostCount(vm_extmod_statistics_data_t); + pub const CAN_HAS_DEBUGGER_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_can_has_debugger_info_data_t) / @sizeOf(integer_t)); + pub const SCHED_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_sched_info_data_t) / @sizeOf(integer_t)); + pub const RESOURCES_SIZES_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(kernel_resource_sizes_data_t) / @sizeOf(integer_t)); + pub const PRIORITY_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_priority_info_data_t) / @sizeOf(integer_t)); + pub const CPU_LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_cpu_load_info_data_t) / @sizeOf(integer_t)); + pub const LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_load_info_data_t) / @sizeOf(integer_t)); + pub const PREFERRED_USER_ARCH_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_preferred_user_arch_data_t) / @sizeOf(integer_t)); + pub const VM_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(vm_statistics_data_t) / @sizeOf(integer_t)); }; pub const host_basic_info = packed struct(u32) { @@ -4033,7 +4023,6 @@ pub const host_basic_info = packed struct(u32) { pub extern "c" fn host_info(host: host_t, flavor: host_flavor_t, info_out: host_info_t, info_outCnt: [*]mach_msg_type_number_t) kern_return_t; pub extern "c" fn host_statistics(priv: host_t, flavor: host_flavor_t, info_out: host_info_t, info_outCnt: [*]mach_msg_type_number_t) kern_return_t; -pub extern "c" fn host_statistics64(priv: host_t, flavor: host_flavor_t, info_out: host_info64_t, info64_outCnt: [*]mach_msg_type_number_t) kern_return_t; pub const vm_statistics = extern struct { free_count: natural_t, @@ -4085,17 +4074,3 @@ pub const vm_statistics64 align(8) = extern struct { pub const vm_statistics64_t = *vm_statistics64; pub const vm_statistics64_data_t = vm_statistics64; - -pub const vm_extmod_statistics align(8) = extern struct { - task_for_pid_count: i64, - task_for_pid_caller_count: i64, - thread_creation_count: i64, - thread_creation_caller_count: i64, - thread_set_state_count: i64, - thread_set_state_caller_count: i64, -}; - -pub const vm_extmod_statistics_t = *vm_extmod_statistics; -pub const vm_extmod_statistics_data_t = vm_extmod_statistics; - -pub extern "c" fn vm_stats(info: ?*anyopaque, count: *c_uint) kern_return_t; From 942848de582f3b8bd81dc71d67190cee44e68c7c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:04:04 -0700 Subject: [PATCH 24/63] Revert "std.c: adding basic darwin's host_statistics data." This reverts commit 6547d233125199b16644c0f7504793490af67926. --- lib/std/c/darwin.zig | 56 -------------------------------------------- 1 file changed, 56 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index c09112128e..b2e0c3c6df 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -3994,9 +3994,6 @@ pub const HOST = struct { pub const DEBUG_INFO_INTERNAL = 10; pub const CAN_HAS_DEBUGGER = 11; pub const PREFERRED_USER_ARCH = 12; - pub const LOAD_INFO = 1; - pub const VM_INFO = 2; - pub const CPU_LOAD_INFO = 3; pub const CAN_HAS_DEBUGGER_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_can_has_debugger_info_data_t) / @sizeOf(integer_t)); pub const SCHED_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_sched_info_data_t) / @sizeOf(integer_t)); pub const RESOURCES_SIZES_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(kernel_resource_sizes_data_t) / @sizeOf(integer_t)); @@ -4004,7 +4001,6 @@ pub const HOST = struct { pub const CPU_LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_cpu_load_info_data_t) / @sizeOf(integer_t)); pub const LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_load_info_data_t) / @sizeOf(integer_t)); pub const PREFERRED_USER_ARCH_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_preferred_user_arch_data_t) / @sizeOf(integer_t)); - pub const VM_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(vm_statistics_data_t) / @sizeOf(integer_t)); }; pub const host_basic_info = packed struct(u32) { @@ -4022,55 +4018,3 @@ pub const host_basic_info = packed struct(u32) { }; pub extern "c" fn host_info(host: host_t, flavor: host_flavor_t, info_out: host_info_t, info_outCnt: [*]mach_msg_type_number_t) kern_return_t; -pub extern "c" fn host_statistics(priv: host_t, flavor: host_flavor_t, info_out: host_info_t, info_outCnt: [*]mach_msg_type_number_t) kern_return_t; - -pub const vm_statistics = extern struct { - free_count: natural_t, - active_count: natural_t, - inactive_count: natural_t, - wire_count: natural_t, - zero_fill_count: natural_t, - reactivations: natural_t, - pageins: natural_t, - pageouts: natural_t, - faults: natural_t, - cow_faults: natural_t, - lookups: natural_t, - hits: natural_t, - purgeable_count: natural_t, - purges: natural_t, - speculative_count: natural_t, -}; - -pub const vm_statistics_t = *vm_statistics; -pub const vm_statistics_data_t = vm_statistics; - -pub const vm_statistics64 align(8) = extern struct { - free_count: natural_t, - active_count: natural_t, - inactive_count: natural_t, - wire_count: natural_t, - zero_fill_count: u64, - reactivations: u64, - pageins: u64, - pageouts: u64, - faults: u64, - cow_faults: u64, - lookups: u64, - hits: u64, - purges: u64, - purgeable_count: natural_t, - speculative_count: natural_t, - decompressions: u64, - compressions: u64, - swapins: u64, - swapouts: u64, - compressor_page_count: natural_t, - throttled_count: natural_t, - external_page_count: natural_t, - internal_page_count: natural_t, - total_uncompressed_pages_in_compressor: u64, -}; - -pub const vm_statistics64_t = *vm_statistics64; -pub const vm_statistics64_data_t = vm_statistics64; From f3fa47a984a890fe7d341a8230c76592703710e6 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:04:37 -0700 Subject: [PATCH 25/63] Revert "std.c: darwin adding more host_info api data" This reverts commit 20cc69318f4661795aaacdc55bcaabb5f2e6484e. --- lib/std/c/darwin.zig | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index b2e0c3c6df..cb759e13c8 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -3967,22 +3967,6 @@ pub const host_cpu_load_info = extern struct { pub const host_cpu_load_info_data_t = host_cpu_load_info; pub const host_cpu_load_info_t = *host_cpu_load_info; -pub const host_load_info = extern struct { - avenrun: [3]integer_t, - mach_factor: [3]integer_t, -}; - -pub const host_load_info_data_t = host_load_info; -pub const host_load_info_t = *host_load_info; - -pub const host_preferred_user_arch = extern struct { - cpu_type: cpu_type_t, - cpu_subtype: cpu_subtype_t, -}; - -pub const host_preferred_user_arch_data_t = host_preferred_user_arch; -pub const host_preferred_user_arch_t = *host_preferred_user_arch; - pub const HOST = struct { pub const BASIC_INFO = 1; pub const SCHED_INFO = 3; @@ -3999,8 +3983,6 @@ pub const HOST = struct { pub const RESOURCES_SIZES_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(kernel_resource_sizes_data_t) / @sizeOf(integer_t)); pub const PRIORITY_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_priority_info_data_t) / @sizeOf(integer_t)); pub const CPU_LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_cpu_load_info_data_t) / @sizeOf(integer_t)); - pub const LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_load_info_data_t) / @sizeOf(integer_t)); - pub const PREFERRED_USER_ARCH_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_preferred_user_arch_data_t) / @sizeOf(integer_t)); }; pub const host_basic_info = packed struct(u32) { From 6d7c6f4da7a1bdcd2c2527cccb9c1a4423439012 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:05:21 -0700 Subject: [PATCH 26/63] Revert "std.c: adding freebsd's ioctl base operands." This reverts commit cd7e2bf57a4da6965df9a2d8662a9b95f63cf595. --- lib/std/c/freebsd.zig | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index d845f87753..a9c9f53ab5 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2607,31 +2607,3 @@ pub const domainset = extern struct { pub extern "c" fn cpuset_getdomain(level: cpulevel_t, which: cpuwhich_t, id: id_t, len: usize, domain: *domainset_t, r: *c_int) c_int; pub extern "c" fn cpuset_setdomain(level: cpulevel_t, which: cpuwhich_t, id: id_t, len: usize, domain: *const domainset_t, r: c_int) c_int; - -const ioctl_cmd = enum(u32) { - VOID = 0x20000000, - OUT = 0x40000000, - IN = 0x80000000, - INOUT = ioctl_cmd.IN | ioctl_cmd.OUT, - DIRMASK = ioctl_cmd.VOID | ioctl_cmd.IN | ioctl_cmd.OUT, -}; - -fn ioImpl(cmd: ioctl_cmd, op: u8, nr: u8, comptime IT: type) u32 { - return @as(u32, @bitCast(@intFromEnum(cmd) | @as(u32, @intCast(@as(u8, @truncate(@sizeOf(IT))))) << 16 | @as(u32, @intCast(op)) << 8 | nr)); -} - -pub fn IO(op: u8, nr: u8) u32 { - return ioImpl(ioctl_cmd.VOID, op, nr, 0); -} - -pub fn IOR(op: u8, nr: u8, comptime IT: type) u32 { - return ioImpl(ioctl_cmd.OUT, op, nr, @sizeOf(IT)); -} - -pub fn IOW(op: u8, nr: u8, comptime IT: type) u32 { - return ioImpl(ioctl_cmd.IN, op, nr, @sizeOf(IT)); -} - -pub fn IOWR(op: u8, nr: u8, comptime IT: type) u32 { - return ioImpl(ioctl_cmd.INOUT, op, nr, @sizeOf(IT)); -} From ac7be71d8e668f46ccb7639103b55631a37149d2 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:05:38 -0700 Subject: [PATCH 27/63] Revert "std.c: add freebsd's kinfo_vmobject" This reverts commit 52606572309f843c043123c1f2771829e45b4b5d. --- lib/std/c/freebsd.zig | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index a9c9f53ab5..c858d21359 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -64,8 +64,6 @@ pub extern "c" fn getpid() pid_t; pub extern "c" fn kinfo_getfile(pid: pid_t, cntp: *c_int) ?[*]kinfo_file; pub extern "c" fn kinfo_getvmmap(pid: pid_t, cntp: *c_int) ?[*]kinfo_vmentry; pub extern "c" fn kinfo_getproc(pid: pid_t) ?[*]kinfo_proc; -pub extern "c" fn kinfo_getvmobject(cntp: *c_int) ?[*]kinfo_vmobject; -pub extern "c" fn kinfo_getswapvmobject(cntp: *c_int) ?[*]kinfo_vmobject; pub extern "c" fn cpuset_getaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *cpuset_t) c_int; pub extern "c" fn cpuset_setaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *const cpuset_t) c_int; @@ -863,29 +861,6 @@ comptime { assert(@sizeOf(kinfo_proc) == KINFO_PROC_SIZE); } -pub const kinfo_vmobject = extern struct { - structsize: c_int, - tpe: c_int, - size: u64, - vn_fileid: u64, - vn_fsid_freebsd11: u32, - ref_count: c_int, - shadow_count: c_int, - memattr: c_int, - resident: u64, - active: u64, - inactive: u64, - type_spec: extern union { - _vn_fsid: u64, - _backing_obj: u64, - }, - me: u64, - _qspare: [6]u64, - swapped: u32, - _ispare: [7]u32, - path: [PATH_MAX]u8, -}; - pub const CTL = struct { pub const KERN = 1; pub const DEBUG = 5; From a048ddaf91b0316ac66ad22a7413f0f0d6f0f5f8 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:09:16 -0700 Subject: [PATCH 28/63] Revert "std.c: adding freebsd's domainset_t bitset" This reverts commit 10a7cf58c1530e004e5ccb1a81f02aa86ab51dd1. --- lib/std/c/freebsd.zig | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index c858d21359..cf03cf5e1c 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -10,6 +10,7 @@ pub const cpuset_t = extern struct { __bits: [(CPU_SETSIZE + (@bitSizeOf(c_long) - 1)) / @bitSizeOf(c_long)]c_long, }; +// TODO: can eventually serve for the domainset_t's type too. fn __BIT_COUNT(bits: []const c_long) c_long { var count: c_long = 0; for (bits) |b| { @@ -2562,18 +2563,8 @@ pub const DOMAINSET = struct { pub const POLICY_MAX = DOMAINSET.POLICY_INTERLEAVE; }; -pub const DOMAINSET_SIZE = 256; pub const domainset_t = extern struct { - __bits: [(DOMAINSET_SIZE + (@sizeOf(domainset) - 1)) / @bitSizeOf(domainset)]domainset, -}; - -pub fn DOMAINSET_COUNT(set: domainset_t) c_int { - return @as(c_int, @intCast(__BIT_COUNT(set.__bits[0..]))); -} - -pub const domainset = extern struct { link: LIST_ENTRY, - mask: domainset_t, policy: u16, prefer: domainid_t, cnt: domainid_t, From 5d345b69ea58eb159fbc97eb220e55ff9e30dee8 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:09:28 -0700 Subject: [PATCH 29/63] Revert "std.fs: selfExePath haiku using constants instead" This reverts commit e21739dd8caf7d6a9aefe68c37eddb6406bcb810. --- lib/std/c/haiku.zig | 11 ++--------- lib/std/fs.zig | 3 ++- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index e8e5ac70e0..49d1c06264 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -11,9 +11,9 @@ extern "c" fn _errnop() *c_int; pub const _errno = _errnop; -pub extern "c" fn find_directory(which: directory_which, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) status_t; +pub extern "c" fn find_directory(which: c_int, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) status_t; -pub extern "c" fn find_path(codePointer: *const u8, baseDirectory: path_base_directory, subPath: [*:0]const u8, pathBuffer: [*:0]u8, bufferSize: usize) status_t; +pub extern "c" fn find_path(codePointer: *const u8, baseDirectory: c_int, subPath: [*:0]const u8, pathBuffer: [*:0]u8, bufferSize: usize) status_t; pub extern "c" fn find_thread(thread_name: ?*anyopaque) i32; @@ -1024,13 +1024,6 @@ pub const directory_which = enum(c_int) { _, }; -// TODO fill out if needed -pub const path_base_directory = enum(c_int) { - B_FIND_PATH_IMAGE_PATH = 1000, -}; - -pub const B_APP_IMAGE_SYMBOL = null; - pub const cc_t = u8; pub const speed_t = u8; pub const tcflag_t = u32; diff --git a/lib/std/fs.zig b/lib/std/fs.zig index de18a085e4..3ab88f080f 100644 --- a/lib/std/fs.zig +++ b/lib/std/fs.zig @@ -3017,7 +3017,8 @@ pub fn selfExePath(out_buffer: []u8) SelfExePathError![]u8 { .haiku => { // The only possible issue when looking for the self image path is // when the buffer is too short. - if (os.find_path(os.B_APP_IMAGE_SYMBOL, os.path_base_directory.B_FIND_IMAGE_PATH, null, out_buffer.ptr, out_buffer.len) != 0) + // TODO replace with proper constants + if (os.find_path(null, 1000, null, out_buffer.ptr, out_buffer.len) != 0) return error.Overflow; return mem.sliceTo(out_buffer, 0); }, From 8c7eb8c8da9af21519c7f61aa0961d79cc6266ea Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:09:34 -0700 Subject: [PATCH 30/63] Revert "std.c: adding freebsd's domainset api" This reverts commit e8f76b452bf86481069c2eeeb02d46161ea79a08. --- lib/std/c/freebsd.zig | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index cf03cf5e1c..cac5f55272 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2548,28 +2548,3 @@ pub extern "c" fn mincore( length: usize, vec: [*]u8, ) c_int; - -pub const MAXMEMDOM = 8; -pub const domainid_t = u8; - -pub const LIST_ENTRY = opaque {}; - -pub const DOMAINSET = struct { - pub const POLICY_INVALID = 0; - pub const POLICY_ROUNDROBIN = 1; - pub const POLICY_FIRSTOUCH = 2; - pub const POLICY_PREFER = 3; - pub const POLICY_INTERLEAVE = 4; - pub const POLICY_MAX = DOMAINSET.POLICY_INTERLEAVE; -}; - -pub const domainset_t = extern struct { - link: LIST_ENTRY, - policy: u16, - prefer: domainid_t, - cnt: domainid_t, - order: [MAXMEMDOM]domainid_t, -}; - -pub extern "c" fn cpuset_getdomain(level: cpulevel_t, which: cpuwhich_t, id: id_t, len: usize, domain: *domainset_t, r: *c_int) c_int; -pub extern "c" fn cpuset_setdomain(level: cpulevel_t, which: cpuwhich_t, id: id_t, len: usize, domain: *const domainset_t, r: c_int) c_int; From f3adbe249b0dfad91318916142a33619232a968f Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:10:40 -0700 Subject: [PATCH 31/63] Revert "std.c: openbsd sigcontext/ucontext for arm64." This reverts commit 1585ed637d101ed16adb6b9ebdfa465299bfdb13. --- lib/std/c/openbsd.zig | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 7496a85a5e..8bdd3125f5 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -1127,18 +1127,6 @@ pub usingnamespace switch (builtin.cpu.arch) { sc_cookie: c_long, }; }, - .aarch64 => struct { - pub const ucontext_t = extern struct { - __sc_unused: c_int, - sc_mask: c_int, - sc_sp: c_ulong, - sc_lr: c_ulong, - sc_elr: c_ulong, - sc_spsr: c_ulong, - sc_x: [30]c_ulong, - sc_cookie: c_long, - }; - }, else => struct {}, }; From afca695b647b37d99bbe1ad69de29d2f3c9c19b0 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:10:56 -0700 Subject: [PATCH 32/63] Revert "std.c: adding freebsd's kinfo_proc type." This reverts commit 3dd0afe787e1cab4db41e685e67ce5594e92f7ef. --- lib/std/c/freebsd.zig | 186 ------------------------------------------ 1 file changed, 186 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index cac5f55272..8381b65787 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -64,7 +64,6 @@ pub extern "c" fn getpid() pid_t; pub extern "c" fn kinfo_getfile(pid: pid_t, cntp: *c_int) ?[*]kinfo_file; pub extern "c" fn kinfo_getvmmap(pid: pid_t, cntp: *c_int) ?[*]kinfo_vmentry; -pub extern "c" fn kinfo_getproc(pid: pid_t) ?[*]kinfo_proc; pub extern "c" fn cpuset_getaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *cpuset_t) c_int; pub extern "c" fn cpuset_setaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *const cpuset_t) c_int; @@ -677,191 +676,6 @@ comptime { std.debug.assert(@sizeOf(kinfo_vmentry) == KINFO_VMENTRY_SIZE); } -pub const WMESGLEN = 8; -pub const LOCKNAMELEN = 8; -pub const TDNAMLEN = 16; -pub const COMMLEN = 19; -pub const MAXCOMLEN = 19; -pub const KI_EMULNAMELEN = 16; -pub const KI_NGROUPS = 16; -pub const LOGNAMELEN = 17; -pub const LOGINCLASSLEN = 17; - -pub const KI_NSPARE_INT = 2; -pub const KI_NSPARE_LONG = 12; -pub const KI_NSPARE_PTR = 5; - -pub const RUSAGE_SELF = 0; -pub const RUSAGE_CHILDREN = -1; -pub const RUSAGE_THREAD = 1; - -pub const proc = opaque {}; -pub const thread = opaque {}; -pub const vnode = opaque {}; -pub const filedesc = opaque {}; -pub const pwddesc = opaque {}; -pub const vmspace = opaque {}; -pub const pcb = opaque {}; -pub const lwpid_t = i32; -pub const fixpt_t = u32; -pub const vm_size_t = usize; -pub const segsz_t = isize; - -pub const itimerval = extern struct { - interval: timeval, - value: timeval, -}; - -pub const pstats = extern struct { - cru: rusage, - timer: [3]itimerval, - prof: extern struct { - base: u8, - size: c_ulong, - off: c_ulong, - scale: c_ulong, - }, - start: timeval, -}; - -pub const user = extern struct { - stats: pstats, - kproc: kinfo_proc, -}; - -pub const pargs = extern struct { - ref: c_uint, - length: c_uint, - args: [1]u8, -}; - -pub const priority = extern struct { - class: u8, - level: u8, - native: u8, - user: u8, -}; - -pub const rusage = extern struct { - utime: timeval, - stime: timeval, - maxrss: c_long, - ixrss: c_long, - idrss: c_long, - isrss: c_long, - minflt: c_long, - majflt: c_long, - nswap: c_long, - inblock: c_long, - oublock: c_long, - msgsnd: c_long, - msgrcv: c_long, - nsignals: c_long, - nvcsw: c_long, - nivcsw: c_long, -}; - -pub const kinfo_proc = extern struct { - structsize: c_int, - layout: c_int, - args: *pargs, - paddr: *proc, - addr: *user, - tracep: *vnode, - textvp: *vnode, - fd: *filedesc, - vmspace: *vmspace, - wchan: ?*const anyopaque, - pid: pid_t, - ppid: pid_t, - pgid: pid_t, - tpgid: pid_t, - sid: pid_t, - tsid: pid_t, - jobc: c_short, - spare_short1: c_short, - tdev_freebsd11: u32, - siglist: sigset_t, - sigmask: sigset_t, - sigignore: sigset_t, - sigcatch: sigset_t, - uid: uid_t, - ruid: uid_t, - svuid: uid_t, - rgid: gid_t, - svgid: gid_t, - ngroups: c_short, - spare_short2: c_short, - groups: [KI_NGROUPS]gid_t, - size: vm_size_t, - rssize: segsz_t, - swrss: segsz_t, - tsize: segsz_t, - dsize: segsz_t, - ssize: segsz_t, - xstat: c_ushort, - acflag: c_ushort, - pctcpu: fixpt_t, - estcpu: c_uint, - slptime: c_uint, - swtime: c_uint, - cow: c_uint, - runtime: u64, - start: timeval, - childtime: timeval, - flag: c_long, - kiflag: c_long, - traceflag: c_int, - stat: u8, - nice: i8, - lock: u8, - rqindex: u8, - oncpu_old: u8, - lastcpu_old: u8, - tdname: [TDNAMLEN + 1]u8, - wmesg: [WMESGLEN + 1]u8, - login: [LOGNAMELEN + 1]u8, - lockname: [LOCKNAMELEN + 1]u8, - comm: [COMMLEN + 1]u8, - emul: [KI_EMULNAMELEN + 1]u8, - loginclass: [LOGINCLASSLEN + 1]u8, - moretdname: [MAXCOMLEN - TDNAMLEN + 1]u8, - sparestrings: [46]u8, - spareints: [KI_NSPARE_INT]c_int, - tdev: u64, - oncpu: c_int, - lastcpu: c_int, - tracer: c_int, - flag2: c_int, - fibnum: c_int, - cr_flags: c_uint, - jid: c_int, - numthreads: c_int, - tid: lwpid_t, - pri: priority, - rusage: rusage, - rusage_ch: rusage, - pcb: *pcb, - stack: ?*anyopaque, - udata: ?*anyopaque, - tdaddr: *thread, - pd: *pwddesc, - spareptrs: [KI_NSPARE_PTR]?*anyopaque, - sparelongs: [KI_NSPARE_LONG]c_long, - sflag: c_long, - tdflag: c_long, -}; - -pub const KINFO_PROC_SIZE = switch (builtin.cpu.arch) { - .x86 => 768, - .arm => 816, - else => 1088, -}; - -comptime { - assert(@sizeOf(kinfo_proc) == KINFO_PROC_SIZE); -} - pub const CTL = struct { pub const KERN = 1; pub const DEBUG = 5; From 614ae886dbf72ebf1ed136e278a4bc8c57629237 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:11:05 -0700 Subject: [PATCH 33/63] Revert "std.c: darwin add host_info based data." This reverts commit ff59c4584041517a2ee07cccf923ef5460032d68. --- lib/std/c/darwin.zig | 86 -------------------------------------------- 1 file changed, 86 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index cb759e13c8..3884da6bce 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -3914,89 +3914,3 @@ pub const THREAD_AFFINITY = struct { /// individual cpus (high performance cpus group and low consumption one), thus the pthread QOS api is more appropriate in this case. pub extern "c" fn thread_affinity_get(thread: thread_act_t, flavor: thread_policy_flavor_t, info: thread_policy_t, infocnt: [*]mach_msg_type_number_t, default: *boolean_t) kern_return_t; pub extern "c" fn thread_affinity_set(thread: thread_act_t, flavor: thread_policy_flavor_t, info: thread_policy_t, infocnt: mach_msg_type_number_t) kern_return_t; - -pub const cpu_type_t = integer_t; -pub const cpu_subtype_t = integer_t; -pub const cpu_threadtype_t = integer_t; -pub const host_flavor_t = integer_t; -pub const host_info_t = *integer_t; -pub const host_can_has_debugger_info = extern struct { - can_has_debugger: boolean_t, -}; -pub const host_can_has_debugger_info_data_t = host_can_has_debugger_info; -pub const host_can_has_debugger_info_t = *host_can_has_debugger_info; - -pub const host_sched_info = extern struct { - min_timeout: integer_t, - min_quantum: integer_t, -}; -pub const host_sched_info_data_t = host_sched_info; -pub const host_sched_info_t = *host_sched_info; - -pub const kernel_resource_sizes = extern struct { - task: natural_t, - thread: natural_t, - port: natural_t, - memory_region: natural_t, - memory_object: natural_t, -}; - -pub const kernel_resource_sizes_data_t = kernel_resource_sizes; -pub const kernel_resource_sizes_t = *kernel_resource_sizes; - -pub const host_priority_info = extern struct { - kernel_priority: integer_t, - system_priority: integer_t, - server_priority: integer_t, - user_priority: integer_t, - depress_priority: integer_t, - idle_priority: integer_t, - minimum_priority: integer_t, - maximum_priority: integer_t, -}; - -pub const host_priority_info_data_t = host_priority_info; -pub const host_priority_info_t = *host_priority_info; - -pub const CPU_STATE_MAX = 4; - -pub const host_cpu_load_info = extern struct { - cpu_ticks: [CPU_STATE_MAX]natural_t, -}; - -pub const host_cpu_load_info_data_t = host_cpu_load_info; -pub const host_cpu_load_info_t = *host_cpu_load_info; - -pub const HOST = struct { - pub const BASIC_INFO = 1; - pub const SCHED_INFO = 3; - pub const RESOURCE_SIZES = 4; - pub const PRIORITY_INFO = 5; - pub const SEMAPHORE_TRAPS = 7; - pub const MACH_MSG_TRAPS = 8; - pub const VM_PURGEABLE = 9; - pub const DEBUG_INFO_INTERNAL = 10; - pub const CAN_HAS_DEBUGGER = 11; - pub const PREFERRED_USER_ARCH = 12; - pub const CAN_HAS_DEBUGGER_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_can_has_debugger_info_data_t) / @sizeOf(integer_t)); - pub const SCHED_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_sched_info_data_t) / @sizeOf(integer_t)); - pub const RESOURCES_SIZES_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(kernel_resource_sizes_data_t) / @sizeOf(integer_t)); - pub const PRIORITY_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_priority_info_data_t) / @sizeOf(integer_t)); - pub const CPU_LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_cpu_load_info_data_t) / @sizeOf(integer_t)); -}; - -pub const host_basic_info = packed struct(u32) { - max_cpus: integer_t, - avail_cpus: integer_t, - memory_size: natural_t, - cpu_type: cpu_type_t, - cpu_subtype: cpu_subtype_t, - cpu_threadtype: cpu_threadtype_t, - physical_cpu: integer_t, - physical_cpu_max: integer_t, - logical_cpu: integer_t, - logical_cpu_max: integer_t, - max_mem: u64, -}; - -pub extern "c" fn host_info(host: host_t, flavor: host_flavor_t, info_out: host_info_t, info_outCnt: [*]mach_msg_type_number_t) kern_return_t; From 421022929a5b0d8b439796e92beb3acb665f7656 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:12:19 -0700 Subject: [PATCH 34/63] Revert "std.c: adding cpu affinity api for macOs (mainly x86_64)" This reverts commit 4bfd37ddb48af4dbfd2e892aec7a90a822c8cbe7. --- lib/std/c/darwin.zig | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index 3884da6bce..38cddef0fa 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -3894,23 +3894,3 @@ pub const MIN = struct { pub extern "c" fn mincore(addr: *align(std.mem.page_size) const anyopaque, length: usize, vec: [*]u8) c_int; pub extern "c" fn os_proc_available_memory() usize; - -pub const thread_affinity_policy = extern struct { - tag: integer_t, -}; - -pub const thread_policy_flavor_t = natural_t; -pub const thread_policy_t = [*]integer_t; -pub const thread_affinity_policy_data_t = thread_affinity_policy; -pub const thread_affinity_policy_t = [*]thread_affinity_policy; - -pub const THREAD_AFFINITY = struct { - pub const POLICY = 0; - pub const POLICY_COUNT = @as(mach_msg_type_number_t, @intCast(@sizeOf(thread_affinity_policy_data_t) / @sizeOf(integer_t))); -}; - -/// cpu affinity api -/// albeit it is also available on arm64, it always fails as in this architecture there is no sense of -/// individual cpus (high performance cpus group and low consumption one), thus the pthread QOS api is more appropriate in this case. -pub extern "c" fn thread_affinity_get(thread: thread_act_t, flavor: thread_policy_flavor_t, info: thread_policy_t, infocnt: [*]mach_msg_type_number_t, default: *boolean_t) kern_return_t; -pub extern "c" fn thread_affinity_set(thread: thread_act_t, flavor: thread_policy_flavor_t, info: thread_policy_t, infocnt: mach_msg_type_number_t) kern_return_t; From a92be498517e316d6deaf42dbd51a3c9e28899ca Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:13:27 -0700 Subject: [PATCH 35/63] Revert "Merge pull request #15317 from devnexen/darwin_rand_nativegen" This reverts commit a11113097730693fb915114cec79df9cb4adcc93, reversing changes made to 9f3f9fb40f605de2f2bdcd0ce7a396e06b8b8c0d. --- lib/std/c/darwin.zig | 28 ---------------------------- lib/std/os.zig | 15 ++------------- 2 files changed, 2 insertions(+), 41 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index 38cddef0fa..e2029391a9 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -895,35 +895,7 @@ pub extern "c" fn pthread_attr_get_qos_class_np(attr: *pthread_attr_t, qos_class pub extern "c" fn pthread_set_qos_class_self_np(qos_class: qos_class_t, relative_priority: c_int) c_int; pub extern "c" fn pthread_get_qos_class_np(pthread: std.c.pthread_t, qos_class: *qos_class_t, relative_priority: *c_int) c_int; -pub const CCryptorStatus = enum(i32) { - /// Operation completed - kCCSuccess = 0, - /// Illegal parameter - kCCParamError = -4300, - /// Provided buffer too small - kCCBufferTooSmall = -4301, - /// Failed memory allocation - kCCMemoryFailure = -4302, - /// Size alignment issue - kCCAlignmentError = -4303, - /// Decoding issue - kCCDecodeError = -4304, - /// Call not implemented - kCCUnimplemented = -4305, - kCCOverflow = -4306, - kCCRNGFailure = -4307, - /// Unspecified error - kCCUnspecifiedError = -4308, - kCCCallSequenceError = -4309, - kCCKeySizeError = -4310, - /// Invalid key - kCCInvalidKey = -4311, -}; - -pub const CCRNGStatus = CCryptorStatus; - pub extern "c" fn arc4random_buf(buf: [*]u8, len: usize) void; -pub extern "c" fn CCRandomGenerateBytes(bytes: ?*anyopaque, count: usize) CCRNGStatus; // Grand Central Dispatch is exposed by libSystem. pub extern "c" fn dispatch_release(object: *anyopaque) void; diff --git a/lib/std/os.zig b/lib/std/os.zig index dbcff656d6..8696e47c7d 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -517,18 +517,7 @@ pub fn getrandom(buffer: []u8) GetRandomError!void { return; } switch (builtin.os.tag) { - .macos, .ios => { - const rc = darwin.CCRandomGenerateBytes(buffer.ptr, buffer.len); - if (rc != darwin.CCRNGStatus.kCCSuccess) { - if (rc == darwin.CCRNGStatus.kCCParamError or rc == darwin.CCRNGStatus.kCCBufferTooSmall) { - return error.InvalidHandle; - } else { - return error.SystemResources; - } - } - return; - }, - .netbsd, .openbsd, .tvos, .watchos => { + .netbsd, .openbsd, .macos, .ios, .tvos, .watchos => { system.arc4random_buf(buffer.ptr, buffer.len); return; }, @@ -1001,7 +990,7 @@ pub fn preadv(fd: fd_t, iov: []const iovec, offset: u64) PReadError!usize { if (have_pread_but_not_preadv) { // We could loop here; but proper usage of `preadv` must handle partial reads anyway. // So we simply read into the first vector only. - if (iov.len == 0) return @as(usize, @intCast(0)); + if (iov.len == 0) return 0; const first = iov[0]; return pread(fd, first.iov_base[0..first.iov_len], offset); } From a397952932989d5a921b71e133141a2bc1f231d2 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:13:40 -0700 Subject: [PATCH 36/63] Revert "std.c: add os_proc_available_memory for darwin" This reverts commit 012f9a97eb74c63921ce7f3a036c71816fb59a24. --- lib/std/c/darwin.zig | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index e2029391a9..ea156ff296 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -3865,4 +3865,3 @@ pub const MIN = struct { }; pub extern "c" fn mincore(addr: *align(std.mem.page_size) const anyopaque, length: usize, vec: [*]u8) c_int; -pub extern "c" fn os_proc_available_memory() usize; From f96f57930c65bedc00fb484a90b3c3932387982e Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:14:03 -0700 Subject: [PATCH 37/63] Revert "std.c: adding freebsd's CPU_COUNT macro portage." This reverts commit b9841750f91604020268549fc5e2c6b10c1f8477. --- lib/std/c/freebsd.zig | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 8381b65787..76e454a1f8 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -9,20 +9,6 @@ pub const CPU_SETSIZE = 256; pub const cpuset_t = extern struct { __bits: [(CPU_SETSIZE + (@bitSizeOf(c_long) - 1)) / @bitSizeOf(c_long)]c_long, }; - -// TODO: can eventually serve for the domainset_t's type too. -fn __BIT_COUNT(bits: []const c_long) c_long { - var count: c_long = 0; - for (bits) |b| { - count += @popCount(b); - } - return count; -} - -pub fn CPU_COUNT(set: cpuset_t) c_int { - return @as(c_int, @intCast(__BIT_COUNT(set.__bits[0..]))); -} - pub const cpulevel_t = c_int; pub const cpuwhich_t = c_int; pub const id_t = i64; From 1d4e6e6c735170b4a70c14cb155f683fbe46001c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:17:11 -0700 Subject: [PATCH 38/63] Revert "std.c: add essential freebsd's capsicum api subset." This reverts commit 6ae19fa48d7853430ba45f2de90550cd48cf5b4c. --- lib/std/c/freebsd.zig | 39 +++------------------------------------ 1 file changed, 3 insertions(+), 36 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 76e454a1f8..cd040ec929 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -476,43 +476,10 @@ pub const sockaddr = extern struct { pub const CAP_RIGHTS_VERSION = 0; -pub const cap_rights_t = extern struct { - cr_rights: [CAP_RIGHTS_VERSION + 2]u64, +pub const cap_rights = extern struct { + rights: [CAP_RIGHTS_VERSION + 2]u64, }; -pub const CAP = struct { - pub fn RIGHT(idx: u6, bit: u64) u64 { - return (@as(u64, @intCast(1)) << (57 + idx)) | bit; - } - pub const READ = CAP.RIGHT(0, 0x0000000000000001); - pub const WRITE = CAP.RIGHT(0, 0x0000000000000002); - pub const SEEK_TELL = CAP.RIGHT(0, 0x0000000000000004); - pub const SEEK = CAP.SEEK_TELL | 0x0000000000000008; - pub const PREAD = CAP.SEEK | CAP.READ; - pub const PWRITE = CAP.SEEK | CAP.WRITE; - pub const MMAP = CAP.RIGHT(0, 0x0000000000000010); - pub const MMAP_R = CAP.MMAP | CAP.SEEK | CAP.READ; - pub const MMAP_W = CAP.MMAP | CAP.SEEK | CAP.WRITE; - pub const MMAP_X = CAP.MMAP | CAP.SEEK | 0x0000000000000020; - pub const MMAP_RW = CAP.MMAP_R | CAP.MMAP_W; - pub const MMAP_RX = CAP.MMAP_R | CAP.MMAP_X; - pub const MMAP_WX = CAP.MMAP_W | CAP.MMAP_X; - pub const MMAP_RWX = CAP.MMAP_R | CAP.MMAP_W | CAP.MMAP_X; - pub const CREATE = CAP.RIGHT(0, 0x0000000000000040); - pub const FEXECVE = CAP.RIGHT(0, 0x0000000000000080); - pub const FSYNC = CAP.RIGHT(0, 0x0000000000000100); - pub const FTRUNCATE = CAP.RIGHT(0, 0x0000000000000200); -}; - -pub extern "c" fn __cap_rights_init(version: c_int, rights: ?*cap_rights_t, ...) ?*cap_rights_t; -pub extern "c" fn __cap_rights_set(rights: ?*cap_rights_t, ...) ?*cap_rights_t; -pub extern "c" fn __cap_rights_clear(rights: ?*cap_rights_t, ...) ?*cap_rights_t; -pub extern "c" fn __cap_rights_merge(dst: ?*cap_rights_t, src: ?*const cap_rights_t) ?*cap_rights_t; -pub extern "c" fn __cap_rights_remove(dst: ?*cap_rights_t, src: ?*const cap_rights_t) ?*cap_rights_t; -pub extern "c" fn __cap_rights_contains(dst: ?*const cap_rights_t, src: ?*const cap_rights_t) bool; -pub extern "c" fn __cap_rights_is_set(rights: ?*const cap_rights_t, ...) bool; -pub extern "c" fn __cap_rights_is_valid(rights: ?*const cap_rights_t) bool; - pub const kinfo_file = extern struct { /// Size of this record. /// A zero value is for the sentinel record at the end of an array. @@ -614,7 +581,7 @@ pub const kinfo_file = extern struct { // Reserved for future use. _spare: c_int, /// Capability rights. - cap_rights: cap_rights_t, + cap_rights: cap_rights, /// Reserved for future cap_rights _cap_spare: u64, /// Path to file, if any. From 70a7210e923ebc796d13cef8fdb4080db90be4b8 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:17:20 -0700 Subject: [PATCH 39/63] Revert "std.c: freebsd add procctl exclusive x86_64 flags" This reverts commit 3fb93fc8f2d3e755492a495fa69f65ae6615cab6. --- lib/std/c/freebsd.zig | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index cd040ec929..8f651a6e23 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2172,30 +2172,6 @@ pub const PROC = struct { pub const WX_MAPPINGS_PERMIT = 0x0001; pub const WX_MAPPINGS_DISALLOW_EXEC = 0x0002; pub const WX_MAPPINGS_ENFORCE = 0x80000000; - pub const PROCCTL_MD_MIN = 0x10000000; - // x86_64-only constants - pub const KPTI = switch (builtin.cpu.arch) { - .x86_64 => struct { - pub const CTL = PROC.PROCCTL_MD_MIND; - pub const STATUS = PROC.PROCCTL_MD_MIND + 1; - pub const CTL_ENABLE_ON_EXEC = 1; - pub const CTL_DISABLE_ON_EXEC = 2; - pub const STATUS_ACTIVE = 0x80000000; - }, - else => void, - }; - pub const LA = switch (builtin.cpu.arch) { - .x86_64 => struct { - pub const CTL = PROC.PROCCTL_MD_MIND + 2; - pub const STATUS = PROC.PROCCTL_MD_MIND + 3; - pub const CTL_LA48_ON_EXEC = 1; - pub const CTL_LA57_ON_EXEC = 2; - pub const CTL_DEFAULT_ON_EXEC = 3; - pub const STATUS_LA48 = 0x01000000; - pub const STATUS_LA57 = 0x02000000; - }, - else => void, - }; }; pub const PPROT = struct { From c9de5304ab250c3b55fc6f8d0502eba51c342c67 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:17:25 -0700 Subject: [PATCH 40/63] Revert "std.c:complete further more netbsd's mmap flags" This reverts commit 4f248e1b519b001cee67e461068245c142d38e73. --- lib/std/c/netbsd.zig | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 6e4872612d..03ca0f481c 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -603,17 +603,6 @@ pub const MAP = struct { pub const ANON = 0x1000; pub const ANONYMOUS = ANON; pub const STACK = 0x2000; - - pub const ALIGNMENT_SHIFT = 24; - pub fn ALIGNED(n: u32) u32 { - return n << ALIGNMENT_SHIFT; - } - pub const ALIGNMENT_64KB = MAP.ALIGNED(0xff); - pub const ALIGNMENT_16MB = MAP.ALIGNED(16); - pub const ALIGNMENT_4GB = MAP.ALIGNED(32); - pub const ALIGNMENT_1TB = MAP.ALIGNED(40); - pub const ALIGNMENT_256TB = MAP.ALIGNED(48); - pub const ALIGNMENT_64PB = MAP.ALIGNED(56); }; pub const MSF = struct { From 1f9161a9c6aa712f389ea1445d5fce6af33e9a1d Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:17:57 -0700 Subject: [PATCH 41/63] Revert "std.c: add mincore api to darwin." This reverts commit 05f9608115a48fb7312ebf38c1240ae10b770c88. --- lib/std/c/darwin.zig | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index ea156ff296..4d19d64631 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -3852,16 +3852,3 @@ pub extern "c" fn proc_listchildpids(ppid: pid_t, buffer: ?*anyopaque, buffersiz pub extern "c" fn proc_pidinfo(pid: c_int, flavor: c_int, arg: u64, buffer: ?*anyopaque, buffersize: c_int) c_int; pub extern "c" fn proc_name(pid: c_int, buffer: ?*anyopaque, buffersize: u32) c_int; pub extern "c" fn proc_pidpath(pid: c_int, buffer: ?*anyopaque, buffersize: u32) c_int; - -pub const MIN = struct { - pub const INCORE = 0x1; - pub const REFERENCED = 0x2; - pub const MODIFIED = 0x4; - pub const REFERENCED_OTHER = 0x8; - pub const MODIFIED_OTHER = 0x10; - pub const PAGED_OUT = 0x20; - pub const COPIED = 0x40; - pub const ANONYMOUS = 0x80; -}; - -pub extern "c" fn mincore(addr: *align(std.mem.page_size) const anyopaque, length: usize, vec: [*]u8) c_int; From ddd7b0ea9e15f3ef154c06cc2aa975ff28bbecec Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:18:07 -0700 Subject: [PATCH 42/63] Revert "std.c: adding mincore for freebsd" This reverts commit 8d88dcdc61c61e3410138f4402482131f5074a80. --- lib/std/c/freebsd.zig | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 8f651a6e23..539b65617b 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2273,21 +2273,3 @@ pub const sigevent = extern struct { __spare__: [8]c_long, }, }; - -pub const MIN = struct { - pub const INCORE = 0x1; - pub const REFERENCED = 0x2; - pub const MODIFIED = 0x4; - pub const REFERENCED_OTHER = 0x8; - pub const MODIFIED_OTHER = 0x10; - pub const SUPER = 0x60; - pub fn PSIND(i: u32) u32 { - return (i << 5) & SUPER; - } -}; - -pub extern "c" fn mincore( - addr: *align(std.mem.page_size) const anyopaque, - length: usize, - vec: [*]u8, -) c_int; From 6bb776bb7392ee0a9f6a19989505985255ec98d2 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:18:15 -0700 Subject: [PATCH 43/63] Revert "std.os: selfExePath implementation for haiku" This reverts commit 7439eb5e99ba98bbdb2a0d0d71535e57d13f3c6e. --- lib/std/fs.zig | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/lib/std/fs.zig b/lib/std/fs.zig index 3ab88f080f..1ec16483f3 100644 --- a/lib/std/fs.zig +++ b/lib/std/fs.zig @@ -2934,7 +2934,6 @@ pub const OpenSelfExeError = error{ /// On Windows, file paths cannot contain these characters: /// '/', '*', '?', '"', '<', '>', '|' BadPathName, - Overflow, Unexpected, } || os.OpenError || SelfExePathError || os.FlockError; @@ -3014,15 +3013,7 @@ pub fn selfExePath(out_buffer: []u8) SelfExePathError![]u8 { // TODO could this slice from 0 to out_len instead? return mem.sliceTo(out_buffer, 0); }, - .haiku => { - // The only possible issue when looking for the self image path is - // when the buffer is too short. - // TODO replace with proper constants - if (os.find_path(null, 1000, null, out_buffer.ptr, out_buffer.len) != 0) - return error.Overflow; - return mem.sliceTo(out_buffer, 0); - }, - .openbsd => { + .openbsd, .haiku => { // OpenBSD doesn't support getting the path of a running process, so try to guess it if (os.argv.len == 0) return error.FileNotFound; From c6ec217e23243092bf169310182c094c4b8d9bac Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:18:19 -0700 Subject: [PATCH 44/63] Revert "std.c: add find_path for haiku" This reverts commit 1084590ec4939ed0aba5574eb835a07783301a8c. --- lib/std/c/haiku.zig | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index 49d1c06264..fafc4523fb 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -5,15 +5,11 @@ const maxInt = std.math.maxInt; const iovec = std.os.iovec; const iovec_const = std.os.iovec_const; -const status_t = i32; - extern "c" fn _errnop() *c_int; pub const _errno = _errnop; -pub extern "c" fn find_directory(which: c_int, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) status_t; - -pub extern "c" fn find_path(codePointer: *const u8, baseDirectory: c_int, subPath: [*:0]const u8, pathBuffer: [*:0]u8, bufferSize: usize) status_t; +pub extern "c" fn find_directory(which: c_int, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) u64; pub extern "c" fn find_thread(thread_name: ?*anyopaque) i32; From 70d1bb8049b1ac3bbff48c4147bf61e77b7ed7d5 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:20:21 -0700 Subject: [PATCH 45/63] Revert "std.process: further totalSystemMemory portage" This reverts commit 5c70d7bc723a8e0e47018d3606285005c280ddb8. --- lib/std/process.zig | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/std/process.zig b/lib/std/process.zig index 28d4bfcb25..c500ac9cf4 100644 --- a/lib/std/process.zig +++ b/lib/std/process.zig @@ -1163,17 +1163,12 @@ pub fn totalSystemMemory() TotalSystemMemoryError!usize { .linux => { return totalSystemMemoryLinux() catch return error.UnknownTotalSystemMemory; }, - .freebsd, .netbsd, .dragonfly, .macos => { + .freebsd => { var physmem: c_ulong = undefined; var len: usize = @sizeOf(c_ulong); - 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) { + os.sysctlbynameZ("hw.physmem", &physmem, &len, null, 0) catch |err| switch (err) { error.NameTooLong, error.UnknownName => unreachable, - else => return error.UnknownTotalSystemMemory, + else => |e| return e, }; return @as(usize, @intCast(physmem)); }, From 86388e3c32e238c88174cf9c91600f11add84d0a Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:20:31 -0700 Subject: [PATCH 46/63] Revert "std.os: sysctl* wrappers, better warning at compile time" This reverts commit c66151a22619b4f3ce028076c67f495ff5f99d2c. --- lib/std/os.zig | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/std/os.zig b/lib/std/os.zig index 8696e47c7d..c8720257b8 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -4696,8 +4696,11 @@ pub fn sysctl( newp: ?*anyopaque, newlen: usize, ) SysCtlError!void { - if (builtin.os.tag == .wasi or builtin.os.tag == .haiku) { - @compileError("unsupported OS"); + if (builtin.os.tag == .wasi) { + @panic("unsupported"); // TODO should be compile error, not panic + } + if (builtin.os.tag == .haiku) { + @panic("unsupported"); // TODO should be compile error, not panic } const name_len = math.cast(c_uint, name.len) orelse return error.NameTooLong; @@ -4718,8 +4721,11 @@ pub fn sysctlbynameZ( newp: ?*anyopaque, newlen: usize, ) SysCtlError!void { - if (builtin.os.tag == .wasi or builtin.os.tag == .haiku) { - @compileError("unsupported OS"); + if (builtin.os.tag == .wasi) { + @panic("unsupported"); // TODO should be compile error, not panic + } + if (builtin.os.tag == .haiku) { + @panic("unsupported"); // TODO should be compile error, not panic } switch (errno(system.sysctlbyname(name, oldp, oldlenp, newp, newlen))) { From 5f101b253ea4c61c9e4feeac2ad375f2e2f53bea Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:20:39 -0700 Subject: [PATCH 47/63] Revert "std: adding sigevent to supported platforms." This reverts commit 23c4f55a612842d8544a9dfe604a9caf1ca39697. --- lib/std/c/dragonfly.zig | 17 ----------------- lib/std/c/freebsd.zig | 25 ------------------------- lib/std/c/haiku.zig | 19 ------------------- lib/std/c/netbsd.zig | 19 ------------------- lib/std/c/solaris.zig | 19 ------------------- 5 files changed, 99 deletions(-) diff --git a/lib/std/c/dragonfly.zig b/lib/std/c/dragonfly.zig index bf14372e9f..d4f2867fda 100644 --- a/lib/std/c/dragonfly.zig +++ b/lib/std/c/dragonfly.zig @@ -1143,20 +1143,3 @@ pub const POLL = struct { pub const HUP = 0x0010; pub const NVAL = 0x0020; }; - -pub const SIGEV = struct { - pub const NONE = 0; - pub const SIGNAL = 1; - pub const THREAD = 2; -}; - -pub const sigevent = extern struct { - sigev_notify: c_int, - __sigev_u: extern union { - __sigev_signo: c_int, - __sigev_notify_kqueue: c_int, - __sigev_notify_attributes: ?*pthread_attr_t, - }, - sigev_value: sigval, - sigev_notify_function: ?*const fn (sigval) callconv(.C) void, -}; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 539b65617b..d224b6fdab 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2248,28 +2248,3 @@ pub const shm_largeconf = extern struct { pub extern "c" fn shm_create_largepage(path: [*:0]const u8, flags: c_int, psind: c_int, alloc_policy: c_int, mode: mode_t) c_int; pub extern "c" fn elf_aux_info(aux: c_int, buf: ?*anyopaque, buflen: c_int) c_int; - -pub const lwpid = i32; - -pub const SIGEV = struct { - pub const NONE = 0; - pub const SIGNAL = 1; - pub const THREAD = 2; - pub const KEVENT = 3; - pub const THREAD_ID = 4; -}; - -pub const sigevent = extern struct { - sigev_notify: c_int, - sigev_signo: c_int, - sigev_value: sigval, - _sigev_un: extern union { - _threadid: lwpid, - _sigev_thread: extern struct { - _function: ?*const fn (sigval) callconv(.C) void, - _attribute: ?**pthread_attr_t, - }, - _kevent_flags: c_ushort, - __spare__: [8]c_long, - }, -}; diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index fafc4523fb..a64eb03b41 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -1038,22 +1038,3 @@ pub const termios = extern struct { }; pub const MSG_NOSIGNAL = 0x0800; - -pub const SIGEV = struct { - pub const NONE = 0; - pub const SIGNAL = 1; - pub const THREAD = 2; -}; - -pub const sigval = extern union { - int: c_int, - ptr: ?*anyopaque, -}; - -pub const sigevent = extern struct { - sigev_notify: c_int, - sigev_signo: c_int, - sigev_value: sigval, - sigev_notify_function: ?*const fn (sigval) callconv(.C) void, - sigev_notify_attributes: ?*pthread_attr_t, -}; diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 03ca0f481c..d10e40b1d3 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -1633,22 +1633,3 @@ pub const POLL = struct { pub const HUP = 0x0010; pub const NVAL = 0x0020; }; - -pub const SIGEV = struct { - pub const NONE = 0; - pub const SIGNAL = 1; - pub const THREAD = 2; -}; - -pub const sigval = extern union { - int: c_int, - ptr: ?*anyopaque, -}; - -pub const sigevent = extern struct { - sigev_notify: c_int, - sigev_signo: c_int, - sigev_value: sigval, - sigev_notify_function: ?*const fn (sigval) callconv(.C) void, - sigev_notify_attributes: ?*pthread_attr_t, -}; diff --git a/lib/std/c/solaris.zig b/lib/std/c/solaris.zig index 4f81952374..195dc5fd37 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/solaris.zig @@ -1927,22 +1927,3 @@ pub fn IOW(io_type: u8, nr: u8, comptime IOT: type) i32 { pub fn IOWR(io_type: u8, nr: u8, comptime IOT: type) i32 { return ioImpl(.read_write, io_type, nr, IOT); } - -pub const SIGEV = struct { - pub const NONE = 0; - pub const SIGNAL = 1; - pub const THREAD = 2; -}; - -pub const sigval = extern union { - int: c_int, - ptr: ?*anyopaque, -}; - -pub const sigevent = extern struct { - sigev_notify: c_int, - sigev_signo: c_int, - sigev_value: sigval, - sigev_notify_function: ?*const fn (sigval) callconv(.C) void, - sigev_notify_attributes: ?*pthread_attr_t, -}; From 963b2a2a4da116ef3b9f089442ada9c99eb44324 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:20:44 -0700 Subject: [PATCH 48/63] Revert "std: adding FreeBSD's sched wrappers" This reverts commit 9ef615104acb0f7cfed8f871404679a7df5571fe. --- lib/std/c/freebsd.zig | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index d224b6fdab..c0d5d626c2 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -53,9 +53,6 @@ pub extern "c" fn kinfo_getvmmap(pid: pid_t, cntp: *c_int) ?[*]kinfo_vmentry; pub extern "c" fn cpuset_getaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *cpuset_t) c_int; pub extern "c" fn cpuset_setaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *const cpuset_t) c_int; -pub extern "c" fn sched_getaffinity(pid: pid_t, cpusetsz: usize, cpuset: *cpuset_t) c_int; -pub extern "c" fn sched_setaffinity(pid: pid_t, cpusetsz: usize, cpuset: *const cpuset_t) c_int; -pub extern "c" fn sched_getcpu() c_int; pub const sf_hdtr = extern struct { headers: [*]const iovec_const, From 62deaaacd5441f45f05d946303e75c4937cf06b5 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:20:49 -0700 Subject: [PATCH 49/63] Revert "std: mcontext layout for x86 and fixing few x86_64 fields types for" This reverts commit 9691cded95afa53f17bfc50edc371d4fe673b56a. --- lib/std/c/freebsd.zig | 42 +++++------------------------------------- 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index c0d5d626c2..fde54467d0 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -1391,47 +1391,15 @@ pub const mcontext_t = switch (builtin.cpu.arch) { rflags: u64, rsp: u64, ss: u64, - len: c_long, - fpformat: c_long, - ownedfp: c_long, - fpstate: [64]c_long align(16), + len: u64, + fpformat: u64, + ownedfp: u64, + fpstate: [64]u64 align(16), fsbase: u64, gsbase: u64, xfpustate: u64, xfpustate_len: u64, - spare: [4]c_long, - }, - .x86 => extern struct { - onstack: u32, - gs: u32, - fs: u32, - es: u32, - ds: u32, - edi: u32, - esi: u32, - ebp: u32, - isp: u32, - ebx: u32, - edx: u32, - ecx: u32, - eax: u32, - trapno: u32, - err: u32, - eip: u32, - cs: u32, - eflags: u32, - esp: u32, - ss: u32, - len: c_int, - fpformat: c_int, - ownedfp: c_int, - flags: u32, - fpstate: [128]c_int align(16), - fsbase: u32, - gsbase: u32, - xpustate: u32, - xpustate_len: u32, - spare2: [4]c_int, + spare: [4]u64, }, .aarch64 => extern struct { gpregs: extern struct { From aa5808c26cd69cdee4b260c3fd2bcada39fd9429 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:20:53 -0700 Subject: [PATCH 50/63] Revert "std: add accept_filter struct to make use of SO_ACCEPTFILTER socket option" This reverts commit 1d322fe5102368f80fd4d00dcbbe3dca9e6306f8. --- lib/std/c/freebsd.zig | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index fde54467d0..ae4631c7e0 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -1105,11 +1105,6 @@ pub const DT = struct { pub const WHT = 14; }; -pub const accept_filter = extern struct { - af_name: [16]u8, - af_args: [240]u8, -}; - /// add event to kq (implies enable) pub const EV_ADD = 0x0001; From c7f2a7ea82f56c844084d75c9335360ee1e98723 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:20:57 -0700 Subject: [PATCH 51/63] Revert "std: add a subset of the macOs's libproc api." This reverts commit 7b0e015eb42272d84396f44fc904ab79f38dd696. --- lib/std/c/darwin.zig | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index 4d19d64631..fa121c49c5 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -3844,11 +3844,3 @@ pub extern "c" fn os_signpost_interval_begin(log: os_log_t, signpos: os_signpost pub extern "c" fn os_signpost_interval_end(log: os_log_t, signpos: os_signpost_id_t, func: [*]const u8, ...) void; pub extern "c" fn os_signpost_id_make_with_pointer(log: os_log_t, ptr: ?*anyopaque) os_signpost_id_t; pub extern "c" fn os_signpost_enabled(log: os_log_t) bool; - -pub extern "c" fn proc_listpids(tpe: u32, tinfo: u32, buffer: ?*anyopaque, buffersize: c_int) c_int; -pub extern "c" fn proc_listallpids(buffer: ?*anyopaque, buffersize: c_int) c_int; -pub extern "c" fn proc_listpgrppids(pgrpid: pid_t, buffer: ?*anyopaque, buffersize: c_int) c_int; -pub extern "c" fn proc_listchildpids(ppid: pid_t, buffer: ?*anyopaque, buffersize: c_int) c_int; -pub extern "c" fn proc_pidinfo(pid: c_int, flavor: c_int, arg: u64, buffer: ?*anyopaque, buffersize: c_int) c_int; -pub extern "c" fn proc_name(pid: c_int, buffer: ?*anyopaque, buffersize: u32) c_int; -pub extern "c" fn proc_pidpath(pid: c_int, buffer: ?*anyopaque, buffersize: u32) c_int; From a2439e161b45abb6d38ab75f3deadbf043694291 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:21:50 -0700 Subject: [PATCH 52/63] Revert "std: enriching malloc api on freebsd." This reverts commit 9140249d2993d9d9f4c92b2892db421e1e0fb7ae. --- lib/std/c/freebsd.zig | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index ae4631c7e0..0d0adf21f7 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -29,8 +29,6 @@ pub const CPU_WHICH_TIDPID: cpuwhich_t = 8; extern "c" fn __error() *c_int; pub const _errno = __error; -pub extern "c" var malloc_options: [*:0]const u8; - pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) isize; pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; pub extern "c" fn getrandom(buf_ptr: [*]u8, buf_len: usize, flags: c_uint) isize; @@ -44,7 +42,6 @@ pub extern "c" fn arc4random_buf(buf: [*]u8, len: usize) void; pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; pub extern "c" fn malloc_usable_size(?*const anyopaque) usize; -pub extern "c" fn reallocf(?*anyopaque, usize) ?*anyopaque; pub extern "c" fn getpid() pid_t; From 14353590f211b6600e511390250e9a1fa98e483a Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:23:33 -0700 Subject: [PATCH 53/63] Revert "std: adding netbsd's pthread to cpu affinity api" This reverts commit 3f259d35502ed5a8bdb6bbc22f9adb39d610b006. --- lib/std/c/netbsd.zig | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index d10e40b1d3..4b627ed083 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -121,21 +121,9 @@ pub const pthread_attr_t = extern struct { }; pub const sem_t = ?*opaque {}; -pub const cpuset_t = opaque {}; -pub const cpuid_t = c_ulong; pub extern "c" fn pthread_setname_np(thread: std.c.pthread_t, name: [*:0]const u8, arg: ?*anyopaque) E; pub extern "c" fn pthread_getname_np(thread: std.c.pthread_t, name: [*:0]u8, len: usize) E; -pub extern "c" fn pthread_setaffinity_np(thread: std.c.pthread_t, size: usize, set: ?*cpuset_t) c_int; -pub extern "c" fn pthread_getaffinity_np(thread: std.c.pthread_t, size: usize, set: ?*cpuset_t) c_int; - -pub extern "c" fn cpuset_create() ?*cpuset_t; -pub extern "c" fn cpuset_destroy(set: ?*cpuset_t) void; -pub extern "c" fn cpuset_zero(set: ?*cpuset_t) void; -pub extern "c" fn cpuset_set(cpu: cpuid_t, set: ?*cpuset_t) c_int; -pub extern "c" fn cpuset_clr(cpu: cpuid_t, set: ?*cpuset_t) c_int; -pub extern "c" fn cpuset_isset(cpu: cpuid_t, set: ?*const cpuset_t) c_int; -pub extern "c" fn cpuset_size(set: ?*cpuset_t) usize; pub const blkcnt_t = i64; pub const blksize_t = i32; From b5df1bfcdb927e6d4340ef50899cfee4f3e90569 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:23:38 -0700 Subject: [PATCH 54/63] Revert "os: expand sched_getaffinity wrapper and update freebsd's cpuset api flags." This reverts commit dbdafb6cc503ce5820713dfa79cc956438b7957a. --- lib/std/c/freebsd.zig | 13 ------------- lib/std/os.zig | 35 ++++++++--------------------------- 2 files changed, 8 insertions(+), 40 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 0d0adf21f7..a03c5a3b70 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -13,19 +13,6 @@ pub const cpulevel_t = c_int; pub const cpuwhich_t = c_int; pub const id_t = i64; -pub const CPU_LEVEL_ROOT: cpulevel_t = 1; -pub const CPU_LEVEL_CPUSET: cpulevel_t = 2; -pub const CPU_LEVEL_WHICH: cpulevel_t = 3; -pub const CPU_WHICH_TID: cpuwhich_t = 1; -pub const CPU_WHICH_PID: cpuwhich_t = 2; -pub const CPU_WHICH_CPUSET: cpuwhich_t = 3; -pub const CPU_WHICH_IRQ: cpuwhich_t = 4; -pub const CPU_WHICH_JAIL: cpuwhich_t = 5; -pub const CPU_WHICH_DOMAIN: cpuwhich_t = 6; -pub const CPU_WHICH_INTRHANDLER: cpuwhich_t = 7; -pub const CPU_WHICH_ITHREAD: cpuwhich_t = 8; -pub const CPU_WHICH_TIDPID: cpuwhich_t = 8; - extern "c" fn __error() *c_int; pub const _errno = __error; diff --git a/lib/std/os.zig b/lib/std/os.zig index c8720257b8..b8b4295eba 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -146,12 +146,7 @@ pub const addrinfo = system.addrinfo; pub const blkcnt_t = system.blkcnt_t; pub const blksize_t = system.blksize_t; pub const clock_t = system.clock_t; -pub const cpu_set_t = if (builtin.os.tag == .linux) - system.cpu_set_t -else if (builtin.os.tag == .freebsd) - freebsd.cpuset_t -else - u32; +pub const cpu_set_t = system.cpu_set_t; pub const dev_t = system.dev_t; pub const dl_phdr_info = system.dl_phdr_info; pub const empty_sigset = system.empty_sigset; @@ -5492,27 +5487,13 @@ pub const SchedGetAffinityError = error{PermissionDenied} || UnexpectedError; pub fn sched_getaffinity(pid: pid_t) SchedGetAffinityError!cpu_set_t { var set: cpu_set_t = undefined; - if (builtin.os.tag == .linux) { - switch (errno(system.sched_getaffinity(pid, @sizeOf(cpu_set_t), &set))) { - .SUCCESS => return set, - .FAULT => unreachable, - .INVAL => unreachable, - .SRCH => unreachable, - .PERM => return error.PermissionDenied, - else => |err| return unexpectedErrno(err), - } - } else if (builtin.os.tag == .freebsd) { - switch (errno(freebsd.cpuset_getaffinity(freebsd.CPU_LEVEL_WHICH, freebsd.CPU_WHICH_PID, pid, @sizeOf(cpu_set_t), &set))) { - .SUCCESS => return set, - .FAULT => unreachable, - .INVAL => unreachable, - .SRCH => unreachable, - .EDEADLK => unreachable, - .PERM => return error.PermissionDenied, - else => |err| return unexpectedErrno(err), - } - } else { - @compileError("unsupported platform"); + switch (errno(system.sched_getaffinity(pid, @sizeOf(cpu_set_t), &set))) { + .SUCCESS => return set, + .FAULT => unreachable, + .INVAL => unreachable, + .SRCH => unreachable, + .PERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), } } From 26777d98fe46d81b74ef304c1d1fd5975d7e0a0b Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:23:49 -0700 Subject: [PATCH 55/63] Revert "std: adding freebsd's elf_aux_info api" This reverts commit 83970b6d916a1526869aba2680d5017d495df12a. --- lib/std/c/freebsd.zig | 41 ----------------------------------------- 1 file changed, 41 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index a03c5a3b70..f3073a4ad9 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -1658,45 +1658,6 @@ pub const AT = struct { pub const REMOVEDIR = 0x0800; /// Fail if not under dirfd pub const BENEATH = 0x1000; - /// elf_common constants - pub const NULL = 0; - pub const IGNORE = 1; - pub const EXECFD = 2; - pub const PHDR = 3; - pub const PHENT = 4; - pub const PHNUM = 5; - pub const PAGESZ = 6; - pub const BASE = 7; - pub const FLAGS = 8; - pub const ENTRY = 9; - pub const NOTELF = 10; - pub const UID = 11; - pub const EUID = 12; - pub const GID = 13; - pub const EGID = 14; - pub const EXECPATH = 15; - pub const CANARY = 16; - pub const CANARYLEN = 17; - pub const OSRELDATE = 18; - pub const NCPUS = 19; - pub const PAGESIZES = 20; - pub const PAGESIZESLEN = 21; - pub const TIMEKEEP = 22; - pub const STACKPROT = 23; - pub const EHDRFLAGS = 24; - pub const HWCAP = 25; - pub const HWCAP2 = 26; - pub const BSDFLAGS = 27; - pub const ARGC = 28; - pub const ARGV = 29; - pub const ENVC = 30; - pub const ENVV = 31; - pub const PS_STRINGS = 32; - pub const FXRNG = 33; - pub const KPRLOAD = 34; - pub const USRSTACKBASE = 35; - pub const USRSTACKLIM = 36; - pub const COUNT = 37; }; pub const addrinfo = extern struct { @@ -2190,5 +2151,3 @@ pub const shm_largeconf = extern struct { }; pub extern "c" fn shm_create_largepage(path: [*:0]const u8, flags: c_int, psind: c_int, alloc_policy: c_int, mode: mode_t) c_int; - -pub extern "c" fn elf_aux_info(aux: c_int, buf: ?*anyopaque, buflen: c_int) c_int; From c0ac1411db64011a967670261412c09dc29f8105 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:23:56 -0700 Subject: [PATCH 56/63] Revert "std: freebsd update proposal" This reverts commit 2568da2f41d3403b2cd91bbb84862c86932b63e6. --- lib/std/c/freebsd.zig | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index f3073a4ad9..ba5ae4ed0b 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -5,21 +5,12 @@ const maxInt = std.math.maxInt; const iovec = std.os.iovec; const iovec_const = std.os.iovec_const; -pub const CPU_SETSIZE = 256; -pub const cpuset_t = extern struct { - __bits: [(CPU_SETSIZE + (@bitSizeOf(c_long) - 1)) / @bitSizeOf(c_long)]c_long, -}; -pub const cpulevel_t = c_int; -pub const cpuwhich_t = c_int; -pub const id_t = i64; - extern "c" fn __error() *c_int; pub const _errno = __error; pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) isize; pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; pub extern "c" fn getrandom(buf_ptr: [*]u8, buf_len: usize, flags: c_uint) isize; -pub extern "c" fn getentropy(buf_ptr: [*]u8, buf_len: usize) c_int; pub extern "c" fn pthread_getthreadid_np() c_int; pub extern "c" fn pthread_set_name_np(thread: std.c.pthread_t, name: [*:0]const u8) void; @@ -35,9 +26,6 @@ pub extern "c" fn getpid() pid_t; pub extern "c" fn kinfo_getfile(pid: pid_t, cntp: *c_int) ?[*]kinfo_file; pub extern "c" fn kinfo_getvmmap(pid: pid_t, cntp: *c_int) ?[*]kinfo_vmentry; -pub extern "c" fn cpuset_getaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *cpuset_t) c_int; -pub extern "c" fn cpuset_setaffinity(level: cpulevel_t, which: cpuwhich_t, id: id_t, setsize: usize, mask: *const cpuset_t) c_int; - pub const sf_hdtr = extern struct { headers: [*]const iovec_const, hdr_cnt: c_int, @@ -215,6 +203,8 @@ pub const clock_t = isize; pub const socklen_t = u32; pub const suseconds_t = c_long; +pub const id_t = i64; + /// Renamed from `kevent` to `Kevent` to avoid conflict with function name. pub const Kevent = extern struct { /// Identifier for this event. From a18a116bdae855d57e0c2117c72a0b09028ae79c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:24:04 -0700 Subject: [PATCH 57/63] Revert "std: add shm_create_largepage for FreeBSD, completing MFD* constants." This reverts commit 7b908e173fa6034dc92e6b73c4264dc44706bd32. --- lib/std/c/freebsd.zig | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index ba5ae4ed0b..ee19f2faa9 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -1980,21 +1980,6 @@ pub const NAME_MAX = 255; pub const MFD = struct { pub const CLOEXEC = 0x0001; pub const ALLOW_SEALING = 0x0002; - pub const HUGETLB = 0x00000004; - pub const HUGE_MASK = 0xFC000000; - pub const HUGE_SHIFT = 26; - pub const HUGE_64KB = 16 << HUGE_SHIFT; - pub const HUGE_512KB = 19 << HUGE_SHIFT; - pub const HUGE_1MB = 20 << HUGE_SHIFT; - pub const HUGE_2MB = 21 << HUGE_SHIFT; - pub const HUGE_8MB = 23 << HUGE_SHIFT; - pub const HUGE_16MB = 24 << HUGE_SHIFT; - pub const HUGE_32MB = 25 << HUGE_SHIFT; - pub const HUGE_256MB = 28 << HUGE_SHIFT; - pub const HUGE_512MB = 29 << HUGE_SHIFT; - pub const HUGE_1GB = 30 << HUGE_SHIFT; - pub const HUGE_2GB = 31 << HUGE_SHIFT; - pub const HUGE_16GB = 34 << HUGE_SHIFT; }; pub extern "c" fn memfd_create(name: [*:0]const u8, flags: c_uint) c_int; @@ -2124,20 +2109,3 @@ pub const procctl_reaper_kill = extern struct { }; pub extern "c" fn procctl(idtype: idtype_t, id: id_t, cmd: c_int, data: ?*anyopaque) c_int; - -pub const SHM = struct { - pub const ALLOW_SEALING = 0x00000001; - pub const GROW_ON_WRWITE = 0x00000002; - pub const LARGEPAGE = 0x00000004; - pub const LARGEPAGE_ALLOC_DEFAULT = 0; - pub const LARGEPAGE_ALLOC_NOWAIT = 1; - pub const LARGEPAGE_ALLOC_HARD = 2; -}; - -pub const shm_largeconf = extern struct { - psind: c_int, - alloc_policy: c_int, - pad: [10]c_int, -}; - -pub extern "c" fn shm_create_largepage(path: [*:0]const u8, flags: c_int, psind: c_int, alloc_policy: c_int, mode: mode_t) c_int; From 68134e56cb2485fda34bf4220957415cfb266544 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:24:09 -0700 Subject: [PATCH 58/63] Revert "std add getrandom to solato solaris based systems" This reverts commit 56d800ff7e65897d8ff9ede8e8194af4d08f0df5. --- lib/std/c/solaris.zig | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/std/c/solaris.zig b/lib/std/c/solaris.zig index 195dc5fd37..58d02416cb 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/solaris.zig @@ -16,7 +16,6 @@ pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) usize; pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; pub extern "c" fn pipe2(fds: *[2]fd_t, flags: u32) c_int; pub extern "c" fn arc4random_buf(buf: [*]u8, len: usize) void; -pub extern "c" fn getrandom(buf_ptr: [*]u8, buf_len: usize, flags: c_uint) isize; pub extern "c" fn posix_memalign(memptr: *?*anyopaque, alignment: usize, size: usize) c_int; pub extern "c" fn sysconf(sc: c_int) i64; pub extern "c" fn signalfd(fd: fd_t, mask: *const sigset_t, flags: u32) c_int; From 99c70ec24ffb3d542565f38f1c8457c3c51ce9aa Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:24:14 -0700 Subject: [PATCH 59/63] Revert "std: add kinfo_vmentry for FreeBSD" This reverts commit 4a0508e56c06456c367c57a7565b9f757f2ff663. --- lib/std/c/freebsd.zig | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index ee19f2faa9..b24d221b4e 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -24,7 +24,6 @@ pub extern "c" fn malloc_usable_size(?*const anyopaque) usize; pub extern "c" fn getpid() pid_t; pub extern "c" fn kinfo_getfile(pid: pid_t, cntp: *c_int) ?[*]kinfo_file; -pub extern "c" fn kinfo_getvmmap(pid: pid_t, cntp: *c_int) ?[*]kinfo_vmentry; pub const sf_hdtr = extern struct { headers: [*]const iovec_const, @@ -566,40 +565,6 @@ comptime { std.debug.assert(@alignOf(kinfo_file) == @sizeOf(u64)); } -pub const kinfo_vmentry = extern struct { - kve_structsize: c_int, - kve_type: c_int, - kve_start: u64, - kve_end: u64, - kve_offset: u64, - kve_vn_fileid: u64, - kve_vn_fsid_freebsd11: u32, - kve_flags: c_int, - kve_resident: c_int, - kve_private_resident: c_int, - kve_protection: c_int, - kve_ref_count: c_int, - kve_shadow_count: c_int, - kve_vn_type: c_int, - kve_vn_size: u64, - kve_vn_rdev_freebsd11: u32, - kve_vn_mode: u16, - kve_status: u16, - kve_type_spec: extern union { - _kve_vn_fsid: u64, - _kve_obj: u64, - }, - kve_vn_rdev: u64, - _kve_ispare: [8]c_int, - kve_rpath: [PATH_MAX]u8, -}; - -pub const KINFO_VMENTRY_SIZE = 1160; - -comptime { - std.debug.assert(@sizeOf(kinfo_vmentry) == KINFO_VMENTRY_SIZE); -} - pub const CTL = struct { pub const KERN = 1; pub const DEBUG = 5; From 235b9fc28a6ec50522f8548f8d54c97356a7f568 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:24:21 -0700 Subject: [PATCH 60/63] Revert "std: add FreeBSD's procctl api." This reverts commit 2e2d37917d4227d6ab9c8e43b3619bc47ce56417. --- lib/std/c/freebsd.zig | 127 ------------------------------------------ 1 file changed, 127 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index b24d221b4e..6a8997bedf 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -202,8 +202,6 @@ pub const clock_t = isize; pub const socklen_t = u32; pub const suseconds_t = c_long; -pub const id_t = i64; - /// Renamed from `kevent` to `Kevent` to avoid conflict with function name. pub const Kevent = extern struct { /// Identifier for this event. @@ -1949,128 +1947,3 @@ pub const MFD = struct { pub extern "c" fn memfd_create(name: [*:0]const u8, flags: c_uint) c_int; pub extern "c" fn copy_file_range(fd_in: fd_t, off_in: ?*off_t, fd_out: fd_t, off_out: ?*off_t, len: usize, flags: u32) usize; - -pub const idtype_t = enum(c_int) { - P_PID = 0, - P_PPID = 1, - P_PGID = 2, - P_SID = 3, - P_CID = 4, - P_UID = 5, - P_GID = 6, - P_ALL = 7, - P_LWPID = 8, - P_TASKID = 9, - P_PROJID = 10, - P_POOLID = 11, - P_JAILID = 12, - P_CTID = 13, - P_CPUID = 14, - P_PSETID = 15, -}; - -pub const PROC = struct { - // constants for the id_t argument - pub const SPROTECT: id_t = 1; - pub const REAP_ACQUIRE: id_t = 2; - pub const REAP_RELEASE: id_t = 3; - pub const REAP_STATUS: id_t = 4; - pub const REAP_GETPIDS: id_t = 5; - pub const REAP_KILL: id_t = 6; - pub const TRACE_CTL: id_t = 7; - pub const TRACE_STATUS: id_t = 8; - pub const TRACECAP_CTL = 9; - pub const TRACECAP_STATUS: id_t = 10; - pub const PDEATHSIG_CTL: id_t = 11; - pub const PDEATHSIG_STATUS: id_t = 12; - pub const ASLR_CTL: id_t = 13; - pub const ASLR_STATUS: id_t = 14; - pub const PROTMAX_CTL: id_t = 15; - pub const PROTMAX_STATUS: id_t = 16; - pub const STACKGAP_CTL: id_t = 17; - pub const STACKGAP_STATUS: id_t = 18; - pub const NO_NEW_PRIVS_CTL: id_t = 19; - pub const NO_NEW_PRIVS_STATUS: id_t = 20; - pub const WXMAP_CTL: id_t = 21; - pub const WXMAP_STATUS: id_t = 22; - - // constants for the operations - pub const TRACE_CTL_ENABLE = 1; - pub const TRACE_CTL_DISABLE = 2; - pub const TRACE_CTL_DISABLE_EXEC = 3; - pub const TRAPCAP_CTL_ENABLE = 1; - pub const TRAPCAP_CTL_DISABLE = 2; - pub const ASLR_FORCE_ENABLE = 1; - pub const ASLR_FORCE_DISABLE = 2; - pub const ASLR_FORCE_NOFORCE = 3; - pub const ASLR_FORCE_ACTIVE = 0x80000000; - pub const PROTMAX_FORCE_ENABLE = 1; - pub const PROTMAX_FORCE_DISABLE = 2; - pub const PROTMAX_FORCE_NOFORCE = 3; - pub const PROTMAX_FORCE_ACTIVE = 0x80000000; - pub const STACKGAP_ENABLE = 0x0001; - pub const STACKGAP_DISABLE = 0x0002; - pub const STACKGAP_ENABLE_EXEC = 0x0004; - pub const STACKGAP_DISABLE_EXEC = 0x0008; - pub const NO_NEW_PRIVS_ENABLE = 1; - pub const NO_NEW_PRIVS_DISABLE = 2; - pub const WX_MAPPINGS_PERMIT = 0x0001; - pub const WX_MAPPINGS_DISALLOW_EXEC = 0x0002; - pub const WX_MAPPINGS_ENFORCE = 0x80000000; -}; - -pub const PPROT = struct { - pub fn OP(x: i32) i32 { - return x & 0xf; - } - pub const SET = 1; - pub const CLEAR = 2; - pub fn FLAGS(x: i32) i32 { - return x & !0xf; - } - pub const DESCEND = 0x10; - pub const INHERIT = 0x20; -}; - -pub const REAPER = struct { - pub const STATUS_OWNED = 0x00000001; - pub const STATUS_REALINIT = 0x00000002; - pub const PIDINFO_VALID = 0x00000001; - pub const PIDINFO_CHILD = 0x00000002; - pub const PIDINFO_REAPER = 0x00000004; - pub const KILL_CHILDREN = 0x00000001; - pub const KILL_SUBTREE = 0x00000002; -}; - -pub const procctl_reaper_status = extern struct { - rs_flags: u32, - rs_children: u32, - rs_descendants: u32, - rs_reaper: pid_t, - rs_pid: pid_t, - rs_pad0: [15]u32, -}; - -pub const procctl_reaper_pidinfo = extern struct { - pi_pid: pid_t, - pi_subtree: pid_t, - pi_flags: u32, - pi_pad0: [15]u32, -}; - -pub const procctl_reaper_pids = extern struct { - rp_count: u32, - rp_pad0: [15]u32, - rp_pids: [*]procctl_reaper_pidinfo, -}; - -pub const procctl_reaper_kill = extern struct { - rk_sig: c_int, - rk_flags: u32, - rk_subtree: pid_t, - rk_killed: u32, - rk_fpid: pid_t, - rk_pad0: [15]u32, -}; - -pub extern "c" fn procctl(idtype: idtype_t, id: id_t, cmd: c_int, data: ?*anyopaque) c_int; From b1bde35651ad38b930956b97d077ec823cceb078 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:51:08 -0700 Subject: [PATCH 61/63] std.c.openbsd: add ucontext_t for aarch64 Reapplies 1585ed637d101ed16adb6b9ebdfa465299bfdb13 which was reverted in f3adbe249b0dfad91318916142a33619232a968f. I removed use of `usingnamespace` in this commit. @semarie audited this struct definition. --- lib/std/c/openbsd.zig | 83 +++++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 35 deletions(-) diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 8bdd3125f5..341426ce62 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -1092,44 +1092,57 @@ comptime { } pub usingnamespace switch (builtin.cpu.arch) { - .x86_64 => struct { - pub const ucontext_t = extern struct { - sc_rdi: c_long, - sc_rsi: c_long, - sc_rdx: c_long, - sc_rcx: c_long, - sc_r8: c_long, - sc_r9: c_long, - sc_r10: c_long, - sc_r11: c_long, - sc_r12: c_long, - sc_r13: c_long, - sc_r14: c_long, - sc_r15: c_long, - sc_rbp: c_long, - sc_rbx: c_long, - sc_rax: c_long, - sc_gs: c_long, - sc_fs: c_long, - sc_es: c_long, - sc_ds: c_long, - sc_trapno: c_long, - sc_err: c_long, - sc_rip: c_long, - sc_cs: c_long, - sc_rflags: c_long, - sc_rsp: c_long, - sc_ss: c_long, - - sc_fpstate: *anyopaque, // struct fxsave64 * - __sc_unused: c_int, - sc_mask: c_int, - sc_cookie: c_long, - }; - }, + .x86_64 => struct {}, else => struct {}, }; +pub const ucontext_t = switch (builtin.cpu.arch) { + .x86_64 => extern struct { + sc_rdi: c_long, + sc_rsi: c_long, + sc_rdx: c_long, + sc_rcx: c_long, + sc_r8: c_long, + sc_r9: c_long, + sc_r10: c_long, + sc_r11: c_long, + sc_r12: c_long, + sc_r13: c_long, + sc_r14: c_long, + sc_r15: c_long, + sc_rbp: c_long, + sc_rbx: c_long, + sc_rax: c_long, + sc_gs: c_long, + sc_fs: c_long, + sc_es: c_long, + sc_ds: c_long, + sc_trapno: c_long, + sc_err: c_long, + sc_rip: c_long, + sc_cs: c_long, + sc_rflags: c_long, + sc_rsp: c_long, + sc_ss: c_long, + + sc_fpstate: *anyopaque, // struct fxsave64 * + __sc_unused: c_int, + sc_mask: c_int, + sc_cookie: c_long, + }, + .aarch64 => extern struct { + __sc_unused: c_int, + sc_mask: c_int, + sc_sp: c_ulong, + sc_lr: c_ulong, + sc_elr: c_ulong, + sc_spsr: c_ulong, + sc_x: [30]c_ulong, + sc_cookie: c_long, + }, + else => @compileError("missing ucontext_t type definition"), +}; + pub const sigset_t = c_uint; pub const empty_sigset: sigset_t = 0; From 479fd2f7215e504da173356eeb80b356f074a37f Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:54:27 -0700 Subject: [PATCH 62/63] std.c.openbsd: add PTHREAD_STACK_MIN @semarie audited this definition. --- lib/std/c/openbsd.zig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 341426ce62..553b6a2c52 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -1635,3 +1635,9 @@ pub const HW = struct { pub const NCPUONLINE = 25; pub const POWER = 26; }; + +pub const PTHREAD_STACK_MIN = switch (builtin.cpu.arch) { + .sparc64 => 1 << 13, + .mips64 => 1 << 14, + else => 1 << 12, +}; From 04d5e07d407af5382ec5e721dee485855928318f Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 31 Jul 2023 11:57:48 -0700 Subject: [PATCH 63/63] std.c.openbsd: remove "msg_" prefixes from structs Reapplies 8f14431bc883898aaf78cc985e2d90716187e882 which was reverted in 95e2605d30c15963c4d6bc9e39751031b0f52007. --- lib/std/c/openbsd.zig | 44 ++++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/lib/std/c/openbsd.zig b/lib/std/c/openbsd.zig index 553b6a2c52..33a60df954 100644 --- a/lib/std/c/openbsd.zig +++ b/lib/std/c/openbsd.zig @@ -251,48 +251,36 @@ pub const EAI_MAX = 15; pub const msghdr = extern struct { /// optional address - msg_name: ?*sockaddr, - + name: ?*sockaddr, /// size of address - msg_namelen: socklen_t, - + namelen: socklen_t, /// scatter/gather array - msg_iov: [*]iovec, - - /// # elements in msg_iov - msg_iovlen: c_uint, - + iov: [*]iovec, + /// # elements in iov + iovlen: c_uint, /// ancillary data - msg_control: ?*anyopaque, - + control: ?*anyopaque, /// ancillary data buffer len - msg_controllen: socklen_t, - + controllen: socklen_t, /// flags on received message - msg_flags: c_int, + flags: c_int, }; pub const msghdr_const = extern struct { /// optional address - msg_name: ?*const sockaddr, - + name: ?*const sockaddr, /// size of address - msg_namelen: socklen_t, - + namelen: socklen_t, /// scatter/gather array - msg_iov: [*]const iovec_const, - - /// # elements in msg_iov - msg_iovlen: c_uint, - + iov: [*]const iovec_const, + /// # elements in iov + iovlen: c_uint, /// ancillary data - msg_control: ?*const anyopaque, - + control: ?*const anyopaque, /// ancillary data buffer len - msg_controllen: socklen_t, - + controllen: socklen_t, /// flags on received message - msg_flags: c_int, + flags: c_int, }; pub const Stat = extern struct {