X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Ftypes.h;h=499c840b49d5554d2fff1617b0848459ba9ed93d;hp=239d37e3c80cc5731d83bc59540a8b8777e1d92e;hb=bdad407fb79c2f7be9f3603694ebdeadc645b52d;hpb=c132ad06ee2d921e1bed178eca5fa648c06d3c80 diff --git a/lib/types.h b/lib/types.h index 239d37e..499c840 100644 --- a/lib/types.h +++ b/lib/types.h @@ -1,6 +1,8 @@ #ifndef __rfxtypes_h__ #define __rfxtypes_h__ +#include "../config.h" + #ifndef TRUE #define TRUE (1) #endif @@ -16,20 +18,36 @@ #define GET16(ptr) (((U16)(((U8*)(ptr))[0]))+(((U16)(((U8*)(ptr))[1]))<<8)) #define GET32(ptr) (((U16)(((U8*)(ptr))[0]))+(((U16)(((U8*)(ptr))[1]))<<8)+(((U16)(((U8*)(ptr))[2]))<<16)+(((U16)(((U8*)(ptr))[3]))<<24)) -#ifdef WORDS_BIGENDIAN #define SWAP16(s) ((((s)>>8)&0x00ff)|(((s)<<8)&0xff00)) #define SWAP32(s) (SWAP16(((s)>>16)&0x0000ffff)|((SWAP16(s)<<16)&0xffff0000)) -#define REVERSESWAP16(x) (x) -#define REVERSESWAP32(x) (x) + +#ifdef WORDS_BIGENDIAN +#define LE_16_TO_NATIVE(s) SWAP16(s) +#define LE_32_TO_NATIVE(s) SWAP32(s) +#define BE_16_TO_NATIVE(x) (x) +#define BE_32_TO_NATIVE(x) (x) #else -#define SWAP16(x) (x) -#define SWAP32(x) (x) -#define REVERSESWAP16(s) ((((s)>>8)&0x00ff)|(((s)<<8)&0xff00)) -#define REVERSESWAP32(s) (REVERSESWAP16(((s)>>16)&0x0000ffff)|((REVERSESWAP16(s)<<16)&0xffff0000)) +#define LE_16_TO_NATIVE(x) (x) +#define LE_32_TO_NATIVE(x) (x) +#define BE_16_TO_NATIVE(s) SWAP16(s) +#define BE_32_TO_NATIVE(s) SWAP32(s) #endif // SWF Types +#if SIZEOF_SIGNED_LONG_LONG != 8 +#error "no way to define 64 bit integer" +#endif +#if SIZEOF_SIGNED != 4 +#error "don't know how to define 32 bit integer" +#endif +#if SIZEOF_SIGNED_SHORT != 2 +#error "don't know how to define 16 bit integer" +#endif +#if SIZEOF_SIGNED_CHAR != 1 +#error "don't know how to define 8 bit integer" +#endif + typedef unsigned long long U64; typedef signed long long S64; typedef unsigned U32; @@ -39,4 +57,12 @@ typedef signed short S16; typedef unsigned char U8; typedef signed char S8; +#if SIZEOF_VOIDP == SIZEOF_SIGNED_LONG_LONG +typedef unsigned long long ptroff_t; +#elif SIZEOF_VOIDP == SIZEOF_SIGNED +typedef unsigned ptroff_t; +#else +#error "Unknown pointer size" +#endif + #endif