diff options
author | Terry J. Opie <opiet@us.ibm.com> | 2012-04-03 11:50:17 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-04-09 13:08:22 -0500 |
commit | 7f2d373de881c982783db83e97e9e73a8fd09b74 (patch) | |
tree | 8ce2056269107e3a9f943d6b266729cf97560888 /src/include/endian.h | |
parent | 19d999f032c812f211496b5f8d9e5172ba1998a9 (diff) | |
download | talos-hostboot-7f2d373de881c982783db83e97e9e73a8fd09b74.tar.gz talos-hostboot-7f2d373de881c982783db83e97e9e73a8fd09b74.zip |
Byte swapping functions in endian.h
Change-Id: I6015d0f59a8191f456cb4ece524fe4e6ec67dc07
RTC: 39734
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/828
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/endian.h')
-rw-r--r-- | src/include/endian.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/include/endian.h b/src/include/endian.h index 27248d892..5b6cb06d2 100644 --- a/src/include/endian.h +++ b/src/include/endian.h @@ -28,4 +28,42 @@ #define __BYTE_ORDER __BIG_ENDIAN +#define __swap16(x) \ + ((((x) & 0xFF00) >> 8) | \ + (((x) & 0x00FF) << 8)) + +#if __BYTE_ORDER == __BIG_ENDIAN +// Big Endian system +#define htobe16(x) (x) +#define htole16(x) __swap16(x) +#define be16toh(x) (x) +#define le16toh(x) __swap16(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) +#else +// Little Endian system +#define htobe16(x) __swap16(x) +#define htole16(x) (x) +#define be16toh(x) __swap16(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) +#endif + #endif |