diff options
-rw-r--r-- | builtin/endian.h | 38 | ||||
-rw-r--r-- | include/byteorder.h | 29 |
2 files changed, 39 insertions, 28 deletions
diff --git a/builtin/endian.h b/builtin/endian.h new file mode 100644 index 0000000000..b27b7cd496 --- /dev/null +++ b/builtin/endian.h @@ -0,0 +1,38 @@ +/* Copyright 2016 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef __EC_BUILTIN_ENDIAN_H +#define __EC_BUILTIN_ENDIAN_H + +#include <stdint.h> + +/* + * Functions to convert byte order in various sized big endian integers to + * host byte order. Note that the code currently does not require functions + * for converting little endian integers. + */ +#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + +static inline uint16_t be16toh(uint16_t in) +{ + return __builtin_bswap16(in); +} +static inline uint32_t be32toh(uint32_t in) +{ + return __builtin_bswap32(in); +} +static inline uint64_t be64toh(uint64_t in) +{ + return __builtin_bswap64(in); +} + +#define htobe16 be16toh +#define htobe32 be32toh +#define htobe64 be64toh + +#endif /* __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ */ + + +#endif /* __EC_BUILTIN_ENDIAN_H */ diff --git a/include/byteorder.h b/include/byteorder.h index e2e305537d..8cfd810e54 100644 --- a/include/byteorder.h +++ b/include/byteorder.h @@ -6,33 +6,6 @@ #ifndef __EC_INCLUDE_BYTEORDER_H #define __EC_INCLUDE_BYTEORDER_H -#include <stdint.h> - -/* - * Functions to convert byte order in various sized big endian integers to - * host byte order. Note that the code currently does not require functions - * for converting little endian integers. - */ -#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) - -static inline uint16_t be16toh(uint16_t in) -{ - return __builtin_bswap16(in); -} -static inline uint32_t be32toh(uint32_t in) -{ - return __builtin_bswap32(in); -} -static inline uint64_t be64toh(uint64_t in) -{ - return __builtin_bswap64(in); -} - -#define htobe16 be16toh -#define htobe32 be32toh -#define htobe64 be64toh - -#endif /* __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ */ - +#include <endian.h> #endif /* __EC_INCLUDE_BYTEORDER_H */ |