~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-sparc64/byteorder.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* $Id: byteorder.h,v 1.8 1997/12/18 02:44:14 ecd Exp $ */
  2 #ifndef _SPARC64_BYTEORDER_H
  3 #define _SPARC64_BYTEORDER_H
  4 
  5 #include <asm/types.h>
  6 #include <asm/asi.h>
  7 
  8 #ifdef __GNUC__
  9 
 10 static __inline__ __u16 ___arch__swab16p(__u16 *addr)
 11 {
 12         __u16 ret;
 13 
 14         __asm__ __volatile__ ("lduha [%1] %2, %0"
 15                               : "=r" (ret)
 16                               : "r" (addr), "i" (ASI_PL));
 17         return ret;
 18 }
 19 
 20 static __inline__ __u32 ___arch__swab32p(__u32 *addr)
 21 {
 22         __u32 ret;
 23 
 24         __asm__ __volatile__ ("lduwa [%1] %2, %0"
 25                               : "=r" (ret)
 26                               : "r" (addr), "i" (ASI_PL));
 27         return ret;
 28 }
 29 
 30 static __inline__ __u64 ___arch__swab64p(__u64 *addr)
 31 {
 32         __u64 ret;
 33 
 34         __asm__ __volatile__ ("ldxa [%1] %2, %0"
 35                               : "=r" (ret)
 36                               : "r" (addr), "i" (ASI_PL));
 37         return ret;
 38 }
 39 
 40 #define __arch__swab16p(x) ___arch__swab16p(x)
 41 #define __arch__swab32p(x) ___arch__swab32p(x)
 42 #define __arch__swab64p(x) ___arch__swab64p(x)
 43 
 44 #define __BYTEORDER_HAS_U64__
 45 
 46 #endif /* __GNUC__ */
 47 
 48 #include <linux/byteorder/big_endian.h>
 49 
 50 #endif /* _SPARC64_BYTEORDER_H */
 51 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.