Lines Matching full:stack
51 * Stack producer operation safe for multiple unique producers and multiple consumers.
56 struct ck_stack_entry *stack; in ck_stack_push_upmc() local
58 stack = ck_pr_load_ptr(&target->head); in ck_stack_push_upmc()
59 entry->next = stack; in ck_stack_push_upmc()
62 while (ck_pr_cas_ptr_value(&target->head, stack, entry, &stack) == false) { in ck_stack_push_upmc()
63 entry->next = stack; in ck_stack_push_upmc()
74 * Stack producer operation for multiple unique producers and multiple consumers.
80 struct ck_stack_entry *stack; in ck_stack_trypush_upmc() local
82 stack = ck_pr_load_ptr(&target->head); in ck_stack_trypush_upmc()
83 entry->next = stack; in ck_stack_trypush_upmc()
86 return ck_pr_cas_ptr(&target->head, stack, entry); in ck_stack_trypush_upmc()
93 * Stack consumer operation safe for multiple unique producers and multiple consumers.
121 * Stack production operation for multiple unique producers and multiple consumers.
148 * Pop all items off the stack.
164 * Stack producer operation safe for multiple producers and multiple consumers.
178 * Stack producer operation safe for multiple producers and multiple consumers.
192 * Stack consumer operation safe for multiple producers and multiple consumers.
270 * Stack producer operation safe with no concurrent consumers.
275 struct ck_stack_entry *stack; in ck_stack_push_mpnc() local
279 stack = ck_pr_fas_ptr(&target->head, entry); in ck_stack_push_mpnc()
280 ck_pr_store_ptr(&entry->next, stack); in ck_stack_push_mpnc()
288 * Stack producer operation for single producer and no concurrent consumers.
300 * Stack consumer operation for no concurrent producers and single consumer.
317 * Pop all items off a stack.
331 * Stack initialization function. Guarantees initialization across processors.
334 ck_stack_init(struct ck_stack *stack) in ck_stack_init() argument
337 stack->head = NULL; in ck_stack_init()
338 stack->generation = NULL; in ck_stack_init()
348 #define CK_STACK_FOREACH(stack, entry) \ argument
349 for ((entry) = CK_STACK_FIRST(stack); \
352 #define CK_STACK_FOREACH_SAFE(stack, entry, T) \ argument
353 for ((entry) = CK_STACK_FIRST(stack); \