From 1af84a625356768ab1f9687b70c825250123d7fd Mon Sep 17 00:00:00 2001 From: Harvey Harrison Date: Tue, 6 Jan 2009 14:56:25 -0800 Subject: [PATCH] sh: introduce asm/swab.h Signed-off-by: Harvey Harrison Signed-off-by: Linus Torvalds --- arch/sh/include/asm/Kbuild | 1 + arch/sh/include/asm/byteorder.h | 80 +++++------------------------ arch/sh/include/asm/{byteorder.h => swab.h} | 14 ++--- 3 files changed, 16 insertions(+), 79 deletions(-) rewrite arch/sh/include/asm/byteorder.h (88%) copy arch/sh/include/asm/{byteorder.h => swab.h} (81%) diff --git a/arch/sh/include/asm/Kbuild b/arch/sh/include/asm/Kbuild index 43910cdf78a..f1a2a0d1c79 100644 --- a/arch/sh/include/asm/Kbuild +++ b/arch/sh/include/asm/Kbuild @@ -6,3 +6,4 @@ unifdef-y += unistd_32.h unifdef-y += unistd_64.h unifdef-y += posix_types_32.h unifdef-y += posix_types_64.h +unifdef-y += swab.h diff --git a/arch/sh/include/asm/byteorder.h b/arch/sh/include/asm/byteorder.h dissimilarity index 88% index f5fa0653ebc..e95c41a5c8c 100644 --- a/arch/sh/include/asm/byteorder.h +++ b/arch/sh/include/asm/byteorder.h @@ -1,68 +1,12 @@ -#ifndef __ASM_SH_BYTEORDER_H -#define __ASM_SH_BYTEORDER_H - -/* - * Copyright (C) 1999 Niibe Yutaka - * Copyright (C) 2000, 2001 Paolo Alberelli - */ -#include -#include - -#ifdef __LITTLE_ENDIAN__ -# define __LITTLE_ENDIAN -#else -# define __BIG_ENDIAN -#endif - -#define __SWAB_64_THRU_32__ - -static inline __attribute_const__ __u32 __arch_swab32(__u32 x) -{ - __asm__( -#ifdef __SH5__ - "byterev %0, %0\n\t" - "shari %0, 32, %0" -#else - "swap.b %0, %0\n\t" - "swap.w %0, %0\n\t" - "swap.b %0, %0" -#endif - : "=r" (x) - : "0" (x)); - - return x; -} -#define __arch_swab32 __arch_swab32 - -static inline __attribute_const__ __u16 __arch_swab16(__u16 x) -{ - __asm__( -#ifdef __SH5__ - "byterev %0, %0\n\t" - "shari %0, 32, %0" -#else - "swap.b %0, %0" -#endif - : "=r" (x) - : "0" (x)); - - return x; -} -#define __arch_swab16 __arch_swab16 - -static inline __u64 __arch_swab64(__u64 val) -{ - union { - struct { __u32 a,b; } s; - __u64 u; - } v, w; - v.u = val; - w.s.b = __arch_swab32(v.s.a); - w.s.a = __arch_swab32(v.s.b); - return w.u; -} -#define __arch_swab64 __arch_swab64 - -#include - -#endif /* __ASM_SH_BYTEORDER_H */ +#ifndef __ASM_SH_BYTEORDER_H +#define __ASM_SH_BYTEORDER_H + +#include + +#ifdef __LITTLE_ENDIAN__ +#include +#else +#include +#endif + +#endif /* __ASM_SH_BYTEORDER_H */ diff --git a/arch/sh/include/asm/byteorder.h b/arch/sh/include/asm/swab.h similarity index 81% copy from arch/sh/include/asm/byteorder.h copy to arch/sh/include/asm/swab.h index f5fa0653ebc..e6931593510 100644 --- a/arch/sh/include/asm/byteorder.h +++ b/arch/sh/include/asm/swab.h @@ -1,5 +1,5 @@ -#ifndef __ASM_SH_BYTEORDER_H -#define __ASM_SH_BYTEORDER_H +#ifndef __ASM_SH_SWAB_H +#define __ASM_SH_SWAB_H /* * Copyright (C) 1999 Niibe Yutaka @@ -8,12 +8,6 @@ #include #include -#ifdef __LITTLE_ENDIAN__ -# define __LITTLE_ENDIAN -#else -# define __BIG_ENDIAN -#endif - #define __SWAB_64_THRU_32__ static inline __attribute_const__ __u32 __arch_swab32(__u32 x) @@ -63,6 +57,4 @@ static inline __u64 __arch_swab64(__u64 val) } #define __arch_swab64 __arch_swab64 -#include - -#endif /* __ASM_SH_BYTEORDER_H */ +#endif /* __ASM_SH_SWAB_H */ -- 2.11.4.GIT