diff -Naur reiserfsprogs-3.6.19.orig/include/asm/unaligned.h reiserfsprogs-3.6.19/include/asm/unaligned.h --- reiserfsprogs-3.6.19.orig/include/asm/unaligned.h 1969-12-31 19:00:00.000000000 -0500 +++ reiserfsprogs-3.6.19/include/asm/unaligned.h 2006-10-30 19:33:20.000000000 -0500 @@ -0,0 +1,45 @@ +#if defined(__arm__) + +/* Unaligned 32 bits read on ARM */ +#ifndef __ARMEB__ +#define get_unaligned(p) __get_unaligned_le32((__u8*)(p)) +#define put_unaligned(v,p) __put_unaligned_le32((v),(__u8*)(p)) +#else +#define get_unaligned(p) __get_unaligned_be32((__u8*)(p)) +#define put_unaligned(v,p) __put_unaligned_be32((v),(__u8*)(p)) +#endif + +static inline void __put_unaligned_le32(__u32 v, register __u8 *p) +{ + *p++ = v; + *p++ = v >> 8; + *p++ = v >> 16; + *p = v >> 24; +} + +static inline void __put_unaligned_be32(__u32 v, register __u8 *p) +{ + *p++ = v >> 24; + *p++ = v >> 16; + *p++ = v >> 8; + *p = v; +} + +static inline __u32 __get_unaligned_le32(__u8* p) +{ + return p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24; +} + +static inline __u32 __get_unaligned_be32(__u8 *p) +{ + return p[0] << 24 | p[1] << 16 | p[2] << 8 | p[3]; +} + +#else + +/* Generic unaligned read */ +#define get_unaligned(ptr) (*(__u32*)(ptr)) +/* Generic unalgined write */ +#define put_unaligned(val, ptr) ((void)( *(ptr) = (val) )) + +#endif