35 lines · 1.0 KB · C
RawDownload
#ifndef __ASM_GENERIC_UNALIGNED_H#define __ASM_GENERIC_UNALIGNED_H /* * This is the most generic implementation of unaligned accesses * and should work almost anywhere. */#include <asm/byteorder.h> /* Set by the arch if it can handle unaligned accesses in hardware. */#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS# include <linux/unaligned/access_ok.h>#endif #if defined(__LITTLE_ENDIAN)# ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS#  include <linux/unaligned/le_struct.h>#  include <linux/unaligned/be_byteshift.h># endif# include <linux/unaligned/generic.h># define get_unaligned	__get_unaligned_le# define put_unaligned	__put_unaligned_le#elif defined(__BIG_ENDIAN)# ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS#  include <linux/unaligned/be_struct.h>#  include <linux/unaligned/le_byteshift.h># endif# include <linux/unaligned/generic.h># define get_unaligned	__get_unaligned_be# define put_unaligned	__put_unaligned_be#else# error need to define endianess#endif #endif /* __ASM_GENERIC_UNALIGNED_H */