#ifndef OPENVSWITCH_TYPES_H
#define OPENVSWITCH_TYPES_H 1
+#include <linux/types.h>
#include <sys/types.h>
#include <stdint.h>
/* The ovs_be<N> types indicate that an object is in big-endian, not
* native-endian, byte order. They are otherwise equivalent to uint<N>_t.
*
- * The OVS_BITWISE annotation allows the sparse checker to issue warnings
- * for incorrect use of values in network byte order. */
-typedef uint16_t OVS_BITWISE ovs_be16;
-typedef uint32_t OVS_BITWISE ovs_be32;
-typedef uint64_t OVS_BITWISE ovs_be64;
+ * We bootstrap these from the Linux __be<N> types. If we instead define our
+ * own independently then __be<N> and ovs_be<N> become mutually
+ * incompatible. */
+typedef __be16 ovs_be16;
+typedef __be32 ovs_be32;
+typedef __be64 ovs_be64;
\f
/* Netlink and OpenFlow both contain 64-bit values that are only guaranteed to
* be aligned on 32-bit boundaries. These types help.