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