diff --git a/std/c/freebsd.zig b/std/c/freebsd.zig index 4d5c3810e8..2f2f4c0a1b 100644 --- a/std/c/freebsd.zig +++ b/std/c/freebsd.zig @@ -93,3 +93,28 @@ pub const dirent = extern struct { d_pad1: u16, d_name: [256]u8, }; + +pub const in_port_t = u16; +pub const sa_family_t = u16; + +pub const sockaddr = extern union { + in: sockaddr_in, + in6: sockaddr_in6, +}; + +pub const sockaddr_in = extern struct { + len: u8, + family: sa_family_t, + port: in_port_t, + addr: [16]u8, + zero: [8]u8, +}; + +pub const sockaddr_in6 = extern struct { + len: u8, + family: sa_family_t, + port: in_port_t, + flowinfo: u32, + addr: [16]u8, + scope_id: u32, +}; diff --git a/std/os/freebsd/index.zig b/std/os/freebsd/index.zig index 9bb683f69e..c333ef2ac4 100644 --- a/std/os/freebsd/index.zig +++ b/std/os/freebsd/index.zig @@ -525,6 +525,10 @@ pub const TIOCGPKT = 0x80045438; pub const TIOCGPTLCK = 0x80045439; pub const TIOCGEXCL = 0x80045440; +pub const sockaddr = c.sockaddr; +pub const sockaddr_in = c.sockaddr_in; +pub const sockaddr_in6 = c.sockaddr_in6; + fn unsigned(s: i32) u32 { return @bitCast(u32, s); }