On FreeBSD the structure is defined like this in netinet6/in6.h:
92 /* 93 * IPv6 address 94 */ 95 struct in6_addr { 96 union { 97 uint8_t __u6_addr8[16]; 98 uint16_t __u6_addr16[8]; 99 uint32_t __u6_addr32[4]; 100 } __u6_addr; /* 128-bit IP6 address */ 101 }; 102 103 #define s6_addr __u6_addr.__u6_addr8 104 #ifdef _KERNEL /* XXX nonstandard */ 105 #define s6_addr8 __u6_addr.__u6_addr8 106 #define s6_addr16 __u6_addr.__u6_addr16 107 #define s6_addr32 __u6_addr.__u6_addr32 108 #endif
On FreeBSD the structure is defined like this in netinet6/in6.h:
92 /* __u6_addr8 __u6_addr8 __u6_addr16 __u6_addr32
93 * IPv6 address
94 */
95 struct in6_addr {
96 union {
97 uint8_t __u6_addr8[16];
98 uint16_t __u6_addr16[8];
99 uint32_t __u6_addr32[4];
100 } __u6_addr; /* 128-bit IP6 address */
101 };
102
103 #define s6_addr __u6_addr.
104 #ifdef _KERNEL /* XXX nonstandard */
105 #define s6_addr8 __u6_addr.
106 #define s6_addr16 __u6_addr.
107 #define s6_addr32 __u6_addr.
108 #endif