authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-15 14:56:00+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-22 22:15:31+02:00
log0935f72e78915510e9a27e9f64eb2ddd2079134c
tree2d8e27a3811a47c41275d24bff6a455ed4415d1f
parent5fdde72c0781838ba8c28bda1938648ed8131f5d
signature Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.c: fix sendmmsg() signature for freebsd


2 files changed, 8 insertions(+), 1 deletions(-)

lib/std/c.zig+5-1
...@@ -11034,7 +11034,10 @@ pub extern "c" fn sendto(...@@ -11034,7 +11034,10 @@ pub extern "c" fn sendto(
11034 addrlen: socklen_t,11034 addrlen: socklen_t,
11035) isize;11035) isize;
11036pub extern "c" fn sendmsg(sockfd: fd_t, msg: *const msghdr_const, flags: u32) isize;11036pub extern "c" fn sendmsg(sockfd: fd_t, msg: *const msghdr_const, flags: u32) isize;
11037pub extern "c" fn sendmmsg(sockfd: fd_t, msgvec: [*]mmsghdr, n: c_uint, flags: u32) c_int;11037pub const sendmmsg = switch (native_os) {
11038 .freebsd => freebsd.sendmmsg,
11039 else => private.sendmmsg,
11040};
1103811041
11039pub extern "c" fn recv(11042pub extern "c" fn recv(
11040 sockfd: fd_t,11043 sockfd: fd_t,
...@@ -11897,6 +11900,7 @@ const private = struct {...@@ -11897,6 +11900,7 @@ const private = struct {
11897 extern "c" fn recvmsg(sockfd: fd_t, msg: *msghdr, flags: u32) isize;11900 extern "c" fn recvmsg(sockfd: fd_t, msg: *msghdr, flags: u32) isize;
11898 extern "c" fn sched_yield() c_int;11901 extern "c" fn sched_yield() c_int;
11899 extern "c" fn sendfile(out_fd: fd_t, in_fd: fd_t, offset: ?*off_t, count: usize) isize;11902 extern "c" fn sendfile(out_fd: fd_t, in_fd: fd_t, offset: ?*off_t, count: usize) isize;
11903 extern "c" fn sendmmsg(sockfd: fd_t, msgvec: [*]mmsghdr, n: c_uint, flags: u32) c_int;
11900 extern "c" fn sigaction(sig: SIG, noalias act: ?*const Sigaction, noalias oact: ?*Sigaction) c_int;11904 extern "c" fn sigaction(sig: SIG, noalias act: ?*const Sigaction, noalias oact: ?*Sigaction) c_int;
11901 extern "c" fn sigdelset(set: ?*sigset_t, signo: SIG) c_int;11905 extern "c" fn sigdelset(set: ?*sigset_t, signo: SIG) c_int;
11902 extern "c" fn sigaddset(set: ?*sigset_t, signo: SIG) c_int;11906 extern "c" fn sigaddset(set: ?*sigset_t, signo: SIG) c_int;
lib/std/c/freebsd.zig+3
...@@ -21,6 +21,7 @@ const timespec = std.c.timespec;...@@ -21,6 +21,7 @@ const timespec = std.c.timespec;
21const uid_t = std.c.uid_t;21const uid_t = std.c.uid_t;
22const sf_hdtr = std.c.sf_hdtr;22const sf_hdtr = std.c.sf_hdtr;
23const clockid_t = std.c.clockid_t;23const clockid_t = std.c.clockid_t;
24const mmsghdr = std.c.mmsghdr;
2425
25comptime {26comptime {
26 assert(builtin.os.tag == .freebsd); // Prevent access of std.c symbols on wrong OS.27 assert(builtin.os.tag == .freebsd); // Prevent access of std.c symbols on wrong OS.
...@@ -41,6 +42,8 @@ pub extern "c" fn sendfile(...@@ -41,6 +42,8 @@ pub extern "c" fn sendfile(
41 flags: u32,42 flags: u32,
42) c_int;43) c_int;
4344
45pub extern "c" fn sendmmsg(sockfd: fd_t, msgvec: [*]mmsghdr, vlen: usize, flags: u32) isize;
46
44pub const UMTX_OP = enum(c_int) {47pub const UMTX_OP = enum(c_int) {
45 LOCK = 0,48 LOCK = 0,
46 UNLOCK = 1,49 UNLOCK = 1,