Add bitmap_read(), bitmap_write().
authorBen Pfaff <blp@cs.stanford.edu>
Mon, 30 Aug 2004 22:55:58 +0000 (22:55 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 30 Aug 2004 22:55:58 +0000 (22:55 +0000)
src/lib/bitmap.c
src/lib/bitmap.h

index 46235b205d78092a7526cbd0c2ffa900bdf93df8..593e509ad642c626b39d565511b5718a7043697c 100644 (file)
@@ -4,6 +4,9 @@
 #include "debug.h"
 #include "lib.h"
 #include "malloc.h"
+#ifdef FILESYS
+#include "file.h"
+#endif
 
 #define ELEM_BITS (sizeof (elem_type) * CHAR_BIT)
 #define ELEM_IDX(BIT_IDX) ((BIT_IDX) / ELEM_BITS)
@@ -218,3 +221,17 @@ bitmap_all (const struct bitmap *b)
   else
     return b->bits[i] == ((elem_type) 1 << leftover_bits) - 1;
 }
+
+#ifdef FILESYS
+void
+bitmap_read (struct bitmap *b, struct file *file) 
+{
+  file_read_at (file, b->bits, byte_cnt (b), 0);
+}
+
+void
+bitmap_write (const struct bitmap *b, struct file *file)
+{
+  file_write_at (file, b->bits, byte_cnt (b), 0);
+}
+#endif /* FILESYS */
index 896a1e8e7b66a9b6e1b4f4626011c9a475fbd21e..d3bda409d3832eddd6733746bf84eccae41960ec 100644 (file)
@@ -39,4 +39,10 @@ bool bitmap_any (const struct bitmap *);
 bool bitmap_none (const struct bitmap *);
 bool bitmap_all (const struct bitmap *);
 
+#ifdef FILESYS
+struct file;
+void bitmap_read (struct bitmap *, struct file *);
+void bitmap_write (const struct bitmap *, struct file *);
+#endif
+
 #endif /* bitmap.h */