diff options
author | Jörg Hohensohn <hohensoh@rockbox.org> | 2004-12-29 22:10:24 +0000 |
---|---|---|
committer | Jörg Hohensohn <hohensoh@rockbox.org> | 2004-12-29 22:10:24 +0000 |
commit | 1a5962f2be995b669f2cc3a49be33b3ecd8dede0 (patch) | |
tree | dd9f407265826fa02ed08cc12f9fd54a093e4ad8 /apps | |
parent | 5c631a1222c81bb075ec241621aa3626bd44c31a (diff) | |
download | rockbox-1a5962f2be995b669f2cc3a49be33b3ecd8dede0.tar.gz rockbox-1a5962f2be995b669f2cc3a49be33b3ecd8dede0.zip |
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
Diffstat (limited to 'apps')
-rw-r--r-- | apps/main.c | 48 |
1 files changed, 3 insertions, 45 deletions
diff --git a/apps/main.c b/apps/main.c index 572e0a3114..fece06a587 100644 --- a/apps/main.c +++ b/apps/main.c | |||
@@ -156,7 +156,6 @@ void init(void) | |||
156 | void init(void) | 156 | void init(void) |
157 | { | 157 | { |
158 | int rc, i; | 158 | int rc, i; |
159 | struct partinfo* pinfo; | ||
160 | /* if nobody initialized ATA before, I consider this a cold start */ | 159 | /* if nobody initialized ATA before, I consider this a cold start */ |
161 | bool coldstart = (PACR2 & 0x4000) != 0; /* starting from Flash */ | 160 | bool coldstart = (PACR2 & 0x4000) != 0; /* starting from Flash */ |
162 | 161 | ||
@@ -240,12 +239,12 @@ void init(void) | |||
240 | usb_start_monitoring(); | 239 | usb_start_monitoring(); |
241 | 240 | ||
242 | /* FixMe: the same kind of mounting happens in usb.c, share the code. */ | 241 | /* FixMe: the same kind of mounting happens in usb.c, share the code. */ |
243 | pinfo = disk_init(IF_MV(0)); | 242 | rc = disk_mount_all(); |
244 | if (!pinfo) | 243 | if (rc<=0) |
245 | { | 244 | { |
246 | lcd_clear_display(); | 245 | lcd_clear_display(); |
247 | lcd_puts(0, 0, "No partition"); | 246 | lcd_puts(0, 0, "No partition"); |
248 | lcd_puts(0, 1, "table."); | 247 | lcd_puts(0, 1, "found."); |
249 | #ifdef HAVE_LCD_BITMAP | 248 | #ifdef HAVE_LCD_BITMAP |
250 | lcd_puts(0, 2, "Insert USB cable"); | 249 | lcd_puts(0, 2, "Insert USB cable"); |
251 | lcd_puts(0, 3, "and fix it."); | 250 | lcd_puts(0, 3, "and fix it."); |
@@ -256,47 +255,6 @@ void init(void) | |||
256 | system_reboot(); | 255 | system_reboot(); |
257 | } | 256 | } |
258 | 257 | ||
259 | fat_init(); | ||
260 | for ( i=0; i<4; i++ ) { | ||
261 | if (!fat_mount(IF_MV2(0,) IF_MV2(0,) pinfo[i].start)) | ||
262 | break; /* only one partition gets mounted as of now */ | ||
263 | } | ||
264 | |||
265 | if ( i==4 ) { | ||
266 | DEBUGF("No partition found, trying to mount sector 0.\n"); | ||
267 | rc = fat_mount(IF_MV2(0,) IF_MV2(0,) 0); | ||
268 | if(rc) { | ||
269 | lcd_clear_display(); | ||
270 | lcd_puts(0,0,"No FAT32"); | ||
271 | lcd_puts(0,1,"partition!"); | ||
272 | lcd_update(); | ||
273 | sleep(HZ); | ||
274 | /* Don't leave until we have been in USB mode */ | ||
275 | while(!dbg_partitions()); | ||
276 | |||
277 | /* The USB thread will panic if the drive still can't be mounted */ | ||
278 | } | ||
279 | } | ||
280 | #ifdef HAVE_MULTIVOLUME | ||
281 | /* mount partition on the optional volume */ | ||
282 | #ifdef HAVE_MMC | ||
283 | if (mmc_detect()) /* for Ondio, only if card detected */ | ||
284 | #endif | ||
285 | { | ||
286 | pinfo = disk_init(1); | ||
287 | if (pinfo) | ||
288 | { | ||
289 | for ( i=0; i<4; i++ ) { | ||
290 | if (!fat_mount(1, 1, pinfo[i].start)) | ||
291 | break; /* only one partition gets mounted as of now */ | ||
292 | } | ||
293 | |||
294 | if ( i==4 ) { | ||
295 | rc = fat_mount(1, 1, 0); | ||
296 | } | ||
297 | } | ||
298 | } | ||
299 | #endif /* #ifdef HAVE_MULTIVOLUME */ | ||
300 | settings_calc_config_sector(); | 258 | settings_calc_config_sector(); |
301 | settings_load(SETTINGS_ALL); | 259 | settings_load(SETTINGS_ALL); |
302 | settings_apply(); | 260 | settings_apply(); |