aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/include/vfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/include/vfs.h')
-rw-r--r--src/kernel/include/vfs.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/kernel/include/vfs.h b/src/kernel/include/vfs.h
index 0890663..066211b 100644
--- a/src/kernel/include/vfs.h
+++ b/src/kernel/include/vfs.h
@@ -124,7 +124,9 @@ typedef struct {
typedef struct fs {
// Filled by VFS's make_fs()
int refs;
- // Filled by FS's specific make()
+ struct fs *from_fs;
+ int ok_modes;
+ // Filled by FS's specific make() - all zero in the case of a subfs
fs_ops_t *ops;
fs_ptr data;
// Filled by both according to what is specified for fs_node_t
@@ -158,6 +160,7 @@ fs_node_t* fs_walk_path_except_last(fs_node_t* from, const char *p, char* last_f
void register_fs_driver(const char* name, fs_driver_ops_t *ops);
fs_t* make_fs(const char* driver, fs_handle_t *source, const char* opts);
+fs_t* fs_subfs(fs_t *fs, const char *root, int ok_modes);
bool fs_add_source(fs_t *fs, fs_handle_t *source, const char* opts);
void ref_fs(fs_t *fs);
void unref_fs(fs_t *fs);