Merge branch 'master' into prog-loader
[lunaix-os.git] / lunaix-os / includes / lunaix / fs.h
index 8e6961d6adc7d43ba2d6db97a72211c434a9690b..4b2888157d59003569801d30fbcf6d13c32565f6 100644 (file)
@@ -9,7 +9,6 @@
 #include <lunaix/ds/llist.h>
 #include <lunaix/ds/lru.h>
 #include <lunaix/ds/mutex.h>
-#include <lunaix/process.h>
 #include <lunaix/status.h>
 #include <stdatomic.h>
 
@@ -36,9 +35,6 @@
 
 #define FSTYPE_ROFS 0x1
 
-#define DO_STATUS(errno) SYSCALL_ESTATUS(__current->k_status = errno)
-#define DO_STATUS_OR_RETURN(errno) ({ errno < 0 ? DO_STATUS(errno) : errno; })
-
 #define TEST_FD(fd) (fd >= 0 && fd < VFS_MAX_FD)
 
 #define VFS_VALID_CHAR(chr)                                                    \
@@ -95,7 +91,6 @@ struct v_superblock
     struct device* dev;
     struct v_dnode* root;
     struct filesystem* fs;
-    u32_t iobuf_size;
     struct hbucket* i_cache;
     void* data;
     struct
@@ -218,6 +213,8 @@ struct v_inode
     struct pcache* pg_cache;
     struct v_inode_ops* ops;
     struct v_file_ops* default_fops;
+
+    void (*destruct)(struct v_inode* inode);
 };
 
 struct v_mount
@@ -399,6 +396,9 @@ vfs_get_dtype(int itype);
 void
 vfs_ref_dnode(struct v_dnode* dnode);
 
+void
+vfs_ref_file(struct v_file* file);
+
 void
 vfs_unref_dnode(struct v_dnode* dnode);