home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sparc / include / asm / byteorder.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  970 b   |  52 lines

  1. #ifndef _SPARC_BYTEORDER_H
  2. #define _SPARC_BYTEORDER_H
  3.  
  4. #include <asm/types.h>
  5. #include <asm/asi.h>
  6.  
  7. #define __BIG_ENDIAN
  8.  
  9. #ifdef CONFIG_SPARC32
  10. #define __SWAB_64_THRU_32__
  11. #endif
  12.  
  13. #ifdef CONFIG_SPARC64
  14. static inline __u16 __arch_swab16p(const __u16 *addr)
  15. {
  16.     __u16 ret;
  17.  
  18.     __asm__ __volatile__ ("lduha [%1] %2, %0"
  19.                   : "=r" (ret)
  20.                   : "r" (addr), "i" (ASI_PL));
  21.     return ret;
  22. }
  23. #define __arch_swab16p __arch_swab16p
  24.  
  25. static inline __u32 __arch_swab32p(const __u32 *addr)
  26. {
  27.     __u32 ret;
  28.  
  29.     __asm__ __volatile__ ("lduwa [%1] %2, %0"
  30.                   : "=r" (ret)
  31.                   : "r" (addr), "i" (ASI_PL));
  32.     return ret;
  33. }
  34. #define __arch_swab32p __arch_swab32p
  35.  
  36. static inline __u64 __arch_swab64p(const __u64 *addr)
  37. {
  38.     __u64 ret;
  39.  
  40.     __asm__ __volatile__ ("ldxa [%1] %2, %0"
  41.                   : "=r" (ret)
  42.                   : "r" (addr), "i" (ASI_PL));
  43.     return ret;
  44. }
  45. #define __arch_swab64p __arch_swab64p
  46.  
  47. #endif /* CONFIG_SPARC64 */
  48.  
  49. #include <linux/byteorder.h>
  50.  
  51. #endif /* _SPARC_BYTEORDER_H */
  52.