+bool
+filesys_list (void)
+{
+ struct dir dir;
+
+ if (!dir_init (&dir, NUM_DIR_ENTRIES))
+ return false;
+ dir_read (&dir, &root_dir_file);
+ dir_list (&dir);
+ dir_destroy (&dir);
+
+ return true;
+}
+
+bool
+filesys_dump (void)
+{
+ struct bitmap free_map;
+ struct dir dir;
+
+ printk ("Free map:\n");
+ if (!bitmap_init (&free_map, disk_size (filesys_disk)))
+ return false;
+ bitmap_read (&free_map, &free_map_file);
+ bitmap_dump (&free_map);
+ bitmap_destroy (&free_map);
+ printk ("\n");
+
+ if (!dir_init (&dir, NUM_DIR_ENTRIES))
+ return false;
+ dir_read (&dir, &root_dir_file);
+ dir_dump (&dir);
+ dir_destroy (&dir);
+
+ return true;
+}
+
+static void must_succeed_function (int, int) NO_INLINE;