Lines Matching refs:a
34 #define IN6_IS_ADDR_UNSPECIFIED(a) \ argument
35 ((*(const uint32_t*)(&(a)->s6_addr[0]) == 0) && \
36 (*(const uint32_t*)(&(a)->s6_addr[4]) == 0) && \
37 (*(const uint32_t*)(&(a)->s6_addr[8]) == 0) && \
38 (*(const uint32_t*)(&(a)->s6_addr[12]) == 0))
40 #define IN6_IS_ADDR_LOOPBACK(a) \ argument
41 ((*(const uint32_t*)(&(a)->s6_addr[0]) == 0) && \
42 (*(const uint32_t*)(&(a)->s6_addr[4]) == 0) && \
43 (*(const uint32_t*)(&(a)->s6_addr[8]) == 0) && \
44 (*(const uint32_t*)(&(a)->s6_addr[12]) == ntohl(1)))
46 #define IN6_IS_ADDR_V4COMPAT(a) \ argument
47 ((*(const uint32_t*)(&(a)->s6_addr[0]) == 0) && \
48 (*(const uint32_t*)(&(a)->s6_addr[4]) == 0) && \
49 (*(const uint32_t*)(&(a)->s6_addr[8]) == 0) && \
50 (*(const uint32_t*)(&(a)->s6_addr[12]) != 0) && \
51 (*(const uint32_t*)(&(a)->s6_addr[12]) != ntohl(1)))
53 #define IN6_IS_ADDR_V4MAPPED(a) \ argument
54 ((*(const uint32_t*)(&(a)->s6_addr[0]) == 0) && \
55 (*(const uint32_t*)(&(a)->s6_addr[4]) == 0) && \
56 (*(const uint32_t*)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
58 #define __bionic_s6_addr(a) ((const uint8_t*)(a)) argument
60 #define IN6_IS_ADDR_LINKLOCAL(a) \ argument
61 ((__bionic_s6_addr(a)[0] == 0xfe) && ((__bionic_s6_addr(a)[1] & 0xc0) == 0x80))
63 #define IN6_IS_ADDR_SITELOCAL(a) \ argument
64 ((__bionic_s6_addr(a)[0] == 0xfe) && ((__bionic_s6_addr(a)[1] & 0xc0) == 0xc0))
66 #define IN6_IS_ADDR_MULTICAST(a) (__bionic_s6_addr(a)[0] == 0xff) argument
68 #define IN6_IS_ADDR_ULA(a) ((__bionic_s6_addr(a)[0] & 0xfe) == 0xfc) argument
77 #define IPV6_ADDR_MC_SCOPE(a) (__bionic_s6_addr(a)[1] & 0x0f) argument
79 #define IN6_IS_ADDR_MC_NODELOCAL(a) \ argument
80 (IN6_IS_ADDR_MULTICAST(a) && (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_NODELOCAL))
81 #define IN6_IS_ADDR_MC_LINKLOCAL(a) \ argument
82 (IN6_IS_ADDR_MULTICAST(a) && (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_LINKLOCAL))
83 #define IN6_IS_ADDR_MC_SITELOCAL(a) \ argument
84 (IN6_IS_ADDR_MULTICAST(a) && (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_SITELOCAL))
85 #define IN6_IS_ADDR_MC_ORGLOCAL(a) \ argument
86 (IN6_IS_ADDR_MULTICAST(a) && (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_ORGLOCAL))
87 #define IN6_IS_ADDR_MC_GLOBAL(a) \ argument
88 (IN6_IS_ADDR_MULTICAST(a) && (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_GLOBAL))
90 #define IN6_ARE_ADDR_EQUAL(a, b) \ argument
91 (memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof(struct in6_addr)) == 0)