aboutsummaryrefslogtreecommitdiff
path: root/libmpio/fat.c
diff options
context:
space:
mode:
authorgermeier <germeier>2002-09-10 12:31:09 +0000
committergermeier <germeier>2002-09-10 12:31:09 +0000
commitaead174ddcfc61eafa706c7fdff0c8b84dbd2128 (patch)
treebe673848fc1b690c70ae126e23ad5f91701b8d70 /libmpio/fat.c
parentf076913d50fda1192456e6a9b804f91bb7b15039 (diff)
downloadmpiosh-aead174ddcfc61eafa706c7fdff0c8b84dbd2128.tar.gz
mpiosh-aead174ddcfc61eafa706c7fdff0c8b84dbd2128.tar.bz2
mpiosh-aead174ddcfc61eafa706c7fdff0c8b84dbd2128.zip
reactivated deleting of files (external mem only)
added error handling for memory formatting 2 fatentry function add minor bug fixes
Diffstat (limited to 'libmpio/fat.c')
-rw-r--r--libmpio/fat.c45
1 files changed, 44 insertions, 1 deletions
diff --git a/libmpio/fat.c b/libmpio/fat.c
index 79d7a0d..170ab6c 100644
--- a/libmpio/fat.c
+++ b/libmpio/fat.c
@@ -1,6 +1,6 @@
/*
*
- * $Id: fat.c,v 1.6 2002/09/09 15:51:37 germeier Exp $
+ * $Id: fat.c,v 1.7 2002/09/10 12:31:09 germeier Exp $
*
* Library for USB MPIO-*
*
@@ -578,3 +578,46 @@ mpio_fat_write(mpio_t *m, mpio_mem_t mem)
return 0;
}
+
+int
+mpio_fatentry_set_free (mpio_t *m, mpio_mem_t mem, mpio_fatentry_t *f)
+{
+ int e;
+ mpio_smartmedia_t *sm;
+
+ if (mem == MPIO_INTERNAL_MEM) {
+ sm = &m->internal;
+ e = f->entry * 0x10;
+ memset((sm->fat+e), 0xff, 0x10);
+ }
+
+ if (mem == MPIO_EXTERNAL_MEM) {
+ sm = &m->internal;
+ mpio_fatentry_write(m, mem, f, 0);
+ }
+
+ return 0;
+}
+
+int
+mpio_fatentry_set_defect(mpio_t *m, mpio_mem_t mem, mpio_fatentry_t *f)
+{
+ int e;
+ mpio_smartmedia_t *sm;
+
+ if (mem == MPIO_INTERNAL_MEM) {
+ sm = &m->internal;
+ e = f->entry * 0x10;
+ debug("Sorry, I don't now how to mark an internal block as"
+ " defective yet.\n");
+/* memset((sm->fat+e), 0xff, 0x10); */
+ }
+
+ if (mem == MPIO_EXTERNAL_MEM) {
+ sm = &m->internal;
+ mpio_fatentry_write(m, mem, f, 0xfff7);
+ }
+
+ return 0;
+}
+