diff options
author | Matt Wilson <msw@redhat.com> | 1999-09-11 15:43:56 +0000 |
---|---|---|
committer | Matt Wilson <msw@redhat.com> | 1999-09-11 15:43:56 +0000 |
commit | 67b133020bb2a5ba90005ac6da55a0d5d1424799 (patch) | |
tree | 68eae41b81639206b3de7dc12b4a3c1335144048 /balkan/byteswap.h | |
parent | e0e974477f07b1eb16c7553528b3f64d5d520ce5 (diff) | |
download | anaconda-67b133020bb2a5ba90005ac6da55a0d5d1424799.tar.gz anaconda-67b133020bb2a5ba90005ac6da55a0d5d1424799.tar.xz anaconda-67b133020bb2a5ba90005ac6da55a0d5d1424799.zip |
patch from jj, misc fixesbefore.po.msgmerge
Diffstat (limited to 'balkan/byteswap.h')
-rw-r--r-- | balkan/byteswap.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/balkan/byteswap.h b/balkan/byteswap.h new file mode 100644 index 000000000..d271146aa --- /dev/null +++ b/balkan/byteswap.h @@ -0,0 +1,59 @@ +#ifndef H_BYTESWAP +#define H_BYTESWAP 1 + +#include <endian.h> +#include <stdint.h> + +#define swab16(x) \ + ((uint16_t)( \ + (((uint16_t)(x) & (uint16_t)0x00ffU) << 8) | \ + (((uint16_t)(x) & (uint16_t)0xff00U) >> 8) )) +#define swab32(x) \ + ((uint32_t)( \ + (((uint32_t)(x) & (uint32_t)0x000000ffUL) << 24) | \ + (((uint32_t)(x) & (uint32_t)0x0000ff00UL) << 8) | \ + (((uint32_t)(x) & (uint32_t)0x00ff0000UL) >> 8) | \ + (((uint32_t)(x) & (uint32_t)0xff000000UL) >> 24) )) +#define swab64(x) \ + ((uint64_t)( \ + (uint64_t)(((uint64_t)(x) & (uint64_t)0x00000000000000ffULL) << 56) | \ + (uint64_t)(((uint64_t)(x) & (uint64_t)0x000000000000ff00ULL) << 40) | \ + (uint64_t)(((uint64_t)(x) & (uint64_t)0x0000000000ff0000ULL) << 24) | \ + (uint64_t)(((uint64_t)(x) & (uint64_t)0x00000000ff000000ULL) << 8) | \ + (uint64_t)(((uint64_t)(x) & (uint64_t)0x000000ff00000000ULL) >> 8) | \ + (uint64_t)(((uint64_t)(x) & (uint64_t)0x0000ff0000000000ULL) >> 24) | \ + (uint64_t)(((uint64_t)(x) & (uint64_t)0x00ff000000000000ULL) >> 40) | \ + (uint64_t)(((uint64_t)(x) & (uint64_t)0xff00000000000000ULL) >> 56) )) + +#if __BYTE_ORDER == __LITTLE_ENDIAN + +#define cpu_to_le16(x) x +#define cpu_to_le32(x) x +#define cpu_to_le64(x) x +#define le16_to_cpu(x) x +#define le32_to_cpu(x) x +#define le64_to_cpu(x) x +#define cpu_to_be16(x) swab16(x) +#define cpu_to_be32(x) swab32(x) +#define cpu_to_be64(x) swab64(x) +#define be16_to_cpu(x) swab16(x) +#define be32_to_cpu(x) swab32(x) +#define be64_to_cpu(x) swab64(x) + +#else + +#define cpu_to_le16(x) swab16(x) +#define cpu_to_le32(x) swab32(x) +#define cpu_to_le64(x) swab64(x) +#define le16_to_cpu(x) swab16(x) +#define le32_to_cpu(x) swab32(x) +#define le64_to_cpu(x) swab64(x) +#define cpu_to_be16(x) x +#define cpu_to_be32(x) x +#define cpu_to_be64(x) x +#define be16_to_cpu(x) x +#define be32_to_cpu(x) x +#define be64_to_cpu(x) x + +#endif +#endif |