check-structs: Disallow uint<N>_t because ovs_be<N> should always be used.
authorBen Pfaff <blp@nicira.com>
Mon, 2 Apr 2012 16:06:11 +0000 (09:06 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 2 Apr 2012 16:06:11 +0000 (09:06 -0700)
The header files that check-structs checks should only contain big-endian
data, never native-endian data, so disallow uint<N>_t entirely.  (We had
a couple of mistakes in this area until recently.)

uint8_t is an obvious exception.

Reported-by: Simon Horman <horms@verge.net.au>
Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
build-aux/check-structs
tests/check-structs.at

index 731a4e29f732a2fc4e7fded63c1da78bd4bcb645..e50e3101164d872a993774ac49f82f9559aad514 100755 (executable)
@@ -11,9 +11,6 @@ anyWarnings = False
 types = {}
 types['char'] = {"size": 1, "alignment": 1}
 types['uint8_t'] = {"size": 1, "alignment": 1}
-types['uint16_t'] = {"size": 2, "alignment": 2}
-types['uint32_t'] = {"size": 4, "alignment": 4}
-types['uint64_t'] = {"size": 8, "alignment": 8}
 types['ovs_be16'] = {"size": 2, "alignment": 2}
 types['ovs_be32'] = {"size": 4, "alignment": 4}
 types['ovs_be64'] = {"size": 8, "alignment": 8}
index a926a0fb5393fe5bcba5e4ef92fae6a2035fdaa4..4163c30d6dbe03d6c60de4cce218284f42192446 100644 (file)
@@ -11,7 +11,7 @@ m4_define([RUN_STRUCT_CHECKER],
 AT_SETUP([check struct tail padding])
 RUN_STRUCT_CHECKER(
 [struct xyz {
-    uint16_t x;
+    ovs_be16 x;
 };], 
   [1], [], 
   [test.h:3: warning: struct xyz needs 2 bytes of tail padding
@@ -21,8 +21,8 @@ AT_CLEANUP
 AT_SETUP([check struct internal alignment])
 RUN_STRUCT_CHECKER(
 [struct xyzzy {
-    uint16_t x;
-    uint32_t y;
+    ovs_be16 x;
+    ovs_be32 y;
 };], 
   [1], [], 
   [test.h:3: warning: struct xyzzy member y is 2 bytes short of 4-byte alignment
@@ -32,7 +32,7 @@ AT_CLEANUP
 AT_SETUP([check struct declared size])
 RUN_STRUCT_CHECKER(
 [struct wibble {
-    uint64_t z;
+    ovs_be64 z;
 };
 OFP_ASSERT(sizeof(struct wibble) == 12);
 ], 
@@ -44,11 +44,11 @@ AT_CLEANUP
 AT_SETUP([check wrong struct's declared size])
 RUN_STRUCT_CHECKER(
 [struct moo {
-    uint64_t bar;
+    ovs_be64 bar;
 };
 OFP_ASSERT(sizeof(struct moo) == 8);
 struct wibble {
-    uint64_t z;
+    ovs_be64 z;
 };
 OFP_ASSERT(sizeof(struct moo) == 8);
 ], [1], [], [test.h:8: warning: checking size of struct moo but struct wibble was most recently defined