Lines Matching +full:pre +full:- +full:its
1 /* SPDX-License-Identifier: GPL-2.0 */
10 * objpool: ring-array based lockless MPMC queue
17 * With leveraging percpu ring-array to mitigate hot spots of memory
18 * contention, it delivers near-linear scalability for high parallel
25 * 2) All pre-allocated objects are managed in percpu ring array,
30 * struct objpool_slot - percpu ring array of objpool
37 * Represents a cpu-local array-based ring buffer, its size is specialized
60 * caller-specified callback for object initial setup, it's only called
65 /* caller-specified cleanup callback for objpool destruction */
69 * struct objpool_head - object pooling metadata
71 * @nr_objs: total objs (to be pre-allocated with objpool)
79 * @context: caller-provided context
98 * objpool_init() - initialize objpool and pre-allocated objects
100 * @nr_objs: total objects to be pre-allocated by this object pool
109 * All pre-allocated objects are to be zeroed after memory allocation.
122 * objpool_pop() - allocate an object from objpool
130 * objpool_push() - reclaim the object and return back to objpool
140 * objpool_drop() - discard the object and deref objpool
144 * return: 0 if objpool was released; -EAGAIN if there are still
158 * objpool_free() - release objpool forcely (all objects to be freed)
164 * objpool_fini() - deref object pool (also releasing unused objects)