aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/include
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ens.fr>2015-02-24 22:17:10 +0100
committerAlex Auvolat <alex.auvolat@ens.fr>2015-02-24 22:17:10 +0100
commitca0a318048749d21facd135322c44c78f2d5f1ac (patch)
tree3ebd06132c5b89dea513f456225941a2cf8da16a /src/kernel/include
parent858f78702424e4c0eb59bf7678e84f7b3a65fde2 (diff)
downloadkogata-ca0a318048749d21facd135322c44c78f2d5f1ac.tar.gz
kogata-ca0a318048749d21facd135322c44c78f2d5f1ac.zip
Implement fs_subfs (it's simple, really) ; add placeholders for more syscalls
Diffstat (limited to 'src/kernel/include')
-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);