semaphores: fix missed wakes from ABA bug in waiter count logic
[musl] / include / net / if.h
index 2ae5f89..774cbff 100644 (file)
@@ -1,10 +1,15 @@
 #ifndef _NET_IF_H
 #define _NET_IF_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <features.h>
+
 #define IF_NAMESIZE 16
 
-struct if_nameindex
-{
+struct if_nameindex {
        unsigned int if_index;
        char *if_name;
 };
@@ -17,7 +22,7 @@ void if_freenameindex (struct if_nameindex *);
 
 
 
-#ifdef _GNU_SOURCE
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 
 #include <sys/socket.h>
 
@@ -37,6 +42,11 @@ void if_freenameindex (struct if_nameindex *);
 #define IFF_PORTSEL 0x2000
 #define IFF_AUTOMEDIA 0x4000
 #define IFF_DYNAMIC 0x8000
+#define IFF_LOWER_UP 0x10000
+#define IFF_DORMANT 0x20000
+#define IFF_ECHO 0x40000
+#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST| \
+        IFF_ECHO|IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
 
 struct ifaddr {
        struct sockaddr ifa_addr;
@@ -79,7 +89,7 @@ struct ifreq {
                struct ifmap ifru_map;
                char ifru_slave[IFNAMSIZ];
                char ifru_newname[IFNAMSIZ];
-               void *ifru_data;
+               char *ifru_data;
        } ifr_ifru;
 };
 
@@ -106,7 +116,7 @@ struct ifreq {
 struct ifconf {
        int ifc_len;            
        union {
-               void *ifcu_buf;
+               char *ifcu_buf;
                struct ifreq *ifcu_req;
        } ifc_ifcu;
 };
@@ -115,8 +125,17 @@ struct ifconf {
 #define ifc_req                ifc_ifcu.ifcu_req
 #define _IOT_ifconf _IOT(_IOTS(struct ifconf),1,0,0,0,0)
 
-#endif
+#define __UAPI_DEF_IF_IFCONF                                    0
+#define __UAPI_DEF_IF_IFMAP                                     0
+#define __UAPI_DEF_IF_IFNAMSIZ                                  0
+#define __UAPI_DEF_IF_IFREQ                                     0
+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS                          0
+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO    0
 
+#endif
 
+#ifdef __cplusplus
+}
+#endif
 
 #endif