From 0935f72e78915510e9a27e9f64eb2ddd2079134c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 15 Oct 2026 14:56:00 +0200 Subject: [PATCH] std.c: fix sendmmsg() signature for freebsd --- lib/std/c.zig | 6 +++++- lib/std/c/freebsd.zig | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/std/c.zig b/lib/std/c.zig index 66c267cf5c9cd8dc28a8ffb8d258e4883d4e9e6f..bda3c688146f7684a9fbe366bdc08ce81122a663 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -11034,7 +11034,10 @@ pub extern "c" fn sendto( addrlen: socklen_t, ) isize; pub extern "c" fn sendmsg(sockfd: fd_t, msg: *const msghdr_const, flags: u32) isize; -pub extern "c" fn sendmmsg(sockfd: fd_t, msgvec: [*]mmsghdr, n: c_uint, flags: u32) c_int; +pub const sendmmsg = switch (native_os) { + .freebsd => freebsd.sendmmsg, + else => private.sendmmsg, +}; pub extern "c" fn recv( sockfd: fd_t, @@ -11897,6 +11900,7 @@ const private = struct { extern "c" fn recvmsg(sockfd: fd_t, msg: *msghdr, flags: u32) isize; extern "c" fn sched_yield() c_int; extern "c" fn sendfile(out_fd: fd_t, in_fd: fd_t, offset: ?*off_t, count: usize) isize; + extern "c" fn sendmmsg(sockfd: fd_t, msgvec: [*]mmsghdr, n: c_uint, flags: u32) c_int; extern "c" fn sigaction(sig: SIG, noalias act: ?*const Sigaction, noalias oact: ?*Sigaction) c_int; extern "c" fn sigdelset(set: ?*sigset_t, signo: SIG) c_int; extern "c" fn sigaddset(set: ?*sigset_t, signo: SIG) c_int; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index adea1bdadfddd08bdfe9cac4b077c7b4c12a5761..695670f6aaf198e5433b91538732ef9486a01c9b 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -21,6 +21,7 @@ const timespec = std.c.timespec; const uid_t = std.c.uid_t; const sf_hdtr = std.c.sf_hdtr; const clockid_t = std.c.clockid_t; +const mmsghdr = std.c.mmsghdr; comptime { assert(builtin.os.tag == .freebsd); // Prevent access of std.c symbols on wrong OS. @@ -41,6 +42,8 @@ pub extern "c" fn sendfile( flags: u32, ) c_int; +pub extern "c" fn sendmmsg(sockfd: fd_t, msgvec: [*]mmsghdr, vlen: usize, flags: u32) isize; + pub const UMTX_OP = enum(c_int) { LOCK = 0, UNLOCK = 1, -- 2.54.0