|
From: <and...@us...> - 2006-04-16 17:31:30
|
Revision: 1270 Author: andreradke Date: 2006-04-16 10:31:13 -0700 (Sun, 16 Apr 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1270&view=rev Log Message: ----------- Add macros for byte-swapping short and long integer values that are read from custom resources, needed for Mac Intel build of the kernel. Modified Paths: -------------- Frontier/trunk/Common/headers/byteorder.h Modified: Frontier/trunk/Common/headers/byteorder.h =================================================================== --- Frontier/trunk/Common/headers/byteorder.h 2006-04-15 04:58:06 UTC (rev 1269) +++ Frontier/trunk/Common/headers/byteorder.h 2006-04-16 17:31:13 UTC (rev 1270) @@ -76,6 +76,36 @@ #endif +/* + 2006-04-16 aradke: Carbon resource manager resources are in big endian format. + If we are running on an Intel Mac, we need to perform byte order conversion. +*/ + +#if (defined(TARGET_API_MAC_CARBON) && (TARGET_API_MAC_CARBON == 1) && defined(SWAP_BYTE_ORDER)) + + #define SWAP_REZ_BYTE_ORDER 1 + + #define reztomemshort(x) shortswap(x) + #define reztomemlong(x) longswap(x) + #define reztomemrect(x) do {shortswap((x).top); shortswap((x).left); shortswap((x).bottom); shortswap((x).right);} while(0) + #define memtorezshort(x) shortswap(x) + #define memtorezlong(x) longswap(x) + #define memtorezrect(x) do {shortswap((x).top); shortswap((x).left); shortswap((x).bottom); shortswap((x).right);} while(0) + +#else + + #undef SWAP_REZ_BYTE_ORDER + + #define reztomemshort(x) + #define reztomemlong(x) + #define reztomemrect(x) + #define memtorezshort(x) + #define memtorezlong(x) + #define memtorezrect(x) + +#endif + + #define longswap(foo) do {foo = dolongswap(foo);} while (0) #define shortswap(foo) do {foo = doshortswap(foo);} while (0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |