From 1a5962f2be995b669f2cc3a49be33b3ecd8dede0 Mon Sep 17 00:00:00 2001 From: Jörg Hohensohn Date: Wed, 29 Dec 2004 22:10:24 +0000 Subject: Shared mounting code, also more general. It will mount multiple HD partitions, too, once HAVE_MULTIVOLUME is enabled. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5518 a1c6a512-1295-4272-9138-f99709370657 --- firmware/common/disk.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++- firmware/export/disk.h | 1 + firmware/usb.c | 35 +++------------------------------- 3 files changed, 54 insertions(+), 33 deletions(-) (limited to 'firmware') diff --git a/firmware/common/disk.c b/firmware/common/disk.c index cfe15984f9..aa42f0793f 100644 --- a/firmware/common/disk.c +++ b/firmware/common/disk.c @@ -19,6 +19,10 @@ #include #include "ata.h" #include "debug.h" +#include "fat.h" +#ifdef HAVE_MMC +#include "ata_mmc.h" +#endif #include "disk.h" /* Partition table entry layout: @@ -39,7 +43,7 @@ (array[pos] | (array[pos+1] << 8 ) | \ (array[pos+2] << 16 ) | (array[pos+3] << 24 )) -static struct partinfo part[8]; +static struct partinfo part[8]; /* space for 4 partitions on 2 drives */ struct partinfo* disk_init(IF_MV_NONVOID(int drive)) { @@ -89,3 +93,48 @@ struct partinfo* disk_partinfo(int partition) return &part[partition]; } +int disk_mount_all(void) +{ + struct partinfo* pinfo; + int i,j; + int mounted = 0; + bool found; + int drives = 1; +#ifdef HAVE_MMC + if (mmc_detect()) /* for Ondio, only if card detected */ + { + drives = 2; /* in such case we have two drives to try */ + } +#endif + + fat_init(); /* reset all mounted partitions */ + for (j=0; j