Blame view

kernel/linux-rt-4.4.41/arch/sparc/include/uapi/asm/swab.h 971 Bytes
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  #ifndef _SPARC_SWAB_H
  #define _SPARC_SWAB_H
  
  #include <linux/types.h>
  #include <asm/asi.h>
  
  #if defined(__sparc__) && defined(__arch64__)
  static inline __u16 __arch_swab16p(const __u16 *addr)
  {
  	__u16 ret;
  
  	__asm__ __volatile__ ("lduha [%2] %3, %0"
  			      : "=r" (ret)
  			      : "m" (*addr), "r" (addr), "i" (ASI_PL));
  	return ret;
  }
  #define __arch_swab16p __arch_swab16p
  
  static inline __u32 __arch_swab32p(const __u32 *addr)
  {
  	__u32 ret;
  
  	__asm__ __volatile__ ("lduwa [%2] %3, %0"
  			      : "=r" (ret)
  			      : "m" (*addr), "r" (addr), "i" (ASI_PL));
  	return ret;
  }
  #define __arch_swab32p __arch_swab32p
  
  static inline __u64 __arch_swab64p(const __u64 *addr)
  {
  	__u64 ret;
  
  	__asm__ __volatile__ ("ldxa [%2] %3, %0"
  			      : "=r" (ret)
  			      : "m" (*addr), "r" (addr), "i" (ASI_PL));
  	return ret;
  }
  #define __arch_swab64p __arch_swab64p
  
  #else
  #define __SWAB_64_THRU_32__
  #endif /* defined(__sparc__) && defined(__arch64__) */
  
  #endif /* _SPARC_SWAB_H */