|
Pol
Revision:46daeab
|
00001 /* 00002 History 00003 ======= 00004 2009/09/10 MuadDib: FlipEndian32 Update for compilers. Submitted by Grin. 00005 00006 Notes 00007 ======= 00008 00009 */ 00010 00011 #ifndef __CLIB_ENDIAN_H 00012 #define __CLIB_ENDIAN_H 00013 00014 #include "rawtypes.h" 00015 00016 #ifndef U_BIG_ENDIAN 00017 # define U_LITTLE_ENDIAN 00018 #endif 00019 00020 #define flipEndian32(x) (((unsigned)(x) >> 24) | (((unsigned)(x) >> 8) & 0x0000FF00) | (((x) << 8) & 0x00FF0000) | ((x) << 24)) 00021 #define flipEndian16(x) ((((x) >> 8) & 0x00FF) | (((x) << 8) & 0xFF00)) 00022 00023 #ifdef U_BIG_ENDIAN 00024 /* big endian */ 00025 00026 # define cfLEu32(x) flipEndian32(x) 00027 # define cfLEu16(x) flipEndian16(x) 00028 # define ctLEu32(x) flipEndian32(x) 00029 # define ctLEu16(x) flipEndian16(x) 00030 00031 # define cfBEu32(x) (x) 00032 # define cfBEu16(x) (x) 00033 # define ctBEu32(x) (x) 00034 # define ctBEu16(x) (x) 00035 00036 #else 00037 /* little endian */ 00038 00039 # define cfLEu32(x) (x) 00040 # define cfLEu16(x) (x) 00041 # define ctLEu32(x) (x) 00042 # define ctLEu16(x) (x) 00043 00044 # define cfBEu32(x) flipEndian32(x) 00045 # define cfBEu16(x) flipEndian16(x) 00046 # define ctBEu32(x) flipEndian32(x) 00047 # define ctBEu16(x) flipEndian16(x) 00048 00049 #endif 00050 00051 #endif