From 71ab9acfd97cf1f71c1f66f5e1a8b879c0960e40 Mon Sep 17 00:00:00 2001 From: germeier Date: Wed, 18 Sep 2002 22:18:29 +0000 Subject: removed wrong block mapping added progress_callback for mpio_init mpiosh: external memory is only selectable if it is available --- libmpio/mpio.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'libmpio/mpio.c') diff --git a/libmpio/mpio.c b/libmpio/mpio.c index 35570e7..778890f 100644 --- a/libmpio/mpio.c +++ b/libmpio/mpio.c @@ -1,6 +1,6 @@ /* * - * $Id: mpio.c,v 1.18 2002/09/18 20:32:22 crunchy Exp $ + * $Id: mpio.c,v 1.19 2002/09/18 22:18:29 germeier Exp $ * * Library for USB MPIO-* * @@ -90,7 +90,8 @@ mpio_init_internal(mpio_t *m) sm->fat_size = sm->max_cluster*16/SECTOR_SIZE; debugn(2,"fat_size: %04x\n", sm->fat_size*SECTOR_SIZE); sm->fat = malloc(sm->fat_size*SECTOR_SIZE); - mpio_fat_read(m, MPIO_INTERNAL_MEM); + /* fat will be read in mpio_init, so we can more easily handle + a callback function */ /* Read directory from internal memory */ sm->dir_offset=0; @@ -135,13 +136,13 @@ mpio_init_external(mpio_t *m) mpio_bootblocks_read(m, MPIO_EXTERNAL_MEM); sm->fat = malloc(SECTOR_SIZE*sm->fat_size); - mpio_fat_read(m, MPIO_EXTERNAL_MEM); + mpio_fat_read(m, MPIO_EXTERNAL_MEM, NULL); mpio_rootdir_read(m, MPIO_EXTERNAL_MEM); } } mpio_t * -mpio_init(void) +mpio_init(BYTE (*progress_callback)(int, int)) { mpio_t *new_mpio; @@ -200,6 +201,9 @@ mpio_init(void) /* external init */ mpio_init_external(new_mpio); + /* read FAT/spare area */ + mpio_fat_read(new_mpio, MPIO_INTERNAL_MEM, progress_callback); + return new_mpio; } -- cgit v1.2.3