diff options
| author | Steve French <sfrench@us.ibm.com> | 2008-05-06 13:55:32 -0400 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2008-05-06 13:55:32 -0400 |
| commit | a815752ac0ffdb910e92958d41d28f4fb28e5296 (patch) | |
| tree | a3aa16a282354da0debe8e3a3a7ed8aac6e54001 /include/asm-xtensa | |
| parent | 5ade9deaaa3e1f7291467d97b238648e43eae15e (diff) | |
| parent | a15306365a16380f3bafee9e181ba01231d4acd7 (diff) | |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'include/asm-xtensa')
| -rw-r--r-- | include/asm-xtensa/types.h | 33 | ||||
| -rw-r--r-- | include/asm-xtensa/unaligned.h | 35 |
2 files changed, 19 insertions, 49 deletions
diff --git a/include/asm-xtensa/types.h b/include/asm-xtensa/types.h index b27d841a8eb7..c89569a8da0c 100644 --- a/include/asm-xtensa/types.h +++ b/include/asm-xtensa/types.h | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #ifndef _XTENSA_TYPES_H | 11 | #ifndef _XTENSA_TYPES_H |
| 12 | #define _XTENSA_TYPES_H | 12 | #define _XTENSA_TYPES_H |
| 13 | 13 | ||
| 14 | #include <asm-generic/int-ll64.h> | ||
| 14 | 15 | ||
| 15 | #ifdef __ASSEMBLY__ | 16 | #ifdef __ASSEMBLY__ |
| 16 | # define __XTENSA_UL(x) (x) | 17 | # define __XTENSA_UL(x) (x) |
| @@ -25,42 +26,10 @@ | |||
| 25 | typedef unsigned short umode_t; | 26 | typedef unsigned short umode_t; |
| 26 | 27 | ||
| 27 | /* | 28 | /* |
| 28 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | ||
| 29 | * header files exported to user space | ||
| 30 | */ | ||
| 31 | |||
| 32 | typedef __signed__ char __s8; | ||
| 33 | typedef unsigned char __u8; | ||
| 34 | |||
| 35 | typedef __signed__ short __s16; | ||
| 36 | typedef unsigned short __u16; | ||
| 37 | |||
| 38 | typedef __signed__ int __s32; | ||
| 39 | typedef unsigned int __u32; | ||
| 40 | |||
| 41 | #if defined(__GNUC__) | ||
| 42 | __extension__ typedef __signed__ long long __s64; | ||
| 43 | __extension__ typedef unsigned long long __u64; | ||
| 44 | #endif | ||
| 45 | |||
| 46 | /* | ||
| 47 | * These aren't exported outside the kernel to avoid name space clashes | 29 | * These aren't exported outside the kernel to avoid name space clashes |
| 48 | */ | 30 | */ |
| 49 | #ifdef __KERNEL__ | 31 | #ifdef __KERNEL__ |
| 50 | 32 | ||
| 51 | typedef __signed__ char s8; | ||
| 52 | typedef unsigned char u8; | ||
| 53 | |||
| 54 | typedef __signed__ short s16; | ||
| 55 | typedef unsigned short u16; | ||
| 56 | |||
| 57 | typedef __signed__ int s32; | ||
| 58 | typedef unsigned int u32; | ||
| 59 | |||
| 60 | typedef __signed__ long long s64; | ||
| 61 | typedef unsigned long long u64; | ||
| 62 | |||
| 63 | |||
| 64 | #define BITS_PER_LONG 32 | 33 | #define BITS_PER_LONG 32 |
| 65 | 34 | ||
| 66 | /* Dma addresses are 32-bits wide. */ | 35 | /* Dma addresses are 32-bits wide. */ |
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 */ |
