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

std.c: fix getnameinfo() signature for freebsd


3 files changed, 39 insertions(+), 9 deletions(-)

lib/std/c.zig+14-9
......@@ -11232,15 +11232,11 @@ pub extern "c" fn getaddrinfo(
1123211232
1123311233pub extern "c" fn freeaddrinfo(res: *addrinfo) void;
1123411234
11235pub extern "c" fn getnameinfo(
11236 noalias addr: *const sockaddr,
11237 addrlen: socklen_t,
11238 noalias host: ?[*]u8,
11239 hostlen: if (native_os == .dragonfly) usize else socklen_t,
11240 noalias serv: ?[*]u8,
11241 servlen: if (native_os == .dragonfly) usize else socklen_t,
11242 flags: NI,
11243) EAI;
11235pub const getnameinfo = switch (native_os) {
11236 .dragonfly => dragonfly.getnameinfo,
11237 .freebsd => freebsd.getnameinfo,
11238 else => private.getnameinfo,
11239};
1124411240
1124511241pub extern "c" fn gai_strerror(errcode: EAI) [*:0]const u8;
1124611242
......@@ -11899,6 +11895,15 @@ const private = struct {
1189911895 extern "c" fn realpath(noalias file_name: [*:0]const u8, noalias resolved_name: [*]u8) ?[*:0]u8;
1190011896 extern "c" fn recvmsg(sockfd: fd_t, msg: *msghdr, flags: u32) isize;
1190111897 extern "c" fn sched_yield() c_int;
11898 extern "c" fn getnameinfo(
11899 noalias addr: *const sockaddr,
11900 addrlen: socklen_t,
11901 noalias host: ?[*]u8,
11902 hostlen: socklen_t,
11903 noalias serv: ?[*]u8,
11904 servlen: socklen_t,
11905 flags: NI,
11906 ) EAI;
1190211907 extern "c" fn sendfile(out_fd: fd_t, in_fd: fd_t, offset: ?*off_t, count: usize) isize;
1190311908 extern "c" fn sendmmsg(sockfd: fd_t, msgvec: [*]mmsghdr, n: c_uint, flags: u32) c_int;
1190411909 extern "c" fn sigaction(sig: SIG, noalias act: ?*const Sigaction, noalias oact: ?*Sigaction) c_int;
lib/std/c/dragonfly.zig+12
......@@ -5,13 +5,25 @@ const caddr_t = std.c.caddr_t;
55const gid_t = std.c.gid_t;
66const iovec = std.c.iovec;
77const pid_t = std.c.pid_t;
8const sockaddr = std.c.sockaddr;
89const socklen_t = std.c.socklen_t;
910const uid_t = std.c.uid_t;
11const NI = std.c.NI;
12const EAI = std.c.EAI;
1013
1114pub extern "c" fn lwp_gettid() c_int;
1215pub extern "c" fn ptrace(request: c_int, pid: pid_t, addr: caddr_t, data: c_int) c_int;
1316pub extern "c" fn umtx_sleep(ptr: *const volatile c_int, value: c_int, timeout: c_int) c_int;
1417pub extern "c" fn umtx_wakeup(ptr: *const volatile c_int, count: c_int) c_int;
18pub extern "c" fn getnameinfo(
19 noalias addr: *const sockaddr,
20 addrlen: socklen_t,
21 noalias host: ?[*]u8,
22 hostlen: usize,
23 noalias serv: ?[*]u8,
24 servlen: usize,
25 flags: NI,
26) EAI;
1527
1628pub const E = enum(u16) {
1729 /// No error occurred.
lib/std/c/freebsd.zig+13
......@@ -16,12 +16,15 @@ const nlink_t = std.c.nlink_t;
1616const off_t = std.c.off_t;
1717const pid_t = std.c.pid_t;
1818const sockaddr = std.c.sockaddr;
19const socklen_t = std.c.socklen_t;
1920const time_t = std.c.time_t;
2021const timespec = std.c.timespec;
2122const uid_t = std.c.uid_t;
2223const sf_hdtr = std.c.sf_hdtr;
2324const clockid_t = std.c.clockid_t;
2425const mmsghdr = std.c.mmsghdr;
26const NI = std.c.NI;
27const EAI = std.c.EAI;
2528
2629comptime {
2730 assert(builtin.os.tag == .freebsd); // Prevent access of std.c symbols on wrong OS.
......@@ -44,6 +47,16 @@ pub extern "c" fn sendfile(
4447
4548pub extern "c" fn sendmmsg(sockfd: fd_t, msgvec: [*]mmsghdr, vlen: usize, flags: u32) isize;
4649
50pub extern "c" fn getnameinfo(
51 noalias addr: *const sockaddr,
52 addrlen: socklen_t,
53 noalias host: ?[*]u8,
54 hostlen: usize,
55 noalias serv: ?[*]u8,
56 servlen: usize,
57 flags: NI,
58) EAI;
59
4760pub const UMTX_OP = enum(c_int) {
4861 LOCK = 0,
4962 UNLOCK = 1,