diff options
Diffstat (limited to 'xen/include/acm/acm_endian.h')
-rw-r--r-- | xen/include/acm/acm_endian.h | 52 |
1 files changed, 11 insertions, 41 deletions
diff --git a/xen/include/acm/acm_endian.h b/xen/include/acm/acm_endian.h index 49d23b5d04..11781dd4f4 100644 --- a/xen/include/acm/acm_endian.h +++ b/xen/include/acm/acm_endian.h @@ -22,57 +22,27 @@ #ifndef _ACM_ENDIAN_H #define _ACM_ENDIAN_H -/* don't use these functions in performance critical sections! */ - -/* set during initialization by testing */ -extern u8 little_endian; - -static inline u32 ntohl(u32 x) -{ - if (little_endian) - return - ( (((x) >> 24) & 0xff )| - (((x) >> 8) & 0xff00 )| - (((x) << 8) & 0xff0000 )| - (((x) << 24) & 0xff000000) ); - else - return x; -} - -static inline u16 ntohs(u16 x) -{ - if (little_endian) - return - ( (((x) >> 8) & 0xff )| - (((x) << 8) & 0xff00 ) ); - else - return x; -} - -#define htonl(x) ntohl(x) -#define htons(x) ntohs(x) +#include <asm/byteorder.h> static inline void arrcpy16(u16 *dest, const u16 *src, size_t n) { - unsigned int i = 0; - while (i < n) { - dest[i] = htons(src[i]); - i++; - } + unsigned int i; + for ( i = 0; i < n; i++ ) + dest[i] = cpu_to_be16(src[i]); } static inline void arrcpy32(u32 *dest, const u32 *src, size_t n) { - unsigned int i = 0; - while (i < n) { - dest[i] = htonl(src[i]); - i++; - } + unsigned int i; + for ( i = 0; i < n; i++ ) + dest[i] = cpu_to_be32(src[i]); } -static inline void arrcpy(void *dest, const void *src, unsigned int elsize, size_t n) +static inline void arrcpy( + void *dest, const void *src, unsigned int elsize, size_t n) { - switch (elsize) { + switch ( elsize ) + { case sizeof(u16): arrcpy16((u16 *)dest, (u16 *)src, n); break; |