BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / commit / d3f787c50eda2dadb77ae216aef1f0bd0a686ae3 / include / nucleus

// Related

Nucleus

Barry More VFS functions and structure d3f787c (3 years, 2 months ago)
diff --git a/include/nucleus/vfs.h b/include/nucleus/vfs.h
index 97ebf54..2ab824c 100644
--- a/include/nucleus/vfs.h
+++ b/include/nucleus/vfs.h
@@ -30,6 +30,7 @@ struct SuperBlock {
 	SuperOps *ops;
 	Inode *root;
 	ObjectList *inodes; /* List of cached inodes */
+	File *back;
 	void *data;
 };
 struct SuperOps {
@@ -85,6 +86,7 @@ struct FileOps {
 	size_t (*read)(File *, char *, size_t, off_t);
 	size_t (*write)(File *, char *, size_t, off_t);
 	int (*open)(File *);
+	int (*ioctl)(File *, unsigned long, uintptr_t);
 	void (*mmap)(File *, void *, size_t, off_t);
 };
 
@@ -101,6 +103,7 @@ File *create_anonymous_file(void);
 void register_fstype(const char *name,	mount_callback_t mount);
 int mount(const char *src, const char *target, const char *type,
           unsigned long flags, void *data);
+Inode *lookup(const char *path, ObjectList *newcustody);
 
 /* Super Block functions */
 Inode *super_alloc_inode(SuperBlock *sb);
@@ -118,6 +121,7 @@ DirEntry *find_direntry(ObjectList *list, const char *name);
 int file_open(File *file);
 size_t file_read(File *file, char *buf, size_t count);
 size_t file_write(File *file, char *buf, size_t count);
+int file_ioctl(File *file, unsigned long request, uintptr_t arpg);
 void file_mmap(File *file, void *addr, size_t len, off_t offset);
 /* Files namespace functions */
 File *get_file_by_fd(int fd);