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 */ |
