Loading...
1#ifndef __ASM_ARM_UNALIGNED_H
2#define __ASM_ARM_UNALIGNED_H
3
4/*
5 * We generally want to set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS on ARMv6+,
6 * but we don't want to use linux/unaligned/access_ok.h since that can lead
7 * to traps on unaligned stm/ldm or strd/ldrd.
8 */
9#include <asm/byteorder.h>
10
11#if defined(__LITTLE_ENDIAN)
12# include <linux/unaligned/le_struct.h>
13# include <linux/unaligned/be_byteshift.h>
14# include <linux/unaligned/generic.h>
15# define get_unaligned __get_unaligned_le
16# define put_unaligned __put_unaligned_le
17#elif defined(__BIG_ENDIAN)
18# include <linux/unaligned/be_struct.h>
19# include <linux/unaligned/le_byteshift.h>
20# include <linux/unaligned/generic.h>
21# define get_unaligned __get_unaligned_be
22# define put_unaligned __put_unaligned_be
23#else
24# error need to define endianess
25#endif
26
27#endif /* __ASM_ARM_UNALIGNED_H */
1#ifndef _ASM_ARM_UNALIGNED_H
2#define _ASM_ARM_UNALIGNED_H
3
4#include <linux/unaligned/le_byteshift.h>
5#include <linux/unaligned/be_byteshift.h>
6#include <linux/unaligned/generic.h>
7
8/*
9 * Select endianness
10 */
11#ifndef __ARMEB__
12#define get_unaligned __get_unaligned_le
13#define put_unaligned __put_unaligned_le
14#else
15#define get_unaligned __get_unaligned_be
16#define put_unaligned __put_unaligned_be
17#endif
18
19#endif /* _ASM_ARM_UNALIGNED_H */