]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blob - arch/sparc/include/asm/byteorder.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-omap-h63xx.git] / arch / sparc / include / asm / byteorder.h
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 */