summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>2005-02-27 20:44:26 +0000
committerJean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>2005-02-27 20:44:26 +0000
commita83214d16f58ce22f0b2b1ea43de857f8ecb7dde (patch)
tree51892d6e94a2c3073acc0ff5b2b506ee738d1ea6
parent3d0ae46ac6b40307bd654c618708309470d47dc6 (diff)
downloadrockbox-a83214d16f58ce22f0b2b1ea43de857f8ecb7dde.tar.gz
rockbox-a83214d16f58ce22f0b2b1ea43de857f8ecb7dde.zip
couple of fixes for 16 bits archs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6073 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/common/disk.c2
-rw-r--r--firmware/drivers/fat.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/firmware/common/disk.c b/firmware/common/disk.c
index fd6de55ddb..f4d153c1c2 100644
--- a/firmware/common/disk.c
+++ b/firmware/common/disk.c
@@ -42,7 +42,7 @@
42*/ 42*/
43 43
44#define BYTES2INT32(array,pos) \ 44#define BYTES2INT32(array,pos) \
45 ((long)array[pos] | (long)(array[pos+1] << 8 ) | \ 45 ((long)array[pos] | ((long)array[pos+1] << 8 ) | \
46 ((long)array[pos+2] << 16 ) | ((long)array[pos+3] << 24 )) 46 ((long)array[pos+2] << 16 ) | ((long)array[pos+3] << 24 ))
47 47
48static struct partinfo part[8]; /* space for 4 partitions on 2 drives */ 48static struct partinfo part[8]; /* space for 4 partitions on 2 drives */
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index 465adec479..cf2665494f 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -1588,8 +1588,10 @@ static int parse_direntry(struct fat_direntry *de, const unsigned char *buf)
1588 de->wrtdate = BYTES2INT16(buf,FATDIR_WRTDATE); 1588 de->wrtdate = BYTES2INT16(buf,FATDIR_WRTDATE);
1589 de->wrttime = BYTES2INT16(buf,FATDIR_WRTTIME); 1589 de->wrttime = BYTES2INT16(buf,FATDIR_WRTTIME);
1590 de->filesize = BYTES2INT32(buf,FATDIR_FILESIZE); 1590 de->filesize = BYTES2INT32(buf,FATDIR_FILESIZE);
1591 de->firstcluster = ((long)BYTES2INT16(buf,FATDIR_FSTCLUSLO)) | 1591 de->firstcluster = ((long)(unsigned)BYTES2INT16(buf,FATDIR_FSTCLUSLO)) |
1592 ((long)BYTES2INT16(buf,FATDIR_FSTCLUSHI) << 16); 1592 ((long)(unsigned)BYTES2INT16(buf,FATDIR_FSTCLUSHI) << 16);
1593 /* The double cast is to prevent a sign-extension to be done on CalmRISC16.
1594 (the result of the shift is always considered signed) */
1593 1595
1594 /* fix the name */ 1596 /* fix the name */
1595 for (i=0; (i<8) && (buf[FATDIR_NAME+i] != ' '); i++) 1597 for (i=0; (i<8) && (buf[FATDIR_NAME+i] != ' '); i++)