17777dab0Sopenharmony_ci#ifndef _IFADDRS_H 27777dab0Sopenharmony_ci#define _IFADDRS_H 37777dab0Sopenharmony_ci 47777dab0Sopenharmony_ci#ifdef __cplusplus 57777dab0Sopenharmony_ciextern "C" { 67777dab0Sopenharmony_ci#endif 77777dab0Sopenharmony_ci 87777dab0Sopenharmony_ci#include <features.h> 97777dab0Sopenharmony_ci#include <netinet/in.h> 107777dab0Sopenharmony_ci#include <sys/socket.h> 117777dab0Sopenharmony_ci 127777dab0Sopenharmony_cistruct ifaddrs { 137777dab0Sopenharmony_ci struct ifaddrs *ifa_next; 147777dab0Sopenharmony_ci char *ifa_name; 157777dab0Sopenharmony_ci unsigned ifa_flags; 167777dab0Sopenharmony_ci struct sockaddr *ifa_addr; 177777dab0Sopenharmony_ci struct sockaddr *ifa_netmask; 187777dab0Sopenharmony_ci union { 197777dab0Sopenharmony_ci struct sockaddr *ifu_broadaddr; 207777dab0Sopenharmony_ci struct sockaddr *ifu_dstaddr; 217777dab0Sopenharmony_ci } ifa_ifu; 227777dab0Sopenharmony_ci void *ifa_data; 237777dab0Sopenharmony_ci}; 247777dab0Sopenharmony_ci#define ifa_broadaddr ifa_ifu.ifu_broadaddr 257777dab0Sopenharmony_ci#define ifa_dstaddr ifa_ifu.ifu_dstaddr 267777dab0Sopenharmony_ci 277777dab0Sopenharmony_civoid freeifaddrs(struct ifaddrs *); 287777dab0Sopenharmony_ciint getifaddrs(struct ifaddrs **); 297777dab0Sopenharmony_ci 307777dab0Sopenharmony_ci#ifdef __cplusplus 317777dab0Sopenharmony_ci} 327777dab0Sopenharmony_ci#endif 337777dab0Sopenharmony_ci 347777dab0Sopenharmony_ci#endif 357777dab0Sopenharmony_ci 36