aboutsummaryrefslogtreecommitdiff
path: root/libmpio/mpio.c
diff options
context:
space:
mode:
authorgermeier <germeier>2002-09-18 22:18:29 +0000
committergermeier <germeier>2002-09-18 22:18:29 +0000
commit71ab9acfd97cf1f71c1f66f5e1a8b879c0960e40 (patch)
treeffeaaddfa7cfd37d66d790427b6ecd10baa51664 /libmpio/mpio.c
parent4a49120603daab9f9ad280f0ef44e36b0218a302 (diff)
downloadmpiosh-71ab9acfd97cf1f71c1f66f5e1a8b879c0960e40.tar.gz
mpiosh-71ab9acfd97cf1f71c1f66f5e1a8b879c0960e40.tar.bz2
mpiosh-71ab9acfd97cf1f71c1f66f5e1a8b879c0960e40.zip
removed wrong block mapping
added progress_callback for mpio_init mpiosh: external memory is only selectable if it is available
Diffstat (limited to 'libmpio/mpio.c')
-rw-r--r--libmpio/mpio.c12
1 files changed, 8 insertions, 4 deletions
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;
}