From 688ed0d7606c0563073f588098b9bedf904c70a9 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 4 Mar 2006 22:40:25 +0000 Subject: [PATCH] Patch from Robert P. Day, moving byte order checks to use platform.h macros. --- archival/libunarchive/decompress_unlzma.c | 4 ++-- archival/unzip.c | 14 +++++++------- miscutils/hdparm.c | 4 ++-- modutils/insmod.c | 12 ++++++------ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/archival/libunarchive/decompress_unlzma.c b/archival/libunarchive/decompress_unlzma.c index 62811ddfc..9c53e0a56 100644 --- a/archival/libunarchive/decompress_unlzma.c +++ b/archival/libunarchive/decompress_unlzma.c @@ -119,10 +119,10 @@ int unlzma(int src_fd, int dst_fd) pos_state_mask = (1 << pb) - 1; literal_pos_mask = (1 << lp) - 1; -#if __BYTE_ORDER == __BIG_ENDIAN +#if BB_BIG_ENDIAN header.dict_size = bswap_32(header.dict_size); header.dst_size = bswap_64(header.dst_size); -#endif /* __BYTE_ORDER */ +#endif if (header.dict_size == 0) header.dict_size = 1; diff --git a/archival/unzip.c b/archival/unzip.c index 7e0d107cc..f95e31206 100644 --- a/archival/unzip.c +++ b/archival/unzip.c @@ -32,7 +32,7 @@ #include "unarchive.h" #include "busybox.h" -#if (BYTE_ORDER == BIG_ENDIAN) +#if BB_BIG_ENDIAN static inline unsigned short __swap16(unsigned short x) { return (((uint16_t)(x) & 0xFF) << 8) | (((uint16_t)(x) & 0xFF00) >> 8); @@ -45,10 +45,10 @@ __swap32(uint32_t x) { ((x & 0xFF0000) >> 8) | ((x & 0xFF000000) >> 24)); } -#else -#define __swap16(x) (x) -#define __swap32(x) (x) -#endif +#else /* it's little-endian */ +# define __swap16(x) (x) +# define __swap32(x) (x) +#endif /* BB_BIG_ENDIAN */ #define ZIP_FILEHEADER_MAGIC __swap32(0x04034b50) #define ZIP_CDS_MAGIC __swap32(0x02014b50) @@ -253,7 +253,7 @@ extern int unzip_main(int argc, char **argv) /* Read the file header */ unzip_read(src_fd, zip_header.raw, 26); -#if (BYTE_ORDER == BIG_ENDIAN) +#if BB_BIG_ENDIAN zip_header.formated.version = __swap16(zip_header.formated.version); zip_header.formated.flags = __swap16(zip_header.formated.flags); zip_header.formated.method = __swap16(zip_header.formated.method); @@ -264,7 +264,7 @@ extern int unzip_main(int argc, char **argv) zip_header.formated.ucmpsize = __swap32(zip_header.formated.ucmpsize); zip_header.formated.filename_len = __swap16(zip_header.formated.filename_len); zip_header.formated.extra_len = __swap16(zip_header.formated.extra_len); -#endif +#endif /* BB_BIG_ENDIAN */ if ((zip_header.formated.method != 0) && (zip_header.formated.method != 8)) { bb_error_msg_and_die("Unsupported compression method %d", zip_header.formated.method); } diff --git a/miscutils/hdparm.c b/miscutils/hdparm.c index e733c9172..bd3065d7e 100644 --- a/miscutils/hdparm.c +++ b/miscutils/hdparm.c @@ -48,8 +48,8 @@ #include -#if (__BYTE_ORDER == __BIG_ENDIAN) && !defined(__USE_XOPEN) -#define __USE_XOPEN +#if BB_BIG_ENDIAN && !defined(__USE_XOPEN) +# define __USE_XOPEN #endif /* device types */ diff --git a/modutils/insmod.c b/modutils/insmod.c index d40012d70..14322d978 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c @@ -268,8 +268,8 @@ extern int insmod_ng_main( int argc, char **argv); #define CONFIG_USE_SINGLE /* the SH changes have only been tested in =little endian= mode */ /* I'm not sure about big endian, so let's warn: */ -#if defined(__sh__) && defined(__BIG_ENDIAN__) -#error insmod.c may require changes for use on big endian SH +#if defined(__sh__) && BB_BIG_ENDIAN +# error insmod.c may require changes for use on big endian SH #endif /* it may or may not work on the SH1/SH2... Error on those also */ #if ((!(defined(__SH3__) || defined(__SH4__) || defined(__SH5__)))) && (defined(__sh__)) @@ -511,10 +511,10 @@ static const int MODUTILS_OBJ_H = 1; #include #include -#if __BYTE_ORDER == __LITTLE_ENDIAN -#define ELFDATAM ELFDATA2LSB -#elif __BYTE_ORDER == __BIG_ENDIAN -#define ELFDATAM ELFDATA2MSB +#if BB_LITTLE_ENDIAN +# define ELFDATAM ELFDATA2LSB +#else +# define ELFDATAM ELFDATA2MSB #endif #ifndef ElfW