]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blame - include/asm-generic/unaligned.h
nfit, libnvdimm: fix interleave set cookie calculation
[mirror_ubuntu-zesty-kernel.git] / include / asm-generic / unaligned.h
CommitLineData
aafe4dbe
AB
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.
aafe4dbe
AB
7 */
8#include <asm/byteorder.h>
9
0567f5fa
AB
10/* Set by the arch if it can handle unaligned accesses in hardware. */
11#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
12# include <linux/unaligned/access_ok.h>
13#endif
14
aafe4dbe 15#if defined(__LITTLE_ENDIAN)
0567f5fa
AB
16# ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
17# include <linux/unaligned/le_struct.h>
18# include <linux/unaligned/be_byteshift.h>
19# endif
aafe4dbe
AB
20# include <linux/unaligned/generic.h>
21# define get_unaligned __get_unaligned_le
22# define put_unaligned __put_unaligned_le
23#elif defined(__BIG_ENDIAN)
0567f5fa
AB
24# ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
25# include <linux/unaligned/be_struct.h>
26# include <linux/unaligned/le_byteshift.h>
27# endif
aafe4dbe
AB
28# include <linux/unaligned/generic.h>
29# define get_unaligned __get_unaligned_be
30# define put_unaligned __put_unaligned_be
31#else
32# error need to define endianess
33#endif
34
35#endif /* __ASM_GENERIC_UNALIGNED_H */