Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 153494
Collapse All | Expand All

(-)reiserfsprogs-3.6.19.orig/include/asm/unaligned.h (+45 lines)
Line 0 Link Here
1
#if defined(__arm__)
2
3
/* Unaligned 32 bits read on ARM */
4
#ifndef __ARMEB__
5
#define get_unaligned(p)   __get_unaligned_le32((__u8*)(p))
6
#define put_unaligned(v,p)   __put_unaligned_le32((v),(__u8*)(p))
7
#else
8
#define get_unaligned(p)   __get_unaligned_be32((__u8*)(p))
9
#define put_unaligned(v,p)   __put_unaligned_be32((v),(__u8*)(p))
10
#endif
11
12
static inline void __put_unaligned_le32(__u32 v, register __u8 *p)
13
{
14
	*p++ = v;
15
	*p++ = v >> 8;
16
	*p++ = v >> 16;
17
	*p = v >> 24;
18
}
19
20
static inline void __put_unaligned_be32(__u32 v, register __u8 *p)
21
{
22
	*p++ = v >> 24;
23
	*p++ = v >> 16;
24
	*p++ = v >> 8;
25
	*p = v;
26
}
27
28
static inline __u32 __get_unaligned_le32(__u8* p)
29
{
30
	return p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24;
31
}
32
33
static inline __u32 __get_unaligned_be32(__u8 *p)
34
{
35
	return p[0] << 24 | p[1] << 16 | p[2] << 8 | p[3];
36
}
37
38
#else
39
40
/* Generic unaligned read */
41
#define get_unaligned(ptr) (*(__u32*)(ptr))
42
/* Generic unalgined write */
43
#define put_unaligned(val, ptr) ((void)( *(ptr) = (val) ))
44
45
#endif

Return to bug 153494