1 #ifndef __ASM_GENERIC_UNALIGNED_H 2 #define __ASM_GENERIC_UNALIGNED_H 3 4 /* 5 * This is the most generic implementation of unaligned accesses 6 * and should work almost anywhere. 7 * 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. 11 */ 12 #include <asm/byteorder.h> 13 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 29 30 #endif /* __ASM_GENERIC_UNALIGNED_H */ 31