Lines Matching refs:cachep
29 void *kmem_cache_alloc(struct kmem_cache *cachep, int gfp) in kmem_cache_alloc() argument
36 pthread_mutex_lock(&cachep->lock); in kmem_cache_alloc()
37 if (cachep->nr_objs) { in kmem_cache_alloc()
38 struct radix_tree_node *node = cachep->objs; in kmem_cache_alloc()
39 cachep->nr_objs--; in kmem_cache_alloc()
40 cachep->objs = node->parent; in kmem_cache_alloc()
41 pthread_mutex_unlock(&cachep->lock); in kmem_cache_alloc()
45 pthread_mutex_unlock(&cachep->lock); in kmem_cache_alloc()
46 if (cachep->align) in kmem_cache_alloc()
47 posix_memalign(&p, cachep->align, cachep->size); in kmem_cache_alloc()
49 p = malloc(cachep->size); in kmem_cache_alloc()
50 if (cachep->ctor) in kmem_cache_alloc()
51 cachep->ctor(p); in kmem_cache_alloc()
53 memset(p, 0, cachep->size); in kmem_cache_alloc()
62 void kmem_cache_free(struct kmem_cache *cachep, void *objp) in kmem_cache_free() argument
68 pthread_mutex_lock(&cachep->lock); in kmem_cache_free()
69 if (cachep->nr_objs > 10 || cachep->align) { in kmem_cache_free()
70 memset(objp, POISON_FREE, cachep->size); in kmem_cache_free()
74 cachep->nr_objs++; in kmem_cache_free()
75 node->parent = cachep->objs; in kmem_cache_free()
76 cachep->objs = node; in kmem_cache_free()
78 pthread_mutex_unlock(&cachep->lock); in kmem_cache_free()