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