ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / asm-sparc / unaligned.h
1 #ifndef _ASM_SPARC_UNALIGNED_H_
2 #define _ASM_SPARC_UNALIGNED_H_
3
4 /* Sparc can't handle unaligned accesses. */
5
6 #include <linux/string.h>
7
8
9 /* Use memmove here, so gcc does not insert a __builtin_memcpy. */
10
11 #define get_unaligned(ptr) \
12   ({ __typeof__(*(ptr)) __tmp; memmove(&__tmp, (ptr), sizeof(*(ptr))); __tmp; })
13
14 #define put_unaligned(val, ptr)                         \
15   ({ __typeof__(*(ptr)) __tmp = (val);                  \
16      memmove((ptr), &__tmp, sizeof(*(ptr)));            \
17      (void)0; })
18
19 #endif /* _ASM_SPARC_UNALIGNED_H */