2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 14:25:26 +00:00

Convert remaining network-byte-order "uint<N>_t"s into "ovs_be<N>"s.

I looked at almost every uint<N>_t in the tree to determine whether it was
really in network byte order, and converted the ones that were.

The only remaining ones, modulo my mistakes, are in openflow.h.  I'm not
sure whether we should convert those, because there might be some value
in remaining close to upstream for this header.
This commit is contained in:
Ben Pfaff
2011-03-29 14:42:20 -07:00
parent 118c46769f
commit dbba996be2
15 changed files with 75 additions and 71 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2010 Nicira Networks.
* Copyright (c) 2008, 2010, 2011 Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,15 +19,16 @@
#include <arpa/inet.h>
#include <sys/types.h>
#include <inttypes.h>
#include "openvswitch/types.h"
static inline uint64_t
static inline ovs_be64
htonll(uint64_t n)
{
return htonl(1) == 1 ? n : ((uint64_t) htonl(n) << 32) | htonl(n >> 32);
}
static inline uint64_t
ntohll(uint64_t n)
ntohll(ovs_be64 n)
{
return htonl(1) == 1 ? n : ((uint64_t) ntohl(n) << 32) | ntohl(n >> 32);
}
@@ -36,27 +37,27 @@ ntohll(uint64_t n)
* where function calls are not allowed, such as case labels. They should not
* be used elsewhere because all of them evaluate their argument many times. */
#ifdef WORDS_BIGENDIAN
#define CONSTANT_HTONS(VALUE) ((uint16_t) (VALUE))
#define CONSTANT_HTONL(VALUE) ((uint32_t) (VALUE))
#define CONSTANT_HTONLL(VALUE) ((uint64_t) (VALUE))
#define CONSTANT_HTONS(VALUE) ((ovs_be16) (VALUE))
#define CONSTANT_HTONL(VALUE) ((ovs_be32) (VALUE))
#define CONSTANT_HTONLL(VALUE) ((ovs_be64) (VALUE))
#else
#define CONSTANT_HTONS(VALUE) \
(((((uint16_t) (VALUE)) & 0xff00) >> 8) | \
((((uint16_t) (VALUE)) & 0x00ff) << 8))
(((((ovs_be16) (VALUE)) & 0xff00) >> 8) | \
((((ovs_be16) (VALUE)) & 0x00ff) << 8))
#define CONSTANT_HTONL(VALUE) \
(((((uint32_t) (VALUE)) & 0x000000ff) << 24) | \
((((uint32_t) (VALUE)) & 0x0000ff00) << 8) | \
((((uint32_t) (VALUE)) & 0x00ff0000) >> 8) | \
((((uint32_t) (VALUE)) & 0xff000000) >> 24))
(((((ovs_be32) (VALUE)) & 0x000000ff) << 24) | \
((((ovs_be32) (VALUE)) & 0x0000ff00) << 8) | \
((((ovs_be32) (VALUE)) & 0x00ff0000) >> 8) | \
((((ovs_be32) (VALUE)) & 0xff000000) >> 24))
#define CONSTANT_HTONLL(VALUE) \
(((((uint64_t) (VALUE)) & UINT64_C(0x00000000000000ff)) << 56) | \
((((uint64_t) (VALUE)) & UINT64_C(0x000000000000ff00)) << 40) | \
((((uint64_t) (VALUE)) & UINT64_C(0x0000000000ff0000)) << 24) | \
((((uint64_t) (VALUE)) & UINT64_C(0x00000000ff000000)) << 8) | \
((((uint64_t) (VALUE)) & UINT64_C(0x000000ff00000000)) >> 8) | \
((((uint64_t) (VALUE)) & UINT64_C(0x0000ff0000000000)) >> 24) | \
((((uint64_t) (VALUE)) & UINT64_C(0x00ff000000000000)) >> 40) | \
((((uint64_t) (VALUE)) & UINT64_C(0xff00000000000000)) >> 56))
(((((ovs_be64) (VALUE)) & UINT64_C(0x00000000000000ff)) << 56) | \
((((ovs_be64) (VALUE)) & UINT64_C(0x000000000000ff00)) << 40) | \
((((ovs_be64) (VALUE)) & UINT64_C(0x0000000000ff0000)) << 24) | \
((((ovs_be64) (VALUE)) & UINT64_C(0x00000000ff000000)) << 8) | \
((((ovs_be64) (VALUE)) & UINT64_C(0x000000ff00000000)) >> 8) | \
((((ovs_be64) (VALUE)) & UINT64_C(0x0000ff0000000000)) >> 24) | \
((((ovs_be64) (VALUE)) & UINT64_C(0x00ff000000000000)) >> 40) | \
((((ovs_be64) (VALUE)) & UINT64_C(0xff00000000000000)) >> 56))
#endif
#endif /* byte-order.h */