Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

byteswap.h

Go to the documentation of this file.
00001 #ifndef _BYTESWAP_H_
00002 #define _BYTESWAP_H_
00003 
00004 void byteswap( void* d, int size );
00007 bool std2host( void* d, int size )
00008 {
00009     #ifdef WIN32
00010         byteswap( d, size );
00011         return true;
00012     #endif
00013     #ifdef _LINUX_
00014         byteswap( d, size );
00015         return true;
00016     #endif
00017     return false;
00018 }
00019 
00022 bool host2std( void* d, int size )
00023 {
00024     #ifdef WIN32
00025         byteswap( d, size );
00026         return true;
00027     #endif
00028     #ifdef _LINUX_
00029         byteswap( d, size );
00030         return true;
00031     #endif
00032     // Mac OS X & IRIX are in the standard format
00033     return false;
00034 }
00035 
00036 void swap( char& a, char& b)
00037 {
00038     if( &a == &b ) return;
00039     char tmp = a;
00040     a = b;
00041     b = tmp;
00042 }
00043 void byteswap( void* d, int size )
00044 {
00045     char* data = (char*)d;
00046     int tmp = 0;
00047     int hsize = size / 2;
00048     while( tmp < hsize )
00049     {
00050         swap( data[tmp], data[size-tmp-1] );
00051         tmp++;
00052     }
00053 }
00054 
00055 
00056 #endif

Generated on Tue Jun 15 12:49:28 2004 for pexpr by doxygen 1.3.4