mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2025-08-04 05:24:37 +08:00
Change IP6_ADDR/IP_ADDR6 to initialize a full IPv6 address (e.g. use with PP_HTONL) - renamed old IP6_ADDR() to IP6_ADDR_PART()
This commit is contained in:
parent
ee2d01ed88
commit
7754f96549
@ -78,7 +78,7 @@ typedef struct ip6_addr_packed ip6_addr_p_t;
|
|||||||
|
|
||||||
#if BYTE_ORDER == BIG_ENDIAN
|
#if BYTE_ORDER == BIG_ENDIAN
|
||||||
/** Set an IPv6 partial address given by byte-parts. */
|
/** Set an IPv6 partial address given by byte-parts. */
|
||||||
#define IP6_ADDR(ip6addr, index, a,b,c,d) \
|
#define IP6_ADDR_PART(ip6addr, index, a,b,c,d) \
|
||||||
(ip6addr)->addr[index] = ((u32_t)((a) & 0xff) << 24) | \
|
(ip6addr)->addr[index] = ((u32_t)((a) & 0xff) << 24) | \
|
||||||
((u32_t)((b) & 0xff) << 16) | \
|
((u32_t)((b) & 0xff) << 16) | \
|
||||||
((u32_t)((c) & 0xff) << 8) | \
|
((u32_t)((c) & 0xff) << 8) | \
|
||||||
@ -86,13 +86,21 @@ typedef struct ip6_addr_packed ip6_addr_p_t;
|
|||||||
#else
|
#else
|
||||||
/** Set an IPv6 partial address given by byte-parts.
|
/** Set an IPv6 partial address given by byte-parts.
|
||||||
Little-endian version, stored in network order (no htonl). */
|
Little-endian version, stored in network order (no htonl). */
|
||||||
#define IP6_ADDR(ip6addr, index, a,b,c,d) \
|
#define IP6_ADDR_PART(ip6addr, index, a,b,c,d) \
|
||||||
(ip6addr)->addr[index] = ((u32_t)((d) & 0xff) << 24) | \
|
(ip6addr)->addr[index] = ((u32_t)((d) & 0xff) << 24) | \
|
||||||
((u32_t)((c) & 0xff) << 16) | \
|
((u32_t)((c) & 0xff) << 16) | \
|
||||||
((u32_t)((b) & 0xff) << 8) | \
|
((u32_t)((b) & 0xff) << 8) | \
|
||||||
(u32_t)((a) & 0xff)
|
(u32_t)((a) & 0xff)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/** Set a full IPv6 address by passing the 4 u32_t indices in network byte order
|
||||||
|
(use PP_HTONL() for constants) */
|
||||||
|
#define IP6_ADDR(ip6addr, idx0, idx1, idx2, idx3) do { \
|
||||||
|
(ip6addr)->addr[0] = idx0; \
|
||||||
|
(ip6addr)->addr[1] = idx1; \
|
||||||
|
(ip6addr)->addr[2] = idx2; \
|
||||||
|
(ip6addr)->addr[3] = idx3; } while(0)
|
||||||
|
|
||||||
/** Access address in 16-bit block */
|
/** Access address in 16-bit block */
|
||||||
#define IP6_ADDR_BLOCK1(ip6addr) ((u16_t)(htonl((ip6addr)->addr[0]) >> 16) & 0xffff)
|
#define IP6_ADDR_BLOCK1(ip6addr) ((u16_t)(htonl((ip6addr)->addr[0]) >> 16) & 0xffff)
|
||||||
#define IP6_ADDR_BLOCK2(ip6addr) ((u16_t)(htonl((ip6addr)->addr[0])) & 0xffff)
|
#define IP6_ADDR_BLOCK2(ip6addr) ((u16_t)(htonl((ip6addr)->addr[0])) & 0xffff)
|
||||||
|
@ -85,7 +85,7 @@ static ip4_addr_t* ip_2_ip4(const ip_addr_t *ipaddr)
|
|||||||
|
|
||||||
#define IP_ADDR4(ipaddr,a,b,c,d) do { IP4_ADDR(ip_2_ip4(ipaddr),a,b,c,d); \
|
#define IP_ADDR4(ipaddr,a,b,c,d) do { IP4_ADDR(ip_2_ip4(ipaddr),a,b,c,d); \
|
||||||
IP_SET_TYPE_VAL(*(ipaddr), IPADDR_TYPE_V4); } while(0)
|
IP_SET_TYPE_VAL(*(ipaddr), IPADDR_TYPE_V4); } while(0)
|
||||||
#define IP_ADDR6(ipaddr,idx,a,b,c,d) do { IP6_ADDR(ip_2_ip6(ipaddr),idx,a,b,c,d); \
|
#define IP_ADDR6(ipaddr,i0,i1,i2,i3) do { IP6_ADDR(ip_2_ip6(ipaddr),i0,i1,i2,i3); \
|
||||||
IP_SET_TYPE_VAL(*(ipaddr), IPADDR_TYPE_V6); } while(0)
|
IP_SET_TYPE_VAL(*(ipaddr), IPADDR_TYPE_V6); } while(0)
|
||||||
|
|
||||||
#define ip_addr_copy(dest, src) do{if(IP_IS_V6_VAL(src)){ \
|
#define ip_addr_copy(dest, src) do{if(IP_IS_V6_VAL(src)){ \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user