32#define VFS_ROOT_ENTRY_NAME "__root__"
37#define VFS_DEVICE_NAME_NONE "__no_device__"
194#define BUFFER_READ(buffer, count, offset, src, size) \
196 uint64_t readCount = (*(offset) <= (size)) ? MIN((count), (size) - *(offset)) : 0; \
197 memcpy((buffer), (src) + *(offset), readCount); \
198 *(offset) += readCount; \
212#define BUFFER_WRITE(buffer, count, offset, src, size) \
214 uint64_t writeCount = (*(offset) <= (size)) ? MIN((count), (size) - *(offset)) : 0; \
215 memcpy((buffer) + *(offset), (src), writeCount); \
216 *(offset) += writeCount; \
uint64_t vfs_ioctl(file_t *file, uint64_t request, void *argp, uint64_t size)
Perform an ioctl operation on a file.
uint64_t vfs_seek(file_t *file, int64_t offset, seek_origin_t origin)
Seek in 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_write(file_t *file, const void *buffer, uint64_t count)
Write to a file.
file_t * vfs_open(const pathname_t *pathname, process_t *process)
Open a file.
uint64_t vfs_remove(const pathname_t *pathname, process_t *process)
Remove a file or directory.
uint64_t vfs_stat(const pathname_t *pathname, stat_t *buffer, process_t *process)
Get file information.
uint64_t vfs_read(file_t *file, void *buffer, uint64_t count)
Read from a file.
file_t * vfs_openat(const path_t *from, const pathname_t *pathname, process_t *process)
Open a file relative to another path.
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_open2(const pathname_t *pathname, file_t *files[2], process_t *process)
Open one file, returning two file handles.
uint64_t vfs_id_get(void)
Generates a new unique ID, to be used for any VFS object.
uint8_t seek_origin_t
Type for the seek() origin argument.
__UINT64_TYPE__ clock_t
A nanosecond time.
static uintptr_t address
Mapped virtual address of the HPET registers.
EFI_PHYSICAL_ADDRESS buffer
static const path_flag_t flags[]
A entry in a page table without a specified address or callback ID.
Structure for polling multiple files.