MOS Source Code
Loading...
Searching...
No Matches
vfs_utils.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-3.0-or-later
2
3#pragma once
4
6
7void inode_init(inode_t *inode, superblock_t *sb, u64 ino, file_type_t type);
9
21
22ssize_t vfs_generic_read(const file_t *file, void *buf, size_t size, off_t offset);
23ssize_t vfs_generic_write(const file_t *file, const void *buf, size_t size, off_t offset);
24ssize_t vfs_generic_lseek(const file_t *file, off_t offset, int whence);
25int vfs_generic_close(const file_t *file);
26
27// ! simple page cache functions
29bool simple_page_write_begin(inode_cache_t *icache, off_t offset, size_t size, phyframe_t **page, void **private_);
30void simple_page_write_end(inode_cache_t *icache, off_t offset, size_t size, phyframe_t *page, void *private_);
32
33// ! simple in-memory directory iterator
file_type_t
Definition fs_types.h:14
basic_string_view< char > string_view
size_t size
Definition slab.cpp:34
const char * name
Definition slab.cpp:35
ssize_t off_t
Definition types.h:80
unsigned long long u64
Definition types.h:19
signed long ssize_t
Definition types.h:79
void dentry_iterator_op(vfs_listdir_state_t *state, u64 ino, mos::string_view name, file_type_t type)
Definition vfs_types.hpp:61
phyframe_t * simple_fill_cache(inode_cache_t *cache, off_t pgoff)
inode_t * inode_create(superblock_t *sb, u64 ino, file_type_t type)
Definition inode.cpp:59
ssize_t vfs_generic_write(const file_t *file, const void *buf, size_t size, off_t offset)
ssize_t vfs_generic_lseek(const file_t *file, off_t offset, int whence)
void vfs_generic_iterate_dir(const dentry_t *dir, vfs_listdir_state_t *state, dentry_iterator_op op)
bool simple_page_write_begin(inode_cache_t *icache, off_t offset, size_t size, phyframe_t **page, void **private_)
Definition vfs_utils.cpp:62
dentry_t * dentry_get_from_parent(superblock_t *sb, dentry_t *parent, mos::string_view name="")
Create a new dentry with the given name and parent.
Definition vfs_utils.cpp:37
void inode_init(inode_t *inode, superblock_t *sb, u64 ino, file_type_t type)
Definition inode.cpp:45
int vfs_generic_close(const file_t *file)
ssize_t vfs_generic_read(const file_t *file, void *buf, size_t size, off_t offset)
Definition vfs_utils.cpp:93
void simple_page_write_end(inode_cache_t *icache, off_t offset, size_t size, phyframe_t *page, void *private_)
Definition vfs_utils.cpp:74
long simple_flush_page_discard_data(inode_cache_t *icache, off_t pgoff, phyframe_t *page)
Definition vfs_utils.cpp:84