Pol  Revision:46daeab
clib/endian.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines