|
PatchworkOS
|
#include <kernel/fs/dentry.h>#include <stdio.h>#include <kernel/fs/vfs.h>#include <kernel/log/log.h>#include <kernel/sched/thread.h>#include <kernel/sync/lock.h>#include <kernel/sync/mutex.h>#include <stdlib.h>Go to the source code of this file.
Data Structures | |
| struct | getdents_ctx_t |
Functions | |
| static void | dentry_free (dentry_t *dentry) |
| dentry_t * | dentry_new (superblock_t *superblock, dentry_t *parent, const char *name) |
| Create a new dentry. | |
| uint64_t | dentry_make_positive (dentry_t *dentry, inode_t *inode) |
| Make a dentry positive by associating it with an inode. | |
| void | dentry_inc_mount_count (dentry_t *dentry) |
| Increments the mount count of a dentry. | |
| void | dentry_dec_mount_count (dentry_t *dentry) |
| Decrements the mount count of a dentry. | |
| static void | getdents_write (getdents_ctx_t *ctx, inode_number_t number, inode_type_t type, const char *name) |
| static void | getdents_recursive_traversal (getdents_ctx_t *ctx, dentry_t *dentry) |
| uint64_t | dentry_generic_getdents (dentry_t *dentry, dirent_t *buffer, uint64_t count, uint64_t *offset, path_flags_t flags) |
| Helper function for a basic getdents. | |
|
static |
Definition at line 13 of file dentry.c.
References assert, atomic_load, dentry_t::children, dentry_t::childrenMutex, dentry_ops_t::cleanup, DENTRY_IS_ROOT, DENTRY_NEGATIVE, DEREF, free(), dentry_t::inode, list_remove(), mutex_acquire(), mutex_release(), NULL, dentry_t::ops, dentry_t::parent, dentry_t::siblingEntry, and vfs_remove_dentry().
Referenced by dentry_new().
|
static |
Definition at line 165 of file dentry.c.
References getdents_ctx_t::basePath, dentry_t::children, dentry_t::childrenMutex, getdents_ctx_t::flags, getdents_recursive_traversal(), getdents_write(), dentry_t::inode, INODE_DIR, LIST_FOR_EACH, MAX_PATH, MUTEX_SCOPE, dentry_t::name, inode_t::number, PATH_RECURSIVE, snprintf(), strncpy(), and inode_t::type.
Referenced by dentry_generic_getdents(), and getdents_recursive_traversal().
|
static |
Definition at line 148 of file dentry.c.
References getdents_ctx_t::buffer, getdents_ctx_t::count, getdents_ctx_t::index, MAX_PATH, dirent_t::name, dirent_t::number, getdents_ctx_t::offset, start(), strncpy(), and dirent_t::type.
Referenced by dentry_generic_getdents(), and getdents_recursive_traversal().