1 #ifndef HEADER_DIRECTORY_H
2 #define HEADER_DIRECTORY_H 1
6 #include "devices/disk.h"
8 /* Maximum length of a filename.
9 This is the traditional UNIX maximum.
10 (This macro name comes from POSIX.1.) */
16 size_t entry_cnt; /* Number of entries. */
17 struct dir_entry *entries; /* Array of entries. */
20 /* A single directory entry. */
23 bool in_use; /* In use or free? */
24 char name[NAME_MAX + 1]; /* Null terminated file name. */
25 disk_sector_t filehdr_sector; /* Sector number of header. */
29 bool dir_init (struct dir *, size_t entry_cnt);
30 void dir_destroy (struct dir *);
31 void dir_read (struct dir *, struct file *);
32 void dir_write (struct dir *, struct file *);
33 bool dir_lookup (const struct dir *, const char *name, disk_sector_t *);
34 bool dir_add (struct dir *, const char *name, disk_sector_t);
35 bool dir_remove (struct dir *, const char *name);
36 void dir_list (const struct dir *);
37 void dir_dump (const struct dir *);
39 #endif /* directory.h */