s/disk_sector_no/disk_sector_t/g
[pintos-anon] / src / filesys / directory.h
1 #ifndef HEADER_DIRECTORY_H
2 #define HEADER_DIRECTORY_H 1
3
4 #include <stdbool.h>
5 #include <stddef.h>
6 #include "disk.h"
7
8 /* Maximum length of a filename.
9    This is the traditional UNIX maximum. */
10 #define FILENAME_LEN_MAX 14
11
12 struct dir 
13   {
14     size_t entry_cnt;
15     struct dir_entry *entries;
16   };
17
18 struct dir_entry 
19   {
20     bool in_use;
21     char name[FILENAME_LEN_MAX + 1];
22     disk_sector_t filehdr_sector;
23   };
24
25 struct file;
26 bool dir_init (struct dir *, size_t entry_cnt);
27 void dir_destroy (struct dir *);
28 void dir_read (struct dir *, struct file *);
29 void dir_write (struct dir *, struct file *);
30 bool dir_lookup (const struct dir *, const char *name, disk_sector_t *);
31 bool dir_add (struct dir *, const char *name, disk_sector_t);
32 bool dir_remove (struct dir *, const char *name);
33 void dir_list (const struct dir *);
34 void dir_dump (const struct dir *);
35
36 #endif /* directory.h */