add some new-ish IPPROTO constants that were missing
[musl] / include / netinet / in.h
index 44018f1..1086f07 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef        _NETINET_IN_H
 #define        _NETINET_IN_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define __NEED_in_addr_t
 #define __NEED_in_port_t
 #define __NEED_sa_family_t
@@ -23,10 +27,12 @@ struct in6_addr
 {
        union {
                uint8_t __s6_addr[16];
+               uint16_t __s6_addr16[8];
                uint32_t __s6_addr32[4];
        } __in6_union;
 };
 #define s6_addr __in6_union.__s6_addr
+#define s6_addr16 __in6_union.__s6_addr16
 #define s6_addr32 __in6_union.__s6_addr32
 
 struct sockaddr_in6
@@ -65,6 +71,7 @@ uint32_t ntohl(uint32_t);
 uint16_t ntohs(uint16_t);
 
 #define IPPROTO_IP       0
+#define IPPROTO_HOPOPTS  0
 #define IPPROTO_ICMP     1
 #define IPPROTO_IGMP     2
 #define IPPROTO_IPIP     4
@@ -74,6 +81,7 @@ uint16_t ntohs(uint16_t);
 #define IPPROTO_UDP      17
 #define IPPROTO_IDP      22
 #define IPPROTO_TP       29
+#define IPPROTO_DCCP     33
 #define IPPROTO_IPV6     41
 #define IPPROTO_ROUTING  43
 #define IPPROTO_FRAGMENT 44
@@ -88,7 +96,10 @@ uint16_t ntohs(uint16_t);
 #define IPPROTO_ENCAP    98
 #define IPPROTO_PIM      103
 #define IPPROTO_COMP     108
+#define IPPROTO_SCTP     132
+#define IPPROTO_UDPLITE  136
 #define IPPROTO_RAW      255
+#define IPPROTO_MAX      256
 
 #define IN6_IS_ADDR_UNSPECIFIED(a) \
         (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
@@ -132,6 +143,11 @@ uint16_t ntohs(uint16_t);
 #define IN6_IS_ADDR_MC_GLOBAL(a) \
         (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe))
 
+#define __ARE_4_EQUAL(a,b) \
+       (!( 0[a]-0[b] | 1[a]-1[b] | 2[a]-2[b] | 3[a]-3[b] ))
+#define IN6_ARE_ADDR_EQUAL(a,b) \
+       __ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b))
+
 #define        IN_CLASSA(a)            ((((in_addr_t)(a)) & 0x80000000) == 0)
 #define        IN_CLASSA_NET           0xff000000
 #define        IN_CLASSA_NSHIFT        24
@@ -233,7 +249,7 @@ struct in6_pktinfo
        unsigned ipi6_ifindex;
 };
 
-struct in6_mutinfo
+struct ip6_mtuinfo
 {
        struct sockaddr_in6 ip6m_addr;
        uint32_t ip6m_mtu;
@@ -300,4 +316,8 @@ struct in6_mutinfo
 
 #define IPV6_RTHDR_TYPE_0       0
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif