Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent
[linux-2.6] / arch / sparc / include / asm / byteorder.h
1 #ifndef _SPARC_BYTEORDER_H
2 #define _SPARC_BYTEORDER_H
3
4 #include <linux/types.h>
5 #include <asm/asi.h>
6
7 #define __BIG_ENDIAN
8
9 #if defined(__sparc__) && defined(__arch64__)
10 static inline __u16 __arch_swab16p(const __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 #define __arch_swab16p __arch_swab16p
20
21 static inline __u32 __arch_swab32p(const __u32 *addr)
22 {
23         __u32 ret;
24
25         __asm__ __volatile__ ("lduwa [%1] %2, %0"
26                               : "=r" (ret)
27                               : "r" (addr), "i" (ASI_PL));
28         return ret;
29 }
30 #define __arch_swab32p __arch_swab32p
31
32 static inline __u64 __arch_swab64p(const __u64 *addr)
33 {
34         __u64 ret;
35
36         __asm__ __volatile__ ("ldxa [%1] %2, %0"
37                               : "=r" (ret)
38                               : "r" (addr), "i" (ASI_PL));
39         return ret;
40 }
41 #define __arch_swab64p __arch_swab64p
42
43 #else
44 #define __SWAB_64_THRU_32__
45 #endif /* defined(__sparc__) && defined(__arch64__) */
46
47 #include <linux/byteorder.h>
48
49 #endif /* _SPARC_BYTEORDER_H */