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