blob: fccc180c3913ff84a67af1139d0bc43a3eeed3a5 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _ASM_M32R_UNALIGNED_H
2#define _ASM_M32R_UNALIGNED_H
3
Linus Torvalds1da177e2005-04-16 15:20:36 -07004/*
5 * For the benefit of those who are trying to port Linux to another
6 * architecture, here are some C-language equivalents.
7 */
8
9#include <asm/string.h>
10
Linus Torvalds1da177e2005-04-16 15:20:36 -070011#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
Hirokazu Takatafabb6262007-02-10 01:43:40 -080019#endif /* _ASM_M32R_UNALIGNED_H */