diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2002-05-30 19:41:35 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2002-05-30 19:41:35 +0000 |
| commit | 6573d6d4b4651a80b0daaa1725b14a085b2831c8 (patch) | |
| tree | 966a35e82cc3257b9e1975ff71b31696c187c46f | |
| parent | 6f9e35df28968f4551dcba87adad3d4c961ef9f8 (diff) | |
| download | rockbox-6573d6d4b4651a80b0daaa1725b14a085b2831c8.zip rockbox-6573d6d4b4651a80b0daaa1725b14a085b2831c8.tar.gz rockbox-6573d6d4b4651a80b0daaa1725b14a085b2831c8.tar.bz2 rockbox-6573d6d4b4651a80b0daaa1725b14a085b2831c8.tar.xz | |
Partition table is no longer global
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@831 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/main.c | 9 | ||||
| -rw-r--r-- | firmware/common/disk.c | 9 | ||||
| -rw-r--r-- | firmware/common/disk.h | 5 |
3 files changed, 12 insertions, 11 deletions
diff --git a/apps/main.c b/apps/main.c index 1e2f44f..727e58d 100644 --- a/apps/main.c +++ b/apps/main.c @@ -53,6 +53,7 @@ extern int poolend[]; int init(void) { int rc; + struct partinfo* pinfo; system_init(); @@ -73,11 +74,11 @@ int init(void) if(rc) panicf("ata: %d",rc); - rc = disk_init(); - if (rc) - panicf("disk: %d",rc); + pinfo = disk_init(); + if (!pinfo) + panicf("disk: NULL"); - rc = fat_mount(part[0].start); + rc = fat_mount(pinfo[0].start); if(rc) panicf("mount: %d",rc); diff --git a/firmware/common/disk.c b/firmware/common/disk.c index 9572f11..b662072 100644 --- a/firmware/common/disk.c +++ b/firmware/common/disk.c @@ -16,6 +16,7 @@ * KIND, either express or implied. * ****************************************************************************/ +#include <stdio.h> #include "ata.h" #include "debug.h" #include "disk.h" @@ -38,9 +39,9 @@ (array[pos] | (array[pos+1] << 8 ) | \ (array[pos+2] << 16 ) | (array[pos+3] << 24 )) -struct partinfo part[8]; +static struct partinfo part[8]; -int disk_init(void) +struct partinfo* disk_init(void) { int i; unsigned char sector[512]; @@ -51,7 +52,7 @@ int disk_init(void) if ( (sector[510] != 0x55) || (sector[511] != 0xaa)) { DEBUGF("Bad boot sector signature\n"); - return -1; + return NULL; } /* parse partitions */ @@ -70,5 +71,5 @@ int disk_init(void) } } - return 0; + return part; } diff --git a/firmware/common/disk.h b/firmware/common/disk.h index 1e95c73..8a78386 100644 --- a/firmware/common/disk.h +++ b/firmware/common/disk.h @@ -25,8 +25,7 @@ struct partinfo { unsigned char type; }; -extern struct partinfo part[8]; - -int disk_init(void); +/* returns a pointer to an array of 8 partinfo structs */ +struct partinfo* disk_init(void); #endif |