1 unsigned long __cdecl _byteswap_ulong (unsigned long _Long); 2 _byteswap_ulong(unsigned long _Long)3unsigned long __cdecl _byteswap_ulong (unsigned long _Long) 4 { 5 #if defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) 6 unsigned long retval; 7 __asm__ __volatile__ ("bswapl %[retval]" : [retval] "=rm" (retval) : "[retval]" (_Long)); 8 return retval; 9 #else 10 unsigned char *b = (void*)&_Long; 11 unsigned char tmp; 12 tmp = b[0]; 13 b[0] = b[3]; 14 b[3] = tmp; 15 tmp = b[1]; 16 b[1] = b[2]; 17 b[2] = tmp; 18 return _Long; 19 #endif /* defined(_AMD64_) || defined(__x86_64__) || defined(_X86_) || defined(__i386__) */ 20 } 21