diff options
author | germeier <germeier> | 2002-09-23 22:38:03 +0000 |
---|---|---|
committer | germeier <germeier> | 2002-09-23 22:38:03 +0000 |
commit | 394e96c30d87613fc733167297d1bf594d5e5035 (patch) | |
tree | a6317a05308aec1db82c479dc82c82fd25ede337 /libmpio/io.c | |
parent | 6557eca4248c1e46249342c1368b13e1618448c8 (diff) | |
download | mpiosh-394e96c30d87613fc733167297d1bf594d5e5035.tar.gz mpiosh-394e96c30d87613fc733167297d1bf594d5e5035.tar.bz2 mpiosh-394e96c30d87613fc733167297d1bf594d5e5035.zip |
read spare area from external memory too
display progress for internal and external memory
a few code clean ups and checks
renamed debug_memory to dump_memory and dump more memory areas now
a lot of little changes and updates
Diffstat (limited to 'libmpio/io.c')
-rw-r--r-- | libmpio/io.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/libmpio/io.c b/libmpio/io.c index ad5df53..7a5b58e 100644 --- a/libmpio/io.c +++ b/libmpio/io.c @@ -2,7 +2,7 @@ /* * - * $Id: io.c,v 1.15 2002/09/20 20:49:36 germeier Exp $ + * $Id: io.c,v 1.16 2002/09/23 22:38:03 germeier Exp $ * * Library for USB MPIO-* * @@ -663,27 +663,30 @@ mpio_io_block_read(mpio_t *m, BYTE mem, mpio_fatentry_t *f, BYTE *output) */ int -mpio_io_spare_read(mpio_t *m, BYTE area, DWORD index, BYTE size, +mpio_io_spare_read(mpio_t *m, BYTE mem, DWORD index, BYTE size, BYTE wsize, BYTE *output, int toread, - BYTE (*progress_callback)(int, int)) + mpio_callback_init_t progress_callback) { + mpio_smartmedia_t *sm; int i; int nwrite, nread; int chip = 0; int chips = 0; BYTE cmdpacket[CMD_SIZE]; - if (area != MPIO_INTERNAL_MEM) { - debug("Something fishy happened, aborting!n"); - exit(1); - } + if (mem == MPIO_INTERNAL_MEM) sm = &m->internal; + if (mem == MPIO_EXTERNAL_MEM) sm = &m->external; - chips = m->internal.chips; + chips = sm->chips; for (chip = 1; chip <= chips; chip++) - { - mpio_io_set_cmdpacket(m, GET_SPARE_AREA, chip, index, size, - wsize, cmdpacket); + { + if (mem == MPIO_INTERNAL_MEM) + mpio_io_set_cmdpacket(m, GET_SPARE_AREA, chip, index, size, + wsize, cmdpacket); + if (mem == MPIO_EXTERNAL_MEM) + mpio_io_set_cmdpacket(m, GET_SPARE_AREA, mem, index, size, + wsize, cmdpacket); debugn(5, "\n>>> MPIO\n"); hexdump(cmdpacket, sizeof(cmdpacket)); @@ -704,7 +707,7 @@ mpio_io_spare_read(mpio_t *m, BYTE area, DWORD index, BYTE size, CMD_SIZE); if ((progress_callback) && (i % 256)) - (*progress_callback)((i*CMD_SIZE), toread); + (*progress_callback)(mem, (i*CMD_SIZE), toread); if(nread != CMD_SIZE) { @@ -718,7 +721,7 @@ mpio_io_spare_read(mpio_t *m, BYTE area, DWORD index, BYTE size, } } if (progress_callback) - (*progress_callback)(toread, toread); + (*progress_callback)(mem, toread, toread); return 0; } |