View | Details | Raw Unified | Return to bug 32446
Collapse All | Expand All

(-)sys/netinet6/in6.h (-16 / +16 lines)
Lines 250-286 Link Here
250
 * Unspecified
250
 * Unspecified
251
 */
251
 */
252
#define IN6_IS_ADDR_UNSPECIFIED(a)	\
252
#define IN6_IS_ADDR_UNSPECIFIED(a)	\
253
	((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) &&	\
253
	((*(const u_int32_t *)(&(a)->s6_addr[0]) == 0) &&	\
254
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) &&	\
254
	 (*(const u_int32_t *)(&(a)->s6_addr[4]) == 0) &&	\
255
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == 0) &&	\
255
	 (*(const u_int32_t *)(&(a)->s6_addr[8]) == 0) &&	\
256
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[12]) == 0))
256
	 (*(const u_int32_t *)(&(a)->s6_addr[12]) == 0))
257
257
258
/*
258
/*
259
 * Loopback
259
 * Loopback
260
 */
260
 */
261
#define IN6_IS_ADDR_LOOPBACK(a)		\
261
#define IN6_IS_ADDR_LOOPBACK(a)		\
262
	((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) &&	\
262
	((*(const u_int32_t *)(&(a)->s6_addr[0]) == 0) &&	\
263
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) &&	\
263
	 (*(const u_int32_t *)(&(a)->s6_addr[4]) == 0) &&	\
264
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == 0) &&	\
264
	 (*(const u_int32_t *)(&(a)->s6_addr[8]) == 0) &&	\
265
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[12]) == ntohl(1)))
265
	 (*(const u_int32_t *)(&(a)->s6_addr[12]) == ntohl(1)))
266
266
267
/*
267
/*
268
 * IPv4 compatible
268
 * IPv4 compatible
269
 */
269
 */
270
#define IN6_IS_ADDR_V4COMPAT(a)		\
270
#define IN6_IS_ADDR_V4COMPAT(a)		\
271
	((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) &&	\
271
	((*(const u_int32_t *)(&(a)->s6_addr[0]) == 0) &&	\
272
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) &&	\
272
	 (*(const u_int32_t *)(&(a)->s6_addr[4]) == 0) &&	\
273
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == 0) &&	\
273
	 (*(const u_int32_t *)(&(a)->s6_addr[8]) == 0) &&	\
274
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[12]) != 0) &&	\
274
	 (*(const u_int32_t *)(&(a)->s6_addr[12]) != 0) &&	\
275
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[12]) != ntohl(1)))
275
	 (*(const u_int32_t *)(&(a)->s6_addr[12]) != ntohl(1)))
276
276
277
/*
277
/*
278
 * Mapped
278
 * Mapped
279
 */
279
 */
280
#define IN6_IS_ADDR_V4MAPPED(a)		      \
280
#define IN6_IS_ADDR_V4MAPPED(a)		      \
281
	((*(const u_int32_t *)(const void *)(&(a)->s6_addr[0]) == 0) &&	\
281
	((*(const u_int32_t *)(&(a)->s6_addr[0]) == 0) &&	\
282
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[4]) == 0) &&	\
282
	 (*(const u_int32_t *)(&(a)->s6_addr[4]) == 0) &&	\
283
	 (*(const u_int32_t *)(const void *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
283
	 (*(const u_int32_t *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff)))
284
284
285
/*
285
/*
286
 * KAME Scope Values
286
 * KAME Scope Values

Return to bug 32446