/[qemu]/qemu/thunk.h
ViewVC logotype

Diff of /qemu/thunk.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by bellard, Wed Jun 25 22:11:41 2003 UTC revision 1.11 by bellard, Sun Aug 10 21:38:48 2003 UTC
# Line 23  Line 23 
23  #include <inttypes.h>  #include <inttypes.h>
24  #include "config.h"  #include "config.h"
25    
26  #ifdef HAVE_BYTESWAP_H  #include "bswap.h"
 #include <byteswap.h>  
 #else  
   
 #define bswap_16(x) \  
 ({ \  
         uint16_t __x = (x); \  
         ((uint16_t)( \  
                 (((uint16_t)(__x) & (uint16_t)0x00ffU) << 8) | \  
                 (((uint16_t)(__x) & (uint16_t)0xff00U) >> 8) )); \  
 })  
   
 #define bswap_32(x) \  
 ({ \  
         uint32_t __x = (x); \  
         ((uint32_t)( \  
                 (((uint32_t)(__x) & (uint32_t)0x000000ffUL) << 24) | \  
                 (((uint32_t)(__x) & (uint32_t)0x0000ff00UL) <<  8) | \  
                 (((uint32_t)(__x) & (uint32_t)0x00ff0000UL) >>  8) | \  
                 (((uint32_t)(__x) & (uint32_t)0xff000000UL) >> 24) )); \  
 })  
   
 #define bswap_64(x) \  
 ({ \  
         uint64_t __x = (x); \  
         ((uint64_t)( \  
                 (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00000000000000ffULL) << 56) | \  
                 (uint64_t)(((uint64_t)(__x) & (uint64_t)0x000000000000ff00ULL) << 40) | \  
                 (uint64_t)(((uint64_t)(__x) & (uint64_t)0x0000000000ff0000ULL) << 24) | \  
                 (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00000000ff000000ULL) <<  8) | \  
                 (uint64_t)(((uint64_t)(__x) & (uint64_t)0x000000ff00000000ULL) >>  8) | \  
                 (uint64_t)(((uint64_t)(__x) & (uint64_t)0x0000ff0000000000ULL) >> 24) | \  
                 (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00ff000000000000ULL) >> 40) | \  
                 (uint64_t)(((uint64_t)(__x) & (uint64_t)0xff00000000000000ULL) >> 56) )); \  
 })  
   
 #endif  
27    
28  #if defined(WORDS_BIGENDIAN) != defined(TARGET_WORDS_BIGENDIAN)  #if defined(WORDS_BIGENDIAN) != defined(TARGET_WORDS_BIGENDIAN)
29  #define BSWAP_NEEDED  #define BSWAP_NEEDED
# Line 68  Line 32 
32  /* XXX: autoconf */  /* XXX: autoconf */
33  #define TARGET_LONG_BITS 32  #define TARGET_LONG_BITS 32
34    
 #if defined(__alpha__) || defined (__ia64__)  
 #define HOST_LONG_BITS 64  
 #else  
 #define HOST_LONG_BITS 32  
 #endif  
   
35  #define TARGET_LONG_SIZE (TARGET_LONG_BITS / 8)  #define TARGET_LONG_SIZE (TARGET_LONG_BITS / 8)
 #define HOST_LONG_SIZE (HOST_LONG_BITS / 8)  
   
 static inline uint16_t bswap16(uint16_t x)  
 {  
     return bswap_16(x);  
 }  
   
 static inline uint32_t bswap32(uint32_t x)  
 {  
     return bswap_32(x);  
 }  
   
 static inline uint64_t bswap64(uint64_t x)  
 {  
     return bswap_64(x);  
 }  
   
 static inline void bswap16s(uint16_t *s)  
 {  
     *s = bswap16(*s);  
 }  
   
 static inline void bswap32s(uint32_t *s)  
 {  
     *s = bswap32(*s);  
 }  
   
 static inline void bswap64s(uint64_t *s)  
 {  
     *s = bswap64(*s);  
 }  
36    
37  #ifdef BSWAP_NEEDED  #ifdef BSWAP_NEEDED
38    

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26