Redo makefiles.
[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 "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 /* A directory. */
14 struct dir 
15   {
16     size_t entry_cnt;           /* Number of entries. */
17     struct dir_entry *entries;  /* Array of entries. */
18   };
19
20 /* A single directory entry. */
21 struct dir_entry 
22   {
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. */
26   };
27
28 struct file;
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 *);
38
39 #endif /* directory.h */