Lines Matching defs:pcq_items
43 * P3. atomic_store_release(&pcq->pcq_items[c], item) to publish
55 * C2. atomic_load_consume(&pcq->pcq_items[c]) to get the next
59 * C3. pcq->pcq_items[c] = NULL to consume the next unconsumed but
132 * cache-line both for pcq_t::pcq_pc and pcq_t::pcq_items.
139 void * volatile pcq_items[];
203 atomic_store_release(&pcq->pcq_items[op], item);
207 * that the update to pcq_items[] is visible before the wakeup
225 return (p == c) ? NULL : atomic_load_consume(&pcq->pcq_items[c]);
246 item = atomic_load_consume(&pcq->pcq_items[c]);
259 pcq->pcq_items[c] = NULL;
264 * Ensure that update to pcq_items[c] becomes globally visible
267 * to pcq_items[c] by pcq_put().
271 * load of pcq->pcq_items[c], but that necessarily happens
272 * before the store to pcq->pcq_items[c] to null it out because
294 pcq = kmem_zalloc(offsetof(pcq_t, pcq_items[nitems]), kmflags);
305 kmem_free(pcq, offsetof(pcq_t, pcq_items[pcq->pcq_nitems]));