ifaddrs-musl.h 748 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef _IFADDRS_H
  2. #define _IFADDRS_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #if !__linux__
  7. #error ifaddrs-musl.h only works with a Linux kernel
  8. #endif
  9. #if __ANDROID__
  10. #error ifaddrs-musl.h does not work with Android
  11. #endif
  12. #include <features.h>
  13. #include <netinet/in.h>
  14. #include <sys/socket.h>
  15. struct ifaddrs {
  16. struct ifaddrs *ifa_next;
  17. char *ifa_name;
  18. unsigned ifa_flags;
  19. struct sockaddr *ifa_addr;
  20. struct sockaddr *ifa_netmask;
  21. union {
  22. struct sockaddr *ifu_broadaddr;
  23. struct sockaddr *ifu_dstaddr;
  24. } ifa_ifu;
  25. void *ifa_data;
  26. };
  27. #define ifa_broadaddr ifa_ifu.ifu_broadaddr
  28. #define ifa_dstaddr ifa_ifu.ifu_dstaddr
  29. void freeifaddrs(struct ifaddrs *ifp);
  30. int getifaddrs(struct ifaddrs **ifap);
  31. #ifdef __cplusplus
  32. }
  33. #endif
  34. #endif