Rewrite filesystem to support Unix "delete" semantics.
[pintos-anon] / src / filesys / directory.h
1 #ifndef FILESYS_DIRECTORY_H
2 #define FILESYS_DIRECTORY_H
3
4 #include <stdbool.h>
5 #include <stddef.h>
6 #include "devices/disk.h"
7
8 /* Maximum length of a filename.
9    This is the traditional UNIX maximum.
10    (This macro name comes from POSIX.1.) */
11 #define NAME_MAX 14
12
13 struct file;
14 struct dir *dir_create (size_t entry_cnt);
15 size_t dir_size (size_t entry_cnt);
16 void dir_destroy (struct dir *);
17 void dir_read (struct dir *, struct file *);
18 void dir_write (struct dir *, struct file *);
19 bool dir_lookup (const struct dir *, const char *name, disk_sector_t *);
20 bool dir_add (struct dir *, const char *name, disk_sector_t);
21 bool dir_remove (struct dir *, const char *name);
22 void dir_list (const struct dir *);
23 void dir_dump (const struct dir *);
24
25 #endif /* filesys/directory.h */