summaryrefslogtreecommitdiffstats
path: root/src/vppinfra/clib.h
diff options
context:
space:
mode:
authorBenoît Ganne <bganne@cisco.com>2020-07-07 16:32:22 +0200
committerDamjan Marion <dmarion@me.com>2020-07-16 13:21:27 +0000
commit5e60c17f49082b7731778e81b58177177a31b58f (patch)
treeeb38ab606efad2bb06adf92fc9c9b161c6b111ab /src/vppinfra/clib.h
parente5f0050c7a5d411f96af6401797529d58825e2af (diff)
vppinfra: enable STATIC_ASSERT with clang
For some reason clang does not support &((struct foo*)0)->field in static assertion contrary to gcc. Use offsetof() macro implementation provided by both compilers instead. Type: fix Change-Id: I3311cdd29c5861e45dc0ef92f2bbd66242ca73b8 Signed-off-by: Benoît Ganne <bganne@cisco.com>
Diffstat (limited to 'src/vppinfra/clib.h')
-rw-r--r--src/vppinfra/clib.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/vppinfra/clib.h b/src/vppinfra/clib.h
index be21cad604b..6c82f869653 100644
--- a/src/vppinfra/clib.h
+++ b/src/vppinfra/clib.h
@@ -38,6 +38,7 @@
#ifndef included_clib_h
#define included_clib_h
+#include <stddef.h>
#include <vppinfra/config.h>
#ifdef __x86_64__
@@ -66,8 +67,8 @@
#define ARRAY_LEN(x) (sizeof (x)/sizeof (x[0]))
#define _STRUCT_FIELD(t,f) (((t *) 0)->f)
-#define STRUCT_OFFSET_OF(t,f) ((uword) & _STRUCT_FIELD (t, f))
-#define STRUCT_BIT_OFFSET_OF(t,f) (BITS(u8) * (uword) & _STRUCT_FIELD (t, f))
+#define STRUCT_OFFSET_OF(t,f) offsetof(t, f)
+#define STRUCT_BIT_OFFSET_OF(t,f) (BITS(u8) * STRUCT_OFFSET_OF (t, f))
#define STRUCT_SIZE_OF(t,f) (sizeof (_STRUCT_FIELD (t, f)))
#define STRUCT_BITS_OF(t,f) (BITS (_STRUCT_FIELD (t, f)))
#define STRUCT_ARRAY_LEN(t,f) ARRAY_LEN (_STRUCT_FIELD (t, f))
/tr> d---------devices242logstatsplain -rw-r--r--dir.dox973logstatsplain d---------dpo1520logstatsplain -rw-r--r--error.c1192logstatsplain -rw-r--r--error.h12554logstatsplain d---------ethernet999logstatsplain d---------feature236logstatsplain d---------fib2795logstatsplain d---------flow262logstatsplain -rw-r--r--format_fns.h794logstatsplain -rw-r--r--global_funcs.h949logstatsplain d---------gre36logstatsplain d---------gso398logstatsplain -rw-r--r--handoff.c9089logstatsplain d---------hash262logstatsplain d---------hdlc207logstatsplain -rw-r--r--interface.api24995logstatsplain -rw-r--r--interface.c57138logstatsplain -rw-r--r--interface.h38048logstatsplain d---------interface347logstatsplain -rw-r--r--interface_api.c48990logstatsplain -rw-r--r--interface_cli.c81140logstatsplain -rw-r--r--interface_format.c25383logstatsplain -rw-r--r--interface_funcs.h18994logstatsplain -rw-r--r--interface_output.c41318logstatsplain -rw-r--r--interface_output.h5125logstatsplain -rw-r--r--interface_stats.c5618logstatsplain -rw-r--r--interface_test.c30663logstatsplain -rw-r--r--interface_types.api2022logstatsplain -rw-r--r--interface_types_api.c1188logstatsplain -rw-r--r--interface_types_api.h1069logstatsplain d---------ip-neighbor654logstatsplain d---------ip3685logstatsplain d---------ip6-nd620logstatsplain d---------ipfix-export396logstatsplain d---------ipip324logstatsplain d---------ipsec1523logstatsplain d---------l21760logstatsplain -rw-r--r--l3_types.h2206logstatsplain d---------lawful-intercept126logstatsplain d---------llc132logstatsplain d---------mfib1076logstatsplain -rw-r--r--misc.c3440logstatsplain -rw-r--r--mpcap.h2975logstatsplain d---------mpls617logstatsplain -rw-r--r--mtu.rst2921logstatsplain d---------osi132logstatsplain d---------pg426logstatsplain -rw-r--r--pipeline.h9847logstatsplain d---------plugin36logstatsplain d---------policer428logstatsplain d---------ppp205logstatsplain d---------qos644logstatsplain d---------session1517logstatsplain d---------snap134logstatsplain d---------span216logstatsplain d---------srmpls362logstatsplain d---------srp210logstatsplain d---------srv6805logstatsplain d---------syslog306logstatsplain d---------tcp996logstatsplain d---------teib180logstatsplain d---------tls144logstatsplain d---------tunnel287logstatsplain d---------udp731logstatsplain d---------unix188logstatsplain d---------util222logstatsplain -rw-r--r--vnet.h4122logstatsplain d---------vxlan-gpe445logstatsplain