LibC: Add stubs for {get,free}ifaddrs

These are needed for our libuv port
This commit is contained in:
Bananymous 2025-08-07 02:20:55 +03:00
parent 6240374dd1
commit e3ecf05866
3 changed files with 48 additions and 0 deletions

View File

@ -12,6 +12,7 @@ set(LIBC_SOURCES
fenv.cpp fenv.cpp
ftw.cpp ftw.cpp
grp.cpp grp.cpp
ifaddrs.cpp
inttypes.cpp inttypes.cpp
langinfo.cpp langinfo.cpp
libgen.cpp libgen.cpp

View File

@ -0,0 +1,15 @@
#include <ifaddrs.h>
#include <BAN/Assert.h>
int getifaddrs(struct ifaddrs** ifap)
{
(void)ifap;
ASSERT_NOT_REACHED();
}
void freeifaddrs(struct ifaddrs* ifa)
{
(void)ifa;
ASSERT_NOT_REACHED();
}

View File

@ -0,0 +1,32 @@
#ifndef _IFADDRS_H
#define _IFADDRS_H 1
// https://man7.org/linux/man-pages/man3/getifaddrs.3.html
#include <sys/cdefs.h>
__BEGIN_DECLS
struct ifaddrs
{
struct ifaddrs* ifa_next; /* Next item in list */
char* ifa_name; /* Name of interface */
unsigned int ifa_flags; /* Flags from SIOCGIFFLAGS */
struct sockaddr* ifa_addr; /* Address of interface */
struct sockaddr* ifa_netmask; /* Netmask of interface */
union {
struct sockaddr* ifu_broadaddr; /* Broadcast address of interface */
struct sockaddr* ifu_dstaddr; /* Point-to-point destination address */
} ifa_ifu;
void* ifa_data; /* Address-specific data */
};
#define ifa_broadaddr ifa_ifu.ifu_broadaddr
#define ifa_dstaddr ifa_ifu.ifu_dstaddr
int getifaddrs(struct ifaddrs **ifap);
void freeifaddrs(struct ifaddrs *ifa);
__END_DECLS
#endif