From 6573d6d4b4651a80b0daaa1725b14a085b2831c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Stenberg?= Date: Thu, 30 May 2002 19:41:35 +0000 Subject: [PATCH] Partition table is no longer global git-svn-id: svn://svn.rockbox.org/rockbox/trunk@831 a1c6a512-1295-4272-9138-f99709370657 --- apps/main.c | 9 +++++---- firmware/common/disk.c | 9 +++++---- firmware/common/disk.h | 5 ++--- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/apps/main.c b/apps/main.c index 1e2f44faad..727e58dfe9 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 9572f115e5..b662072d5f 100644 --- a/firmware/common/disk.c +++ b/firmware/common/disk.c @@ -16,6 +16,7 @@ * KIND, either express or implied. * ****************************************************************************/ +#include #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 1e95c73c6b..8a78386c6c 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