00001 #include "l3Swap.h"
00002
00003 #include <netinet/in.h>
00004
00005 float l3Fswap(float swapped)
00006 {
00007 unsigned int* uintptr = (unsigned int*) &swapped;
00008 unsigned int uintvar = ntohl(*uintptr);
00009 float* floatvar = (float*)&uintvar;
00010 return *floatvar;
00011 }
00012
00013 uint32 l3Swap32(uint32 in)
00014 {
00015 register uint32 x ;
00016 x = in ;
00017
00018 return (x&0xff000000) >> 24 | \
00019 (x&0x00ff0000) >> 8 | \
00020 (x&0x0000ff00) << 8 | \
00021 (x&0x000000ff) << 24;
00022 }
00023
00024
00025 uint16 l3Swap16(uint16 in)
00026 {
00027 register uint16 x ;
00028
00029 x = in ;
00030
00031 return (x&0xFF00) >> 8 | (x&0xFF) << 8 ;
00032 }
00033
00034 void l3SwapBuffer(void *dest, void *src, unsigned int nDWords)
00035 {
00036 for (unsigned int i = 0; i<nDWords; i++) {
00037 ((uint32 *)dest)[i] = swap32(((uint32 *)src)[i]);
00038 }
00039 }
00040
00041 bool checkByteOrder(uint32 byte_order)
00042 {
00043 uint32 raw_format_order = 0x04030201;
00044 return ( byte_order == raw_format_order );
00045 }