diff options
| author | Joakim Tjernlund <Joakim.Tjernlund@transmode.se> | 2010-05-24 17:33:01 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-25 11:07:02 -0400 |
| commit | b3b77c8caef1750ebeea1054e39e358550ea9f55 (patch) | |
| tree | 9026ca0b3453226434a4ca8878832a4910b48664 | |
| parent | e47103b1af5df52fa69e18b14d3012472f78817d (diff) | |
endian: #define __BYTE_ORDER
Linux does not define __BYTE_ORDER in its endian header files which makes
some header files bend backwards to get at the current endian. Lets
#define __BYTE_ORDER in big_endian.h/litte_endian.h to make it easier for
header files that are used in user space too.
In userspace the convention is that
1. _both_ __LITTLE_ENDIAN and __BIG_ENDIAN are defined,
2. you have to test for e.g. __BYTE_ORDER == __BIG_ENDIAN.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | arch/alpha/math-emu/sfp-util.h | 5 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/sfp-machine.h | 6 | ||||
| -rw-r--r-- | arch/s390/include/asm/sfp-util.h | 2 | ||||
| -rw-r--r-- | arch/sh/math-emu/sfp-util.h | 4 | ||||
| -rw-r--r-- | arch/sparc/math-emu/sfp-util_32.h | 6 | ||||
| -rw-r--r-- | arch/sparc/math-emu/sfp-util_64.h | 6 | ||||
| -rw-r--r-- | arch/x86/boot/compressed/relocs.c | 4 | ||||
| -rw-r--r-- | include/linux/byteorder/big_endian.h | 3 | ||||
| -rw-r--r-- | include/linux/byteorder/little_endian.h | 3 |
9 files changed, 8 insertions, 31 deletions
diff --git a/arch/alpha/math-emu/sfp-util.h b/arch/alpha/math-emu/sfp-util.h index f53707f7745..d4c6ae7fee4 100644 --- a/arch/alpha/math-emu/sfp-util.h +++ b/arch/alpha/math-emu/sfp-util.h | |||
| @@ -28,8 +28,3 @@ extern unsigned long __udiv_qrnnd (unsigned long *, unsigned long, | |||
| 28 | #define UDIV_NEEDS_NORMALIZATION 1 | 28 | #define UDIV_NEEDS_NORMALIZATION 1 |
| 29 | 29 | ||
| 30 | #define abort() goto bad_insn | 30 | #define abort() goto bad_insn |
| 31 | |||
| 32 | #ifndef __LITTLE_ENDIAN | ||
| 33 | #define __LITTLE_ENDIAN -1 | ||
| 34 | #endif | ||
| 35 | #define __BYTE_ORDER __LITTLE_ENDIAN | ||
diff --git a/arch/powerpc/include/asm/sfp-machine.h b/arch/powerpc/include/asm/sfp-machine.h index 3a7a67a0d00..8b8fab91ad1 100644 --- a/arch/powerpc/include/asm/sfp-machine.h +++ b/arch/powerpc/include/asm/sfp-machine.h | |||
| @@ -353,12 +353,6 @@ | |||
| 353 | #define abort() \ | 353 | #define abort() \ |
| 354 | return 0 | 354 | return 0 |
| 355 | 355 | ||
| 356 | #ifdef __BIG_ENDIAN | ||
| 357 | #define __BYTE_ORDER __BIG_ENDIAN | ||
| 358 | #else | ||
| 359 | #define __BYTE_ORDER __LITTLE_ENDIAN | ||
| 360 | #endif | ||
| 361 | |||
| 362 | /* Exception flags. */ | 356 | /* Exception flags. */ |
| 363 | #define EFLAG_INVALID (1 << (31 - 2)) | 357 | #define EFLAG_INVALID (1 << (31 - 2)) |
| 364 | #define EFLAG_OVERFLOW (1 << (31 - 3)) | 358 | #define EFLAG_OVERFLOW (1 << (31 - 3)) |
diff --git a/arch/s390/include/asm/sfp-util.h b/arch/s390/include/asm/sfp-util.h index 0addc6466d9..7d43fee17e3 100644 --- a/arch/s390/include/asm/sfp-util.h +++ b/arch/s390/include/asm/sfp-util.h | |||
| @@ -73,5 +73,3 @@ extern unsigned long __udiv_qrnnd (unsigned int *, unsigned int, | |||
| 73 | #define UDIV_NEEDS_NORMALIZATION 0 | 73 | #define UDIV_NEEDS_NORMALIZATION 0 |
| 74 | 74 | ||
| 75 | #define abort() return 0 | 75 | #define abort() return 0 |
| 76 | |||
| 77 | #define __BYTE_ORDER __BIG_ENDIAN | ||
diff --git a/arch/sh/math-emu/sfp-util.h b/arch/sh/math-emu/sfp-util.h index 8ae1bd310ad..e8526021892 100644 --- a/arch/sh/math-emu/sfp-util.h +++ b/arch/sh/math-emu/sfp-util.h | |||
| @@ -66,7 +66,3 @@ | |||
| 66 | } while (0) | 66 | } while (0) |
| 67 | 67 | ||
| 68 | #define abort() return 0 | 68 | #define abort() return 0 |
| 69 | |||
| 70 | #define __BYTE_ORDER __LITTLE_ENDIAN | ||
| 71 | |||
| 72 | |||
diff --git a/arch/sparc/math-emu/sfp-util_32.h b/arch/sparc/math-emu/sfp-util_32.h index d1b2aff3c25..0ea35afbb91 100644 --- a/arch/sparc/math-emu/sfp-util_32.h +++ b/arch/sparc/math-emu/sfp-util_32.h | |||
| @@ -107,9 +107,3 @@ | |||
| 107 | 107 | ||
| 108 | #define abort() \ | 108 | #define abort() \ |
| 109 | return 0 | 109 | return 0 |
| 110 | |||
| 111 | #ifdef __BIG_ENDIAN | ||
| 112 | #define __BYTE_ORDER __BIG_ENDIAN | ||
| 113 | #else | ||
| 114 | #define __BYTE_ORDER __LITTLE_ENDIAN | ||
| 115 | #endif | ||
diff --git a/arch/sparc/math-emu/sfp-util_64.h b/arch/sparc/math-emu/sfp-util_64.h index 425d3cf01af..d17c9bc7218 100644 --- a/arch/sparc/math-emu/sfp-util_64.h +++ b/arch/sparc/math-emu/sfp-util_64.h | |||
| @@ -112,9 +112,3 @@ | |||
| 112 | 112 | ||
| 113 | #define abort() \ | 113 | #define abort() \ |
| 114 | return 0 | 114 | return 0 |
| 115 | |||
| 116 | #ifdef __BIG_ENDIAN | ||
| 117 | #define __BYTE_ORDER __BIG_ENDIAN | ||
| 118 | #else | ||
| 119 | #define __BYTE_ORDER __LITTLE_ENDIAN | ||
| 120 | #endif | ||
diff --git a/arch/x86/boot/compressed/relocs.c b/arch/x86/boot/compressed/relocs.c index 89bbf4e4d05..7b1aaa20c7b 100644 --- a/arch/x86/boot/compressed/relocs.c +++ b/arch/x86/boot/compressed/relocs.c | |||
| @@ -195,11 +195,11 @@ static const char *sym_name(const char *sym_strtab, Elf32_Sym *sym) | |||
| 195 | 195 | ||
| 196 | 196 | ||
| 197 | 197 | ||
| 198 | #if BYTE_ORDER == LITTLE_ENDIAN | 198 | #if __BYTE_ORDER == __LITTLE_ENDIAN |
| 199 | #define le16_to_cpu(val) (val) | 199 | #define le16_to_cpu(val) (val) |
| 200 | #define le32_to_cpu(val) (val) | 200 | #define le32_to_cpu(val) (val) |
| 201 | #endif | 201 | #endif |
| 202 | #if BYTE_ORDER == BIG_ENDIAN | 202 | #if __BYTE_ORDER == __BIG_ENDIAN |
| 203 | #define le16_to_cpu(val) bswap_16(val) | 203 | #define le16_to_cpu(val) bswap_16(val) |
| 204 | #define le32_to_cpu(val) bswap_32(val) | 204 | #define le32_to_cpu(val) bswap_32(val) |
| 205 | #endif | 205 | #endif |
diff --git a/include/linux/byteorder/big_endian.h b/include/linux/byteorder/big_endian.h index 3c80fd7e8b5..d53a67dff01 100644 --- a/include/linux/byteorder/big_endian.h +++ b/include/linux/byteorder/big_endian.h | |||
| @@ -7,6 +7,9 @@ | |||
| 7 | #ifndef __BIG_ENDIAN_BITFIELD | 7 | #ifndef __BIG_ENDIAN_BITFIELD |
| 8 | #define __BIG_ENDIAN_BITFIELD | 8 | #define __BIG_ENDIAN_BITFIELD |
| 9 | #endif | 9 | #endif |
| 10 | #ifndef __BYTE_ORDER | ||
| 11 | #define __BYTE_ORDER __BIG_ENDIAN | ||
| 12 | #endif | ||
| 10 | 13 | ||
| 11 | #include <linux/types.h> | 14 | #include <linux/types.h> |
| 12 | #include <linux/swab.h> | 15 | #include <linux/swab.h> |
diff --git a/include/linux/byteorder/little_endian.h b/include/linux/byteorder/little_endian.h index 83195fb8296..f7f8ad13adb 100644 --- a/include/linux/byteorder/little_endian.h +++ b/include/linux/byteorder/little_endian.h | |||
| @@ -7,6 +7,9 @@ | |||
| 7 | #ifndef __LITTLE_ENDIAN_BITFIELD | 7 | #ifndef __LITTLE_ENDIAN_BITFIELD |
| 8 | #define __LITTLE_ENDIAN_BITFIELD | 8 | #define __LITTLE_ENDIAN_BITFIELD |
| 9 | #endif | 9 | #endif |
| 10 | #ifndef __BYTE_ORDER | ||
| 11 | #define __BYTE_ORDER __LITTLE_ENDIAN | ||
| 12 | #endif | ||
| 10 | 13 | ||
| 11 | #include <linux/types.h> | 14 | #include <linux/types.h> |
| 12 | #include <linux/swab.h> | 15 | #include <linux/swab.h> |
