PatchworkOS  966e257
A non-POSIX operating system.
Loading...
Searching...
No Matches
vfs.h File Reference
#include <kernel/fs/dentry.h>
#include <kernel/fs/file.h>
#include <kernel/fs/inode.h>
#include <kernel/fs/mount.h>
#include <kernel/fs/path.h>
#include <kernel/fs/superblock.h>
#include <kernel/fs/sysfs.h>
#include <kernel/proc/process.h>
#include <kernel/sync/rwlock.h>
#include <kernel/utils/map.h>
#include <sys/io.h>
#include <sys/list.h>
#include <sys/math.h>
#include <sys/proc.h>
Include dependency graph for vfs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define VFS_ROOT_ENTRY_NAME   "__root__"
 The name of the root entry.
 
#define VFS_DEVICE_NAME_NONE   "__no_device__"
 The name used to indicate no device.
 
#define BUFFER_READ(buffer, count, offset, src, size)
 Helper macros for implementing file operations dealing with simple buffers.
 
#define BUFFER_WRITE(buffer, count, offset, src, size)
 Helper macro for implementing file operations dealing with simple buffer writes.
 

Functions

file_tvfs_open (const pathname_t *pathname, process_t *process)
 Open a file.
 
uint64_t vfs_open2 (const pathname_t *pathname, file_t *files[2], process_t *process)
 Open one file, returning two file handles.
 
file_tvfs_openat (const path_t *from, const pathname_t *pathname, process_t *process)
 Open a file relative to another path.
 
uint64_t vfs_read (file_t *file, void *buffer, uint64_t count)
 Read from a file.
 
uint64_t vfs_write (file_t *file, const void *buffer, uint64_t count)
 Write to a file.
 
uint64_t vfs_seek (file_t *file, int64_t offset, seek_origin_t origin)
 Seek in a file.
 
uint64_t vfs_ioctl (file_t *file, uint64_t request, void *argp, uint64_t size)
 Perform an ioctl operation on a file.
 
void * vfs_mmap (file_t *file, void *address, uint64_t length, pml_flags_t flags)
 Memory map a file.
 
uint64_t vfs_poll (poll_file_t *files, uint64_t amount, clock_t timeout)
 Poll multiple files.
 
uint64_t vfs_getdents (file_t *file, dirent_t *buffer, uint64_t count)
 Get directory entries from a directory file.
 
uint64_t vfs_stat (const pathname_t *pathname, stat_t *buffer, process_t *process)
 Get file information.
 
uint64_t vfs_link (const pathname_t *oldPathname, const pathname_t *newPathname, process_t *process)
 Make the same file appear twice in the filesystem.
 
uint64_t vfs_remove (const pathname_t *pathname, process_t *process)
 Remove a file or directory.
 
uint64_t vfs_id_get (void)
 Generates a new unique ID, to be used for any VFS object.