Commit f4d2b14501bb7f9a3fa75c07ec0940068fadf728

Authored by Harvey Harrison
Committed by Linus Torvalds
1 parent 1af84a6253

sparc: introduce asm/swab.h

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 3 changed files with 48 additions and 44 deletions Side-by-side Diff

arch/sparc/include/asm/Kbuild
... ... @@ -17,4 +17,5 @@
17 17 header-y += uctx.h
18 18 header-y += utrap.h
19 19 header-y += watchdog.h
  20 +header-y += swab.h
arch/sparc/include/asm/byteorder.h
1 1 #ifndef _SPARC_BYTEORDER_H
2 2 #define _SPARC_BYTEORDER_H
3 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>
  4 +#include <asm/swab.h>
  5 +#include <linux/byteorder/big_endian.h>
48 6  
49 7 #endif /* _SPARC_BYTEORDER_H */
arch/sparc/include/asm/swab.h
  1 +#ifndef _SPARC_SWAB_H
  2 +#define _SPARC_SWAB_H
  3 +
  4 +#include <linux/types.h>
  5 +#include <asm/asi.h>
  6 +
  7 +#if defined(__sparc__) && defined(__arch64__)
  8 +static inline __u16 __arch_swab16p(const __u16 *addr)
  9 +{
  10 + __u16 ret;
  11 +
  12 + __asm__ __volatile__ ("lduha [%1] %2, %0"
  13 + : "=r" (ret)
  14 + : "r" (addr), "i" (ASI_PL));
  15 + return ret;
  16 +}
  17 +#define __arch_swab16p __arch_swab16p
  18 +
  19 +static inline __u32 __arch_swab32p(const __u32 *addr)
  20 +{
  21 + __u32 ret;
  22 +
  23 + __asm__ __volatile__ ("lduwa [%1] %2, %0"
  24 + : "=r" (ret)
  25 + : "r" (addr), "i" (ASI_PL));
  26 + return ret;
  27 +}
  28 +#define __arch_swab32p __arch_swab32p
  29 +
  30 +static inline __u64 __arch_swab64p(const __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 +#define __arch_swab64p __arch_swab64p
  40 +
  41 +#else
  42 +#define __SWAB_64_THRU_32__
  43 +#endif /* defined(__sparc__) && defined(__arch64__) */
  44 +
  45 +#endif /* _SPARC_SWAB_H */