diff options
Diffstat (limited to 'include/asm-xtensa/unaligned.h')
-rw-r--r-- | include/asm-xtensa/unaligned.h | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/include/asm-xtensa/unaligned.h b/include/asm-xtensa/unaligned.h index 28220890d0a6..8f3424fc5d18 100644 --- a/include/asm-xtensa/unaligned.h +++ b/include/asm-xtensa/unaligned.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-xtensa/unaligned.h | ||
3 | * | ||
4 | * Xtensa doesn't handle unaligned accesses efficiently. | 2 | * Xtensa doesn't handle unaligned accesses efficiently. |
5 | * | 3 | * |
6 | * This file is subject to the terms and conditions of the GNU General Public | 4 | * This file is subject to the terms and conditions of the GNU General Public |
@@ -9,20 +7,23 @@ | |||
9 | * | 7 | * |
10 | * Copyright (C) 2001 - 2005 Tensilica Inc. | 8 | * Copyright (C) 2001 - 2005 Tensilica Inc. |
11 | */ | 9 | */ |
10 | #ifndef _ASM_XTENSA_UNALIGNED_H | ||
11 | #define _ASM_XTENSA_UNALIGNED_H | ||
12 | 12 | ||
13 | #ifndef _XTENSA_UNALIGNED_H | 13 | #ifdef __XTENSA_EL__ |
14 | #define _XTENSA_UNALIGNED_H | 14 | # include <linux/unaligned/le_memmove.h> |
15 | 15 | # include <linux/unaligned/be_byteshift.h> | |
16 | #include <linux/string.h> | 16 | # include <linux/unaligned/generic.h> |
17 | 17 | # define get_unaligned __get_unaligned_le | |
18 | /* Use memmove here, so gcc does not insert a __builtin_memcpy. */ | 18 | # define put_unaligned __put_unaligned_le |
19 | 19 | #elif defined(__XTENSA_EB__) | |
20 | #define get_unaligned(ptr) \ | 20 | # include <linux/unaligned/be_memmove.h> |
21 | ({ __typeof__(*(ptr)) __tmp; memmove(&__tmp, (ptr), sizeof(*(ptr))); __tmp; }) | 21 | # include <linux/unaligned/le_byteshift.h> |
22 | 22 | # include <linux/unaligned/generic.h> | |
23 | #define put_unaligned(val, ptr) \ | 23 | # define get_unaligned __get_unaligned_be |
24 | ({ __typeof__(*(ptr)) __tmp = (val); \ | 24 | # define put_unaligned __put_unaligned_be |
25 | memmove((ptr), &__tmp, sizeof(*(ptr))); \ | 25 | #else |
26 | (void)0; }) | 26 | # error processor byte order undefined! |
27 | #endif | ||
27 | 28 | ||
28 | #endif /* _XTENSA_UNALIGNED_H */ | 29 | #endif /* _ASM_XTENSA_UNALIGNED_H */ |