mirror of
https://git.planet-casio.com/Vhex-Kernel-Core/fxlibc.git
synced 2025-05-28 14:35:12 +02:00
endian: add standard <endian.h> instead of target-specific one
This commit is contained in:
parent
09610f59de
commit
381570e3ef
2 changed files with 55 additions and 21 deletions
55
include/endian.h
Normal file
55
include/endian.h
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
#ifndef __ENDIAN_H__
|
||||||
|
# define __ENDIAN_H__
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/* Follow macros provided by GCC. */
|
||||||
|
#define LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
|
||||||
|
#define BIG_ENDIAN __ORDER_BIG_ENDIAN__
|
||||||
|
#define BYTE_ORDER __BYTE_ORDER__
|
||||||
|
|
||||||
|
#if BYTE_ORDER == LITTLE_ENDIAN
|
||||||
|
|
||||||
|
#define htobe16(x) __builtin_bswap16(x)
|
||||||
|
#define htole16(x) (x)
|
||||||
|
#define be16toh(x) __builtin_bswap16(x)
|
||||||
|
#define le16toh(x) (x)
|
||||||
|
|
||||||
|
#define htobe32(x) __builtin_bswap32(x)
|
||||||
|
#define htole32(x) (x)
|
||||||
|
#define be32toh(x) __builtin_bswap32(x)
|
||||||
|
#define le32toh(x) (x)
|
||||||
|
|
||||||
|
#define htobe64(x) __builtin_bswap64(x)
|
||||||
|
#define htole64(x) (x)
|
||||||
|
#define be64toh(x) __builtin_bswap64(x)
|
||||||
|
#define le64toh(x) (x)
|
||||||
|
|
||||||
|
#elif BYTE_ORDER == BIG_ENDIAN
|
||||||
|
|
||||||
|
#define htobe16(x) (x)
|
||||||
|
#define htole16(x) __builtin_bswap16(x)
|
||||||
|
#define be16toh(x) (x)
|
||||||
|
#define le16toh(x) __builtin_bswap16(x)
|
||||||
|
|
||||||
|
#define htobe32(x) (x)
|
||||||
|
#define htole32(x) __builtin_bswap32(x)
|
||||||
|
#define be32toh(x) (x)
|
||||||
|
#define le32toh(x) __builtin_bswap32(x)
|
||||||
|
|
||||||
|
#define htobe64(x) (x)
|
||||||
|
#define htole64(x) __builtin_bswap64(x)
|
||||||
|
#define be64toh(x) (x)
|
||||||
|
#define le64toh(x) __builtin_bswap64(x)
|
||||||
|
|
||||||
|
#endif /* LITTLE_ENDIAN vs. BIG_ENDIAN */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*__ENDIAN_H__*/
|
|
@ -1,21 +0,0 @@
|
||||||
#ifndef __ENDIAN_H__
|
|
||||||
# define __ENDIAN_H__
|
|
||||||
|
|
||||||
/* CASIO calculators are configured as big-endian. */
|
|
||||||
|
|
||||||
#define htobe16(x) (x)
|
|
||||||
#define htole16(x) (__builtin_bswap16(x))
|
|
||||||
#define be16toh(x) (x)
|
|
||||||
#define le16toh(x) (__builtin_bswap16(x))
|
|
||||||
|
|
||||||
#define htobe32(x) (x)
|
|
||||||
#define htole32(x) (__builtin_bswap32(x))
|
|
||||||
#define be32toh(x) (x)
|
|
||||||
#define le32toh(x) (__builtin_bswap32(x))
|
|
||||||
|
|
||||||
#define htobe64(x) (x)
|
|
||||||
#define htole64(x) (__builtin_bswap64(x))
|
|
||||||
#define be64toh(x) (x)
|
|
||||||
#define le64toh(x) (__builtin_bswap64(x))
|
|
||||||
|
|
||||||
#endif /*__ENDIAN_H__*/
|
|
Loading…
Add table
Reference in a new issue