[ipxe-devel] [RFC 2/3] [net] Add IN6_ARE_ADDR_EQUAL

Thomas Bächler thomas at archlinux.org
Wed Feb 3 19:12:43 GMT 2016


This macro checks if two addresses are equal.
---
 src/include/ipxe/in.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/include/ipxe/in.h b/src/include/ipxe/in.h
index 61c60d7..f1cfbd1 100644
--- a/src/include/ipxe/in.h
+++ b/src/include/ipxe/in.h
@@ -73,6 +73,12 @@ struct in6_addr {
 	( IN6_IS_ADDR_LINKLOCAL (addr) || 					\
 	  ( IN6_IS_ADDR_MULTICAST (addr) && ( *( ( const uint16_t * ) (addr) ) & htons( 0x000f ) ) == htons( 0x0002 ) ) )
 
+#define IN6_ARE_ADDR_EQUAL( first, second )						\
+	( ( ( ( const uint32_t * ) (first) )[0] ) == ( ( ( const uint32_t * ) (second) )[0] ) && \
+	  ( ( ( const uint32_t * ) (first) )[1] ) == ( ( ( const uint32_t * ) (second) )[1] ) && \
+	  ( ( ( const uint32_t * ) (first) )[2] ) == ( ( ( const uint32_t * ) (second) )[2] ) && \
+	  ( ( ( const uint32_t * ) (first) )[3] ) == ( ( ( const uint32_t * ) (second) )[3] ) )
+
 /**
  * IPv4 socket address
  */
-- 
2.6.3


More information about the ipxe-devel mailing list