|
@@ -1,5 +1,27 @@
|
|
|
-#ifdef __uClinux__
|
|
|
-#include "swab_no.h"
|
|
|
-#else
|
|
|
-#include "swab_mm.h"
|
|
|
+#ifndef _M68K_SWAB_H
|
|
|
+#define _M68K_SWAB_H
|
|
|
+
|
|
|
+#include <asm/types.h>
|
|
|
+#include <linux/compiler.h>
|
|
|
+
|
|
|
+#define __SWAB_64_THRU_32__
|
|
|
+
|
|
|
+#if defined (__mcfisaaplus__) || defined (__mcfisac__)
|
|
|
+static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
|
|
|
+{
|
|
|
+ __asm__("byterev %0" : "=d" (val) : "0" (val));
|
|
|
+ return val;
|
|
|
+}
|
|
|
+
|
|
|
+#define __arch_swab32 __arch_swab32
|
|
|
+#elif !defined(__uClinux__)
|
|
|
+
|
|
|
+static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
|
|
|
+{
|
|
|
+ __asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val));
|
|
|
+ return val;
|
|
|
+}
|
|
|
+#define __arch_swab32 __arch_swab32
|
|
|
#endif
|
|
|
+
|
|
|
+#endif /* _M68K_SWAB_H */
|