more changes on original files
[linux-2.4.git] / include / asm-sh / unaligned.h
1 #ifndef __ASM_SH_UNALIGNED_H
2 #define __ASM_SH_UNALIGNED_H
3
4 /* SH 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_SH_UNALIGNED_H */