Add POSIX Linux support for net_if and netdb.

This commit is contained in:
Isaac Andrade
2024-09-02 14:25:32 -06:00
parent a248d49f34
commit 35f961d80f
2 changed files with 37 additions and 3 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ foreign lib {
if_freenameindex :: proc(ptr: ^if_nameindex_t) --- if_freenameindex :: proc(ptr: ^if_nameindex_t) ---
} }
when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS == .OpenBSD { when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS == .OpenBSD || ODIN_OS == .Linux {
// NOTE: `_t` suffix added due to name conflict. // NOTE: `_t` suffix added due to name conflict.
+36 -2
View File
@@ -318,7 +318,7 @@ Info_Errno :: enum c.int {
OVERFLOW = EAI_OVERFLOW, OVERFLOW = EAI_OVERFLOW,
} }
when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS == .OpenBSD { when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS == .OpenBSD || ODIN_OS == .OpenBSD {
hostent :: struct { hostent :: struct {
h_name: cstring, /* [PSX] official name of host */ h_name: cstring, /* [PSX] official name of host */
@@ -412,9 +412,28 @@ when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS
NI_NUMERICSERV :: 2 NI_NUMERICSERV :: 2
NI_NUMERICSCOPE :: 32 NI_NUMERICSCOPE :: 32
NI_DGRAM :: 16 NI_DGRAM :: 16
} else when ODIN_OS == .Linux {
AI_PASSIVE :: 0x001
AI_CANONNAME :: 0x002
AI_NUMERICHOST :: 0x004
AI_NUMERICSERV :: 0x400
AI_V4MAPPED :: 0x008
AI_ALL :: 0x010
AI_ADDRCONFIG :: 0x020
NI_NOFQDN :: 4
NI_NUMERICHOST :: 1
NI_NAMEREQD :: 8
NI_NUMERICSERV :: 2
NI_NUMERICSCOPE :: 0 // NOTE: not implemented
NI_DGRAM :: 16
} }
when ODIN_OS == .OpenBSD { when ODIN_OS == .OpenBSD {
EAI_AGAIN :: -3 EAI_AGAIN :: -3
EAI_BADFLAGS :: -1 EAI_BADFLAGS :: -1
EAI_FAIL :: -4 EAI_FAIL :: -4
@@ -425,7 +444,22 @@ when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS
EAI_SOCKTYPE :: -7 EAI_SOCKTYPE :: -7
EAI_SYSTEM :: -11 EAI_SYSTEM :: -11
EAI_OVERFLOW :: -14 EAI_OVERFLOW :: -14
} else when ODIN_OS == .Linux {
EAI_AGAIN :: -3
EAI_BADFLAGS :: -1
EAI_FAIL :: -4
EAI_FAMILY :: -6
EAI_MEMORY :: -10
EAI_NONAME :: -2
EAI_SERVICE :: -8
EAI_SOCKTYPE :: -7
EAI_SYSTEM :: -11
EAI_OVERFLOW :: -12
} else { } else {
EAI_AGAIN :: 2 EAI_AGAIN :: 2
EAI_BADFLAGS :: 3 EAI_BADFLAGS :: 3
EAI_FAIL :: 4 EAI_FAIL :: 4
@@ -438,6 +472,6 @@ when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS
EAI_OVERFLOW :: 14 EAI_OVERFLOW :: 14
} }
}else { } else {
#panic("posix is unimplemented for the current target") #panic("posix is unimplemented for the current target")
} }