Implement a proper block layer with partition support.
[pintos-anon] / src / filesys / inode.h
index d7fe86b190024d31176fb59d07e29940134540a0..cb42310fa8d77dcc438a4cd689361b1e126bacbe 100644 (file)
@@ -1,19 +1,23 @@
 #ifndef FILESYS_INODE_H
 #define FILESYS_INODE_H
 
+#include <stdbool.h>
 #include "filesys/off_t.h"
-#include "devices/disk.h"
+#include "devices/block.h"
 
 struct bitmap;
 
 void inode_init (void);
-struct inode *inode_create (struct bitmap *, disk_sector_t, off_t);
-struct inode *inode_open (disk_sector_t);
+bool inode_create (block_sector_t, off_t);
+struct inode *inode_open (block_sector_t);
+struct inode *inode_reopen (struct inode *);
+block_sector_t inode_get_inumber (const struct inode *);
 void inode_close (struct inode *);
-void inode_commit (const struct inode *);
 void inode_remove (struct inode *);
-disk_sector_t inode_byte_to_sector (const struct inode *, off_t);
+off_t inode_read_at (struct inode *, void *, off_t size, off_t offset);
+off_t inode_write_at (struct inode *, const void *, off_t size, off_t offset);
+void inode_deny_write (struct inode *);
+void inode_allow_write (struct inode *);
 off_t inode_length (const struct inode *);
-void inode_print (const struct inode *);
 
 #endif /* filesys/inode.h */