Merge tag 'critical_fix_for_3.9' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6.git] / include / asm-generic / unaligned.h
blob03cf5936bad6af2e6216e100e2525a64c66966de
1 #ifndef __ASM_GENERIC_UNALIGNED_H
2 #define __ASM_GENERIC_UNALIGNED_H
4 /*
5 * This is the most generic implementation of unaligned accesses
6 * and should work almost anywhere.
8 * If an architecture can handle unaligned accesses in hardware,
9 * it may want to use the linux/unaligned/access_ok.h implementation
10 * instead.
12 #include <asm/byteorder.h>
14 #if defined(__LITTLE_ENDIAN)
15 # include <linux/unaligned/le_struct.h>
16 # include <linux/unaligned/be_byteshift.h>
17 # include <linux/unaligned/generic.h>
18 # define get_unaligned __get_unaligned_le
19 # define put_unaligned __put_unaligned_le
20 #elif defined(__BIG_ENDIAN)
21 # include <linux/unaligned/be_struct.h>
22 # include <linux/unaligned/le_byteshift.h>
23 # include <linux/unaligned/generic.h>
24 # define get_unaligned __get_unaligned_be
25 # define put_unaligned __put_unaligned_be
26 #else
27 # error need to define endianess
28 #endif
30 #endif /* __ASM_GENERIC_UNALIGNED_H */