Lines Matching refs:pq
233 pktq_penq(struct pktq *pq, int prec, void *p) in pktq_penq() argument
237 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_penq()
240 ASSERT(!pktq_full(pq)); in pktq_penq()
241 ASSERT(!pktq_pfull(pq, prec)); in pktq_penq()
243 q = &pq->q[prec]; in pktq_penq()
253 pq->len++; in pktq_penq()
255 if (pq->hi_prec < prec) in pktq_penq()
256 pq->hi_prec = (uint8)prec; in pktq_penq()
262 pktq_penq_head(struct pktq *pq, int prec, void *p) in pktq_penq_head() argument
266 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_penq_head()
269 ASSERT(!pktq_full(pq)); in pktq_penq_head()
270 ASSERT(!pktq_pfull(pq, prec)); in pktq_penq_head()
272 q = &pq->q[prec]; in pktq_penq_head()
281 pq->len++; in pktq_penq_head()
283 if (pq->hi_prec < prec) in pktq_penq_head()
284 pq->hi_prec = (uint8)prec; in pktq_penq_head()
290 pktq_pdeq(struct pktq *pq, int prec) in pktq_pdeq() argument
295 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_pdeq()
297 q = &pq->q[prec]; in pktq_pdeq()
307 pq->len--; in pktq_pdeq()
315 pktq_pdeq_prev(struct pktq *pq, int prec, void *prev_p) in pktq_pdeq_prev() argument
320 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_pdeq_prev()
322 q = &pq->q[prec]; in pktq_pdeq_prev()
332 pq->len--; in pktq_pdeq_prev()
341 pktq_pdeq_with_fn(struct pktq *pq, int prec, ifpkt_cb_t fn, int arg) in pktq_pdeq_with_fn() argument
346 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_pdeq_with_fn()
348 q = &pq->q[prec]; in pktq_pdeq_with_fn()
371 pq->len--; in pktq_pdeq_with_fn()
379 pktq_pdeq_tail(struct pktq *pq, int prec) in pktq_pdeq_tail() argument
384 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_pdeq_tail()
386 q = &pq->q[prec]; in pktq_pdeq_tail()
402 pq->len--; in pktq_pdeq_tail()
408 pktq_pflush(osl_t *osh, struct pktq *pq, int prec, bool dir, ifpkt_cb_t fn, int arg) in pktq_pflush() argument
413 q = &pq->q[prec]; in pktq_pflush()
425 pq->len--; in pktq_pflush()
440 pktq_pdel(struct pktq *pq, void *pktbuf, int prec) in pktq_pdel() argument
445 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_pdel()
450 q = &pq->q[prec]; in pktq_pdel()
467 pq->len--; in pktq_pdel()
473 pktq_init(struct pktq *pq, int num_prec, int max_len) in pktq_init() argument
480 bzero(pq, OFFSETOF(struct pktq, q) + (sizeof(struct pktq_prec) * num_prec)); in pktq_init()
482 pq->num_prec = (uint16)num_prec; in pktq_init()
484 pq->max = (uint16)max_len; in pktq_init()
487 pq->q[prec].max = pq->max; in pktq_init()
491 pktq_set_max_plen(struct pktq *pq, int prec, int max_len) in pktq_set_max_plen() argument
493 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_set_max_plen()
495 if (prec < pq->num_prec) in pktq_set_max_plen()
496 pq->q[prec].max = (uint16)max_len; in pktq_set_max_plen()
500 pktq_deq(struct pktq *pq, int *prec_out) in pktq_deq() argument
506 if (pq->len == 0) in pktq_deq()
509 while ((prec = pq->hi_prec) > 0 && pq->q[prec].head == NULL) in pktq_deq()
510 pq->hi_prec--; in pktq_deq()
512 q = &pq->q[prec]; in pktq_deq()
522 pq->len--; in pktq_deq()
533 pktq_deq_tail(struct pktq *pq, int *prec_out) in pktq_deq_tail() argument
539 if (pq->len == 0) in pktq_deq_tail()
542 for (prec = 0; prec < pq->hi_prec; prec++) in pktq_deq_tail()
543 if (pq->q[prec].head) in pktq_deq_tail()
546 q = &pq->q[prec]; in pktq_deq_tail()
562 pq->len--; in pktq_deq_tail()
573 pktq_peek(struct pktq *pq, int *prec_out) in pktq_peek() argument
577 if (pq->len == 0) in pktq_peek()
580 while ((prec = pq->hi_prec) > 0 && pq->q[prec].head == NULL) in pktq_peek()
581 pq->hi_prec--; in pktq_peek()
586 return (pq->q[prec].head); in pktq_peek()
590 pktq_peek_tail(struct pktq *pq, int *prec_out) in pktq_peek_tail() argument
594 if (pq->len == 0) in pktq_peek_tail()
597 for (prec = 0; prec < pq->hi_prec; prec++) in pktq_peek_tail()
598 if (pq->q[prec].head) in pktq_peek_tail()
604 return (pq->q[prec].tail); in pktq_peek_tail()
608 pktq_flush(osl_t *osh, struct pktq *pq, bool dir, ifpkt_cb_t fn, int arg) in pktq_flush() argument
615 if (pq->len == 0) { in pktq_flush()
619 for (prec = 0; prec < pq->num_prec; prec++) in pktq_flush()
620 pktq_pflush(osh, pq, prec, dir, fn, arg); in pktq_flush()
622 ASSERT(pq->len == 0); in pktq_flush()
627 pktq_mlen(struct pktq *pq, uint prec_bmp) in pktq_mlen() argument
633 for (prec = 0; prec <= pq->hi_prec; prec++) in pktq_mlen()
635 len += pq->q[prec].len; in pktq_mlen()
642 pktq_mpeek(struct pktq *pq, uint prec_bmp, int *prec_out) in pktq_mpeek() argument
648 if (pq->len == 0) in pktq_mpeek()
652 while ((prec = pq->hi_prec) > 0 && pq->q[prec].head == NULL) in pktq_mpeek()
653 pq->hi_prec--; in pktq_mpeek()
655 while ((prec_bmp & (1 << prec)) == 0 || pq->q[prec].head == NULL) in pktq_mpeek()
659 q = &pq->q[prec]; in pktq_mpeek()
671 pktq_mdeq(struct pktq *pq, uint prec_bmp, int *prec_out) in pktq_mdeq() argument
677 if (pq->len == 0) in pktq_mdeq()
680 while ((prec = pq->hi_prec) > 0 && pq->q[prec].head == NULL) in pktq_mdeq()
681 pq->hi_prec--; in pktq_mdeq()
683 while ((pq->q[prec].head == NULL) || ((prec_bmp & (1 << prec)) == 0)) in pktq_mdeq()
687 q = &pq->q[prec]; in pktq_mdeq()
700 pq->len--; in pktq_mdeq()