File: /usr/src/linux/include/asm-parisc/unaligned.h

1     #ifndef _ASM_PARISC_UNALIGNED_H_
2     #define _ASM_PARISC_UNALIGNED_H_
3     
4     /* parisc can't handle unaligned accesses. */
5     /* copied from asm-sparc/unaligned.h */
6     
7     #include <linux/string.h>
8     
9     
10     /* Use memmove here, so gcc does not insert a __builtin_memcpy. */
11     
12     #define get_unaligned(ptr) \
13       ({ __typeof__(*(ptr)) __tmp; memmove(&__tmp, (ptr), sizeof(*(ptr))); __tmp; })
14     
15     #define put_unaligned(val, ptr)				\
16       ({ __typeof__(*(ptr)) __tmp = (val);			\
17          memmove((ptr), &__tmp, sizeof(*(ptr)));		\
18          (void)0; })
19     
20     #endif /* _ASM_PARISC_UNALIGNED_H */
21