39 lines
1.1 KiB
Diff
39 lines
1.1 KiB
Diff
The problem is that unsigned char[2] is
|
|
guranteed to be 8Bit aligned on arm
|
|
but unsigned short is/needs to be 16bit aligned
|
|
the union { unsigned short; unsigned char[2] } trick
|
|
didn't work so no we use the alpha hack.
|
|
|
|
memcpy into an 16bit aligned
|
|
|
|
-zecke
|
|
|
|
Upstream-Status: Inappropriate [licensing]
|
|
We're tracking an old release of dosfstools due to licensing issues.
|
|
|
|
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
|
|
|
|
--- dosfstools/dosfsck/boot.c.orig 2003-05-15 19:32:23.000000000 +0200
|
|
+++ dosfstools/dosfsck/boot.c 2003-06-13 17:44:25.000000000 +0200
|
|
@@ -36,17 +36,15 @@
|
|
{ 0xff, "5.25\" 320k floppy 2s/40tr/8sec" },
|
|
};
|
|
|
|
-#if defined __alpha || defined __ia64__ || defined __s390x__ || defined __x86_64__ || defined __ppc64__
|
|
+
|
|
/* Unaligned fields must first be copied byte-wise */
|
|
#define GET_UNALIGNED_W(f) \
|
|
({ \
|
|
unsigned short __v; \
|
|
memcpy( &__v, &f, sizeof(__v) ); \
|
|
- CF_LE_W( *(unsigned short *)&f ); \
|
|
+ CF_LE_W( *(unsigned short *)&__v ); \
|
|
})
|
|
-#else
|
|
-#define GET_UNALIGNED_W(f) CF_LE_W( *(unsigned short *)&f )
|
|
-#endif
|
|
+
|
|
|
|
|
|
static char *get_media_descr( unsigned char media )
|