1 /*****************************************************************************/ 2 /* */ 3 /* CPUCVT.H */ 4 /* */ 5 /* (C) 1993-95 Ullrich von Bassewitz */ 6 /* Zwehrenbuehlstrasse 33 */ 7 /* D-72070 Tuebingen */ 8 /* EMail: uz@ibb.schwaben.com */ 9 /* */ 10 /*****************************************************************************/ 11 12 13 14 // $Id$ 15 // 16 // $Log$ 17 // 18 // 19 20 21 22 // This file contains code to convert to and from little endian data types 23 // into the native format. 24 25 26 27 #ifndef __CPUCVT_H 28 #define __CPUCVT_H 29 30 31 32 #include "machine.h" 33 34 35 36 /*****************************************************************************/ 37 /* Types */ 38 /*****************************************************************************/ 39 40 41 42 union _double { 43 double F; 44 u32 I [2]; 45 }; 46 47 48 49 /*****************************************************************************/ 50 /* Code */ 51 /*****************************************************************************/ 52 53 54 55 #ifdef CPU_LITTLE_ENDIAN 56 57 // We already have little endian format, inline no-op functions ToLittleEndian(i16 &)58inline void ToLittleEndian (i16&) { } ToLittleEndian(i32 &)59inline void ToLittleEndian (i32&) { } ToLittleEndian(u16 &)60inline void ToLittleEndian (u16&) { } ToLittleEndian(u32 &)61inline void ToLittleEndian (u32&) { } ToLittleEndian(_double &)62inline void ToLittleEndian (_double&) { } 63 FromLittleEndian(i16 &)64inline void FromLittleEndian (i16&) { } FromLittleEndian(i32 &)65inline void FromLittleEndian (i32&) { } FromLittleEndian(u16 &)66inline void FromLittleEndian (u16&) { } FromLittleEndian(u32 &)67inline void FromLittleEndian (u32&) { } FromLittleEndian(_double &)68inline void FromLittleEndian (_double&) { } 69 70 #else 71 72 // We have to convert 73 void ToLittleEndian (i16& X); 74 void ToLittleEndian (i32& X); 75 void ToLittleEndian (u16& X); 76 void ToLittleEndian (u32& X); 77 void ToLittleEndian (_double& X); 78 79 void FromLittleEndian (i16& X); 80 void FromLittleEndian (i32& X); 81 void FromLittleEndian (u16& X); 82 void FromLittleEndian (u32& X); 83 void FromLittleEndian (_double& X); 84 85 #endif 86 87 88 89 // End of CPUCVT.H 90 91 #endif 92 93