+#include "filesys/directory.h"
+#include <stdio.h>
+#include <string.h>
+#include "filesys/file.h"
+#include "filesys/fsutil.h"
+#include "threads/malloc.h"
+
+/* A directory. */
+struct dir
+ {
+ size_t entry_cnt; /* Number of entries. */
+ struct dir_entry *entries; /* Array of entries. */
+ };
+
+/* A single directory entry. */
+struct dir_entry
+ {
+ bool in_use; /* In use or free? */
+ char name[NAME_MAX + 1]; /* Null terminated file name. */
+ disk_sector_t inode_sector; /* Sector number of header. */
+ };
+
+/* Returns a new directory that holds ENTRY_CNT entries, if
+ successful, or a null pointer if memory is unavailable. */
+struct dir *
+dir_create (size_t entry_cnt)