Lines Matching refs:a

33 #define IN6_IS_ADDR_UNSPECIFIED(a)	\  argument
34 ((*(const uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
35 (*(const uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
36 (*(const uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
37 (*(const uint32_t *)(const void *)(&(a)->s6_addr[12]) == 0))
39 #define IN6_IS_ADDR_LOOPBACK(a) \ argument
40 ((*(const uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
41 (*(const uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
42 (*(const uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
43 (*(const uint32_t *)(const void *)(&(a)->s6_addr[12]) == ntohl(1)))
45 #define IN6_IS_ADDR_V4COMPAT(a) \ argument
46 ((*(const uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
47 (*(const uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
48 (*(const uint32_t *)(const void *)(&(a)->s6_addr[8]) == 0) && \
49 (*(const uint32_t *)(const void *)(&(a)->s6_addr[12]) != 0) && \
50 (*(const uint32_t *)(const void *)(&(a)->s6_addr[12]) != ntohl(1)))
52 #define IN6_IS_ADDR_V4MAPPED(a) \ argument
53 ((*(const uint32_t *)(const void *)(&(a)->s6_addr[0]) == 0) && \
54 (*(const uint32_t *)(const void *)(&(a)->s6_addr[4]) == 0) && \
55 (*(const uint32_t *)(const void *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
57 #define IN6_IS_ADDR_LINKLOCAL(a) \ argument
58 (((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80))
60 #define IN6_IS_ADDR_SITELOCAL(a) \ argument
61 (((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
64 #define IN6_IS_ADDR_ULA(a) \ argument
65 (((a)->s6_addr[0] & 0xfe) == 0xfc)
67 #define IN6_IS_ADDR_MULTICAST(a) \ argument
68 (((__const uint8_t *) (a))[0] == 0xff)
78 #define IPV6_ADDR_MC_SCOPE(a) \ argument
79 ((a)->s6_addr[1] & 0x0f)
81 #define IN6_IS_ADDR_MC_NODELOCAL(a) \ argument
82 (IN6_IS_ADDR_MULTICAST(a) && \
83 (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_NODELOCAL))
84 #define IN6_IS_ADDR_MC_LINKLOCAL(a) \ argument
85 (IN6_IS_ADDR_MULTICAST(a) && \
86 (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_LINKLOCAL))
87 #define IN6_IS_ADDR_MC_SITELOCAL(a) \ argument
88 (IN6_IS_ADDR_MULTICAST(a) && \
89 (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_SITELOCAL))
90 #define IN6_IS_ADDR_MC_ORGLOCAL(a) \ argument
91 (IN6_IS_ADDR_MULTICAST(a) && \
92 (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_ORGLOCAL))
93 #define IN6_IS_ADDR_MC_GLOBAL(a) \ argument
94 (IN6_IS_ADDR_MULTICAST(a) && \
95 (IPV6_ADDR_MC_SCOPE(a) == IPV6_ADDR_SCOPE_GLOBAL))
97 #define IN6_ARE_ADDR_EQUAL(a, b) \ argument
98 (memcmp(&(a)->s6_addr[0], &(b)->s6_addr[0], sizeof(struct in6_addr)) == 0)