]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: net_helper: add functions for pointers
authorFrédéric Lécaille <flecaille@haproxy.com>
Tue, 6 Jul 2021 12:34:46 +0000 (14:34 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 23 Sep 2021 13:27:25 +0000 (15:27 +0200)
Add two functions to read/write pointer values to/from vectors.

include/haproxy/net_helper.h

index 8b9f68b40704a18390f70241fad083c0e476499e..f019d30ff1eb4fe10cdc9383d74a19234e0409a5 100644 (file)
@@ -75,6 +75,22 @@ static inline void write_u64(void *p, const uint64_t u64)
        u->u64 = u64;
 }
 
+/* Read a void* in native host order */
+static inline void *read_ptr(const void *p)
+{
+       const union {  void *ptr; } __attribute__((packed))*u = p;
+       return u->ptr;
+}
+
+/* Write a void* in native host order */
+static inline void write_ptr(void *p, const void *ptr)
+{
+       if (sizeof(ptr) == 4)
+               return write_u32(p, (uintptr_t)ptr);
+       else
+               return write_u64(p, (uintptr_t)ptr);
+}
+
 /* Read a possibly wrapping number of bytes <bytes> into destination <dst>. The
  * first segment is composed of <s1> bytes at p1. The remaining byte(s), if any,
  * are read from <p2>. <s1> may be zero and may also be larger than <bytes>. The