From 862b93742237ed959e9b8dc12a536880ea45d0cf Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Thu, 12 Feb 2015 20:19:24 +0100 Subject: Adjust nullfs header --- src/kernel/include/nullfs.h | 20 ++++++-------------- src/kernel/include/vfs.h | 5 ++++- 2 files changed, 10 insertions(+), 15 deletions(-) (limited to 'src/kernel/include') diff --git a/src/kernel/include/nullfs.h b/src/kernel/include/nullfs.h index 43bad5e..ba6a9c8 100644 --- a/src/kernel/include/nullfs.h +++ b/src/kernel/include/nullfs.h @@ -2,26 +2,18 @@ #include -#define NULLFS_OPT_CREATE_EN 1 -#define NULLFS_OPT_DELETE_EN 2 +// The nullfs accepts several flags at its creation : +// - c : allow creation of files as ram files +// - d : allow deletion of arbitrary nodes +// - m : allow move operation typedef struct nullfs nullfs_t; -typedef struct { - void* (*open)(void* f, int mode, fs_handle_t *h); - size_t (*read)(void* fd, size_t offset, size_t len, char* buf); - size_t (*write)(void* fd, size_t offset, size_t len, const char* buf); - bool (*stat)(void* f, stat_t *st); - int (*ioctl)(void* f, int command, void* data); - void (*close)(void* fd); - void (*dispose)(void* f); -} nullfs_node_ops_t; - void register_nullfs_driver(); nullfs_t* as_nullfs(fs_t *fs); -bool nullfs_add(nullfs_t *f, const char* name, void* data, nullfs_node_ops_t* ops); -bool nullfs_add_ram_file(nullfs_t *f, const char* name, void* data, size_t init_sz, bool copy, int ok_modes); +bool nullfs_add_node(nullfs_t *f, const char* name, fs_node_ptr data, fs_node_ops_t *ops); +bool nullfs_add_ram_file(nullfs_t *f, const char* name, char* data, size_t init_sz, bool copy, int ok_modes); /* vim: set ts=4 sw=4 tw=0 noet :*/ diff --git a/src/kernel/include/vfs.h b/src/kernel/include/vfs.h index ccb33f4..b0fd146 100644 --- a/src/kernel/include/vfs.h +++ b/src/kernel/include/vfs.h @@ -31,6 +31,7 @@ typedef struct { size_t (*read)(fs_handle_ptr f, size_t offset, size_t len, char* buf); size_t (*write)(fs_handle_ptr f, size_t offset, size_t len, const char* buf); bool (*stat)(fs_handle_ptr f, stat_t *st); + bool (*readdir)(fs_handle_ptr f, dirent_t *d); void (*close)(fs_handle_ptr f); } fs_handle_ops_t; @@ -138,8 +139,10 @@ int fs_ioctl(fs_t *fs, const char* file, int command, void* data); fs_handle_t* fs_open(fs_t *fs, const char* file, int mode); void ref_file(fs_handle_t *file); void unref_file(fs_handle_t *file); +int file_get_mode(fs_handle_t *f); size_t file_read(fs_handle_t *f, size_t offset, size_t len, char* buf); size_t file_write(fs_handle_t *f, size_t offset, size_t len, const char* buf); -int file_get_mode(fs_handle_t *f); +bool file_stat(fs_handle_t *f, stat_t *st); +bool file_readdir(fs_handle_t *f, dirent_t *d); /* vim: set ts=4 sw=4 tw=0 noet :*/ -- cgit v1.2.3