|
PatchworkOS
|
#include <kernel/fs/ramfs.h>#include <kernel/fs/dentry.h>#include <kernel/fs/mount.h>#include <kernel/fs/namespace.h>#include <kernel/fs/path.h>#include <kernel/fs/sysfs.h>#include <kernel/fs/vfs.h>#include <kernel/log/log.h>#include <kernel/log/panic.h>#include <kernel/sync/lock.h>#include <kernel/sync/mutex.h>#include <kernel/utils/ref.h>#include <boot/boot_info.h>#include <assert.h>#include <errno.h>#include <stdlib.h>#include <string.h>#include <sys/list.h>#include <sys/math.h>Go to the source code of this file.
Variables | |
| static mount_t * | mount = NULL |
| static file_ops_t | fileOps |
| static inode_ops_t | inodeOps |
| static dentry_ops_t | dentryOps |
| static superblock_ops_t | superOps |
| static filesystem_t | ramfs |
|
staticnew |
|
static |
Definition at line 114 of file ramfs.c.
References dentry_make_positive(), DEREF_DEFER, ERR, INODE_DIR, INODE_FILE, NULL, PATH_DIRECTORY, ramfs_inode_new(), and inode_t::superblock.
|
static |
Definition at line 49 of file ramfs.c.
References assert, ramfs_dentry_data_t::dentry, ramfs_superblock_data_t::dentrys, DEREF, ramfs_dentry_data_t::entry, free(), list_remove(), ramfs_superblock_data_t::lock, lock_acquire(), lock_release(), NULL, dentry_t::private, superblock_t::private, and dentry_t::superblock.
Referenced by ramfs_remove_directory(), and ramfs_remove_file().
|
static |
Definition at line 212 of file ramfs.c.
References free(), NULL, and inode_t::private.
|
static |
Definition at line 350 of file ramfs.c.
References atomic_fetch_add, inode_t::blocks, buffer, DEREF_DEFER, fileOps, inode_new(), inodeOps, malloc(), memcpy(), NULL, inode_t::private, REF, and inode_t::size.
Referenced by ramfs_create(), ramfs_load_dir(), and ramfs_load_file().
Definition at line 146 of file ramfs.c.
References dentry_make_positive(), ERR, dentry_t::inode, and inode_t::linkCount.
|
static |
Definition at line 273 of file ramfs.c.
References boot_dir_t::children, dentry_make_positive(), dentry_new(), DEREF, DEREF_DEFER, ERR, file, boot_dir_t::files, INODE_DIR, LIST_FOR_EACH, boot_dir_t::name, dentry_t::name, NULL, panic(), superblock_t::private, ramfs_inode_new(), ramfs_load_dir(), ramfs_load_file(), and REF.
Referenced by ramfs_load_dir(), and ramfs_mount().
|
static |
Definition at line 244 of file ramfs.c.
References boot_file_t::data, dentry_make_positive(), dentry_new(), DEREF_DEFER, ERR, INODE_FILE, NULL, panic(), ramfs_inode_new(), REF, and boot_file_t::size.
Referenced by ramfs_load_dir().
|
static |
Definition at line 316 of file ramfs.c.
References superblock_t::blockSize, data, dentryOps, DEREF_DEFER, list_init(), lock_init(), malloc(), superblock_t::maxFileSize, NULL, superblock_t::private, ramfs_load_dir(), REF, boot_disk_t::root, superblock_t::root, superblock_new(), superOps, UINT64_MAX, VFS_DEVICE_NAME_NONE, and VFS_ROOT_ENTRY_NAME.
|
static |
Definition at line 66 of file ramfs.c.
References buffer, BUFFER_READ, count, file, dentry_t::inode, inode_t::mutex, MUTEX_SCOPE, NULL, inode_t::private, and inode_t::size.
|
static |
Definition at line 178 of file ramfs.c.
References dentry_t::children, DEREF, ENOTEMPTY, ERR, errno, dentry_t::inode, INODE_DIR, INODE_FILE, LIST_FOR_EACH_SAFE, list_is_empty(), inode_t::mutex, MUTEX_SCOPE, NULL, PATH_RECURSIVE, ramfs_remove(), ramfs_remove_directory(), ramfs_remove_file(), REF, and inode_t::type.
Referenced by ramfs_remove().
Definition at line 170 of file ramfs.c.
References ramfs_dentry_deinit().
Referenced by ramfs_remove().
Definition at line 161 of file ramfs.c.
References dentry_t::inode, inode_t::linkCount, and ramfs_dentry_deinit().
Referenced by ramfs_remove().
|
static |
|
static |
Definition at line 136 of file ramfs.c.
References free(), NULL, inode_t::private, and inode_t::size.
|
static |
Definition at line 78 of file ramfs.c.
References buffer, count, ERR, file, dentry_t::inode, memcpy(), memset(), inode_t::mutex, MUTEX_SCOPE, NULL, inode_t::private, realloc(), and inode_t::size.
|
static |
Definition at line 229 of file ramfs.c.
Referenced by ramfs_mount(), and superblock_new().
|
static |
Definition at line 99 of file ramfs.c.
Referenced by inode_new(), ramfs_inode_new(), and sysfs_file_new().
|
static |
Definition at line 220 of file ramfs.c.
Referenced by ramfs_inode_new(), sysfs_dir_new(), and sysfs_file_new().
Definition at line 24 of file ramfs.c.
Referenced by ramfs_init().
|
static |
Definition at line 380 of file ramfs.c.
Referenced by ramfs_init().
|
static |
Definition at line 240 of file ramfs.c.
Referenced by ramfs_mount().