Skip to contentSkip to conversation

byteorder: use generic C version for value byteswapping

PATCH New Harvey Harrison 1 participant 1 message Aug 27, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 byteorder: use generic C version for value byteswapping

This makes the new implementation of the byteorder helpers match the old in how it degraded when an arch-defined version was not available:

1) swab()
- look for arch defined
- if not, use generic c version

2) swabp()
- look for arch-defined
- if not, deref pointer and use swab()

3) swabs()
- look for arch defined
- if not, use swabp

---
David, I hope this has covered the last of your objections...also note that once each arch has moved over, __constant_{endian} will no longer be required.

 include/linux/swab.h |   10 ----------
 1 files changed, 0 insertions(+), 10 deletions(-)
include/linux/swab.h +0 -10
index 270d5c2..bbed279 100644
@@ -47,8 +47,6 @@ static inline __attribute_const__ __u16 ___swab16(__u16 val)
 {
 #ifdef __arch_swab16
 	return __arch_swab16(val);
-#elif defined(__arch_swab16p)
-	return __arch_swab16p(&val);
 #else
 	return __const_swab16(val);
 #endif
@@ -58,8 +56,6 @@ static inline __attribute_const__ __u32 ___swab32(__u32 val)
 {
 #ifdef __arch_swab32
 	return __arch_swab32(val);
-#elif defined(__arch_swab32p)
-	return __arch_swab32p(&val);
 #else
 	return __const_swab32(val);
 #endif
@@ -69,8 +65,6 @@ static inline __attribute_const__ __u64 ___swab64(__u64 val)
 {
 #ifdef __arch_swab64
 	return __arch_swab64(val);
-#elif defined(__arch_swab64p)
-	return __arch_swab64p(&val);
 #elif defined(__SWAB_64_THRU_32__)
 	__u32 h = val >> 32;
 	__u32 l = val & ((1ULL << 32) - 1);
@@ -84,8 +78,6 @@ static inline __attribute_const__ __u32 ___swahw32(__u32 val)
 {
 #ifdef __arch_swahw32
 	return __arch_swahw32(val);
-#elif defined(__arch_swahw32p)
-	return __arch_swahw32p(&val);
 #else
 	return __const_swahw32(val);
 #endif
@@ -95,8 +87,6 @@ static inline __attribute_const__ __u32 ___swahb32(__u32 val)
 {
 #ifdef __arch_swahb32
 	return __arch_swahb32(val);
-#elif defined(__arch_swahb32p)
-	return __arch_swahb32p(&val);
 #else
 	return __const_swahb32(val);
 #endif
Signature · 1 line
1.6.0.366.gf9ffa8