Source
pub const AI = if (builtin.abi.isAndroid()) packed struct(u32) {
PASSIVE: bool = false,
CANONNAME: bool = false,
NUMERICHOST: bool = false,
NUMERICSERV: bool = false,
_4: u4 = 0,
ALL: bool = false,
V4MAPPED_CFG: bool = false,
ADDRCONFIG: bool = false,
V4MAPPED: bool = false,
_: u20 = 0,
} else switch (native_os) {
.linux, .emscripten => linux.AI,
.dragonfly, .haiku, .freebsd => packed struct(u32) {
PASSIVE: bool = false,
CANONNAME: bool = false,
NUMERICHOST: bool = false,
NUMERICSERV: bool = false,
_4: u4 = 0,
ALL: bool = false,
V4MAPPED_CFG: bool = false,
ADDRCONFIG: bool = false,
V4MAPPED: bool = false,
_: u20 = 0,
},
.netbsd => packed struct(u32) {
PASSIVE: bool = false,
CANONNAME: bool = false,
NUMERICHOST: bool = false,
NUMERICSERV: bool = false,
_4: u6 = 0,
ADDRCONFIG: bool = false,
_: u21 = 0,
},
.solaris, .illumos => packed struct(u32) {
V4MAPPED: bool = false,
ALL: bool = false,
ADDRCONFIG: bool = false,
PASSIVE: bool = false,
CANONNAME: bool = false,
NUMERICHOST: bool = false,
NUMERICSERV: bool = false,
_: u25 = 0,
},
.openbsd => packed struct(u32) {
PASSIVE: bool = false,
CANONNAME: bool = false,
NUMERICHOST: bool = false,
_3: u1 = 0,
NUMERICSERV: bool = false,
_5: u1 = 0,
ADDRCONFIG: bool = false,
_: u25 = 0,
},
.macos, .ios, .tvos, .watchos, .visionos => packed struct(u32) {
PASSIVE: bool = false,
CANONNAME: bool = false,
NUMERICHOST: bool = false,
_3: u5 = 0,
ALL: bool = false,
V4MAPPED_CFG: bool = false,
ADDRCONFIG: bool = false,
V4MAPPED: bool = false,
NUMERICSERV: bool = false,
_: u19 = 0,
},
.windows => ws2_32.AI,
// https://github.com/SerenityOS/serenity/blob/d510d2aeb2facbd8f6c383d70fd1b033e1fee5dd/Userland/Libraries/LibC/netdb.h#L90-L96
.serenity => packed struct(c_int) {
PASSIVE: bool = false,
CANONNAME: bool = false,
NUMERICHOST: bool = false,
NUMERICSERV: bool = false,
V4MAPPED: bool = false,
ALL: bool = false,
ADDRCONFIG: bool = false,
_: std.meta.Int(.unsigned, @bitSizeOf(c_int) - 7) = 0,
},
else => void,
}