44 __atomic_clear(&
cache->lock, __ATOMIC_RELAXED);
74 while (__atomic_test_and_set(&
cache->lock, __ATOMIC_ACQUIRE))
80 __atomic_fetch_add(&
cache->count, 1, __ATOMIC_RELAXED);
86 __atomic_clear(&
cache->lock, __ATOMIC_RELEASE);
97 while (__atomic_test_and_set(&
cache->lock, __ATOMIC_ACQUIRE))
106 __atomic_clear(&
cache->lock, __ATOMIC_RELEASE);
111 __atomic_clear(&
cache->lock, __ATOMIC_RELEASE);
117 while (__atomic_test_and_set(&
cache->lock, __ATOMIC_ACQUIRE))
122 __atomic_fetch_sub(&
cache->count, 1, __ATOMIC_RELAXED);
124 __atomic_clear(&
cache->lock, __ATOMIC_RELEASE);
struct vfs_cache * create_vfs_cache()
static struct vfs_cache * cache_
void cache_remove(struct vfs_cache *cache, struct dentry *dentry)
static void hlist_del(struct hlist_node *n, struct hlist_head *h)
void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
struct dentry * cache_lookup(struct vfs_cache *cache, struct dentry *parent, const char *name)
struct vfs_cache * get_root_cache()
void vfs_cache_insert(struct vfs_cache *cache, struct dentry *dentry)
uint32_t hash_dentry(const char *name, dentry_ptr parent)
struct hlist_node hash_node
void serial2_printf(const char *fmt,...)
void * kalloc(size_t size)
static void llist_add_tail(struct llist_head *new_, struct llist_head *head)
struct process_node cache
#define LOG_DEBUG(mod, fmt,...)
int strcmp(const char *s1, const char *s2)
void memset(void *ptr, int value, size_t num)
struct hlist_node hash_node
struct llist_head child_list
static thread_bucket_t bucket
#define container_of(ptr, type, member)