X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Fnetinet%2Fin.h;h=509640b84838a49b84612b49cddd68533a691a71;hb=ac5d085691e5a797a21ae36111aa0b274e1cf4ba;hp=44018f1454613bda3e1204b4252edad81bbd754f;hpb=c8175666f22952d1b0ea280b217d8896f0c24bec;p=musl diff --git a/include/netinet/in.h b/include/netinet/in.h index 44018f14..509640b8 100644 --- a/include/netinet/in.h +++ b/include/netinet/in.h @@ -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 @@ -132,6 +138,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 +244,7 @@ struct in6_pktinfo unsigned ipi6_ifindex; }; -struct in6_mutinfo +struct ip6_mtuinfo { struct sockaddr_in6 ip6m_addr; uint32_t ip6m_mtu; @@ -300,4 +311,8 @@ struct in6_mutinfo #define IPV6_RTHDR_TYPE_0 0 +#ifdef __cplusplus +} +#endif + #endif