Lines Matching refs:pq

53 BCMFASTPATH(pktq_penq)(struct pktq *pq, int prec, void *p)  in BCMFASTPATH()
58 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
61 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
64 ASSERT_FP(!pktq_full(pq)); in BCMFASTPATH()
65 ASSERT_FP(!pktqprec_full(pq, prec)); in BCMFASTPATH()
67 q = &pq->q[prec]; in BCMFASTPATH()
77 pq->n_pkts_tot++; in BCMFASTPATH()
79 if (pq->hi_prec < prec) in BCMFASTPATH()
80 pq->hi_prec = (uint8)prec; in BCMFASTPATH()
83 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
161 BCMPOSTTRAPFASTPATH(pktq_penq_head)(struct pktq *pq, int prec, void *p) in BCMPOSTTRAPFASTPATH()
166 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMPOSTTRAPFASTPATH()
169 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMPOSTTRAPFASTPATH()
172 ASSERT_FP(!pktq_full(pq)); in BCMPOSTTRAPFASTPATH()
173 ASSERT_FP(!pktqprec_full(pq, prec)); in BCMPOSTTRAPFASTPATH()
175 q = &pq->q[prec]; in BCMPOSTTRAPFASTPATH()
184 pq->n_pkts_tot++; in BCMPOSTTRAPFASTPATH()
186 if (pq->hi_prec < prec) in BCMPOSTTRAPFASTPATH()
187 pq->hi_prec = (uint8)prec; in BCMPOSTTRAPFASTPATH()
190 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMPOSTTRAPFASTPATH()
226 BCMFASTPATH(pktq_pdeq)(struct pktq *pq, int prec) in BCMFASTPATH()
232 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
235 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
237 q = &pq->q[prec]; in BCMFASTPATH()
247 pq->n_pkts_tot--; in BCMFASTPATH()
257 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
334 BCMFASTPATH(pktq_pdeq_tail)(struct pktq *pq, int prec) in BCMFASTPATH()
340 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
343 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
345 q = &pq->q[prec]; in BCMFASTPATH()
361 pq->n_pkts_tot--; in BCMFASTPATH()
368 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
412 pktq_peek_tail(struct pktq *pq, int *prec_out) in pktq_peek_tail() argument
418 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktq_peek_tail()
421 if (pq->n_pkts_tot == 0) in pktq_peek_tail()
424 for (prec = 0; prec < pq->hi_prec; prec++) in pktq_peek_tail()
425 if (pq->q[prec].head) in pktq_peek_tail()
431 p = pq->q[prec].tail; in pktq_peek_tail()
435 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_peek_tail()
445 BCMFASTPATH(pktq_append)(struct pktq *pq, int prec, struct spktq *list) in BCMFASTPATH()
451 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
460 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
463 ASSERT_FP(!pktq_full(pq)); in BCMFASTPATH()
464 ASSERT_FP(!pktqprec_full(pq, prec)); in BCMFASTPATH()
466 q = &pq->q[prec]; in BCMFASTPATH()
475 pq->n_pkts_tot += list_q->n_pkts; in BCMFASTPATH()
477 if (pq->hi_prec < prec) in BCMFASTPATH()
478 pq->hi_prec = (uint8)prec; in BCMFASTPATH()
490 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
545 BCMFASTPATH(pktq_prepend)(struct pktq *pq, int prec, struct spktq *list) in BCMFASTPATH()
551 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
560 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
563 ASSERT_FP(!pktq_full(pq)); in BCMFASTPATH()
564 ASSERT_FP(!pktqprec_full(pq, prec)); in BCMFASTPATH()
566 q = &pq->q[prec]; in BCMFASTPATH()
581 pq->n_pkts_tot += list_q->n_pkts; in BCMFASTPATH()
583 if (pq->hi_prec < prec) in BCMFASTPATH()
584 pq->hi_prec = (uint8)prec; in BCMFASTPATH()
596 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
654 BCMFASTPATH(pktq_pdeq_prev)(struct pktq *pq, int prec, void *prev_p) in BCMFASTPATH()
660 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
663 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
665 q = &pq->q[prec]; in BCMFASTPATH()
675 pq->n_pkts_tot--; in BCMFASTPATH()
685 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
692 BCMFASTPATH(pktq_pdeq_with_fn)(struct pktq *pq, int prec, ifpkt_cb_t fn, int arg) in BCMFASTPATH()
698 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
701 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
703 q = &pq->q[prec]; in BCMFASTPATH()
730 pq->n_pkts_tot--; in BCMFASTPATH()
739 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
746 BCMFASTPATH(pktq_pdel)(struct pktq *pq, void *pktbuf, int prec) in BCMFASTPATH()
753 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
756 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
762 q = &pq->q[prec]; in BCMFASTPATH()
779 pq->n_pkts_tot--; in BCMFASTPATH()
790 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
797 _pktq_pfilter(struct pktq *pq, int prec, pktq_filter_t fltr, void* fltr_ctx, in _pktq_pfilter() argument
805 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in _pktq_pfilter()
809 q = &pq->q[prec]; in _pktq_pfilter()
821 pq->n_pkts_tot -= wq.n_pkts; in _pktq_pfilter()
824 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in _pktq_pfilter()
843 pktq_penq(pq, prec, p); in _pktq_pfilter()
866 pktq_pfilter(struct pktq *pq, int prec, pktq_filter_t fltr, void* fltr_ctx, in pktq_pfilter() argument
869 _pktq_pfilter(pq, prec, fltr, fltr_ctx, defer, defer_ctx); in pktq_pfilter()
876 pktq_filter(struct pktq *pq, pktq_filter_t fltr, void* fltr_ctx, in pktq_filter() argument
882 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktq_filter()
888 if (pq->n_pkts_tot > 0) { in pktq_filter()
893 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_filter()
899 PKTQ_PREC_ITER(pq, prec) { in pktq_filter()
900 _pktq_pfilter(pq, prec, fltr, fltr_ctx, defer, defer_ctx); in pktq_filter()
985 pktq_init(struct pktq *pq, int num_prec, uint max_pkts) in pktq_init() argument
992 bzero(pq, OFFSETOF(struct pktq, q) + (sizeof(struct pktq_prec) * num_prec)); in pktq_init()
994 if (HND_PKTQ_MUTEX_CREATE("pktq", &pq->mutex) != OSL_EXT_SUCCESS) in pktq_init()
997 pq->num_prec = (uint16)num_prec; in pktq_init()
999 pq->max_pkts = (uint16)max_pkts; in pktq_init()
1002 pq->q[prec].max_pkts = pq->max_pkts; in pktq_init()
1039 pktq_deinit(struct pktq *pq) in pktq_deinit() argument
1041 BCM_REFERENCE(pq); in pktq_deinit()
1042 if (HND_PKTQ_MUTEX_DELETE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_deinit()
1059 pktq_set_max_plen(struct pktq *pq, int prec, uint max_pkts) in pktq_set_max_plen() argument
1061 ASSERT(prec >= 0 && prec < pq->num_prec); in pktq_set_max_plen()
1064 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktq_set_max_plen()
1067 if (prec < pq->num_prec) in pktq_set_max_plen()
1068 pq->q[prec].max_pkts = (uint16)max_pkts; in pktq_set_max_plen()
1071 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_set_max_plen()
1076 BCMFASTPATH(pktq_deq)(struct pktq *pq, int *prec_out) in BCMFASTPATH()
1083 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
1086 if (pq->n_pkts_tot == 0) in BCMFASTPATH()
1089 while ((prec = pq->hi_prec) > 0 && pq->q[prec].head == NULL) in BCMFASTPATH()
1090 pq->hi_prec--; in BCMFASTPATH()
1092 q = &pq->q[prec]; in BCMFASTPATH()
1102 pq->n_pkts_tot--; in BCMFASTPATH()
1115 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
1122 BCMFASTPATH(pktq_deq_tail)(struct pktq *pq, int *prec_out) in BCMFASTPATH()
1129 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
1132 if (pq->n_pkts_tot == 0) in BCMFASTPATH()
1135 for (prec = 0; prec < pq->hi_prec; prec++) in BCMFASTPATH()
1136 if (pq->q[prec].head) in BCMFASTPATH()
1139 q = &pq->q[prec]; in BCMFASTPATH()
1155 pq->n_pkts_tot--; in BCMFASTPATH()
1168 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
1175 pktq_peek(struct pktq *pq, int *prec_out) in pktq_peek() argument
1181 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktq_peek()
1184 if (pq->n_pkts_tot == 0) in pktq_peek()
1187 while ((prec = pq->hi_prec) > 0 && pq->q[prec].head == NULL) in pktq_peek()
1188 pq->hi_prec--; in pktq_peek()
1193 p = pq->q[prec].head; in pktq_peek()
1197 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_peek()
1226 pktq_pflush(osl_t *osh, struct pktq *pq, int prec, bool dir) in pktq_pflush() argument
1233 while ((p = pktq_pdeq(pq, prec)) != NULL) { in pktq_pflush()
1290 pktq_flush(osl_t *osh, struct pktq *pq, bool dir) in pktq_flush() argument
1295 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktq_flush()
1301 if (pq->n_pkts_tot > 0) { in pktq_flush()
1306 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_flush()
1312 PKTQ_PREC_ITER(pq, prec) { in pktq_flush()
1313 pktq_pflush(osh, pq, prec, dir); in pktq_flush()
1320 pktq_mlen(struct pktq *pq, uint prec_bmp) in pktq_mlen() argument
1325 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktq_mlen()
1330 for (prec = 0; prec <= pq->hi_prec; prec++) in pktq_mlen()
1332 len += pq->q[prec].n_pkts; in pktq_mlen()
1335 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_mlen()
1343 BCMFASTPATH(pktq_mpeek)(struct pktq *pq, uint prec_bmp, int *prec_out) in BCMFASTPATH()
1350 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
1353 if (pq->n_pkts_tot == 0) in BCMFASTPATH()
1356 while ((prec = pq->hi_prec) > 0 && pq->q[prec].head == NULL) in BCMFASTPATH()
1357 pq->hi_prec--; in BCMFASTPATH()
1359 while ((prec_bmp & (1 << prec)) == 0 || pq->q[prec].head == NULL) in BCMFASTPATH()
1363 q = &pq->q[prec]; in BCMFASTPATH()
1373 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
1380 BCMPOSTTRAPFASTPATH(pktq_mdeq)(struct pktq *pq, uint prec_bmp, int *prec_out) in BCMPOSTTRAPFASTPATH()
1387 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMPOSTTRAPFASTPATH()
1390 if (pq->n_pkts_tot == 0) in BCMPOSTTRAPFASTPATH()
1393 while ((prec = pq->hi_prec) > 0 && pq->q[prec].head == NULL) in BCMPOSTTRAPFASTPATH()
1394 pq->hi_prec--; in BCMPOSTTRAPFASTPATH()
1396 while ((pq->q[prec].head == NULL) || ((prec_bmp & (1 << prec)) == 0)) in BCMPOSTTRAPFASTPATH()
1400 q = &pq->q[prec]; in BCMPOSTTRAPFASTPATH()
1423 pq->n_pkts_tot--; in BCMPOSTTRAPFASTPATH()
1429 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMPOSTTRAPFASTPATH()
1437 pktqprec_avail_pkts(struct pktq *pq, int prec) in pktqprec_avail_pkts() argument
1442 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktqprec_avail_pkts()
1445 ASSERT(prec >= 0 && prec < pq->num_prec); in pktqprec_avail_pkts()
1447 ret = pq->q[prec].max_pkts - pq->q[prec].n_pkts; in pktqprec_avail_pkts()
1450 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktqprec_avail_pkts()
1457 BCMFASTPATH(pktqprec_full)(struct pktq *pq, int prec) in BCMFASTPATH()
1462 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMFASTPATH()
1465 ASSERT_FP(prec >= 0 && prec < pq->num_prec); in BCMFASTPATH()
1467 ret = pq->q[prec].n_pkts >= pq->q[prec].max_pkts; in BCMFASTPATH()
1470 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in BCMFASTPATH()
1477 pktq_avail(struct pktq *pq) in pktq_avail() argument
1482 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktq_avail()
1485 ret = pq->max_pkts - pq->n_pkts_tot; in pktq_avail()
1488 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_avail()
1513 pktq_full(struct pktq *pq) in pktq_full() argument
1518 if (HND_PKTQ_MUTEX_ACQUIRE(&pq->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktq_full()
1521 ret = pq->n_pkts_tot >= pq->max_pkts; in pktq_full()
1524 if (HND_PKTQ_MUTEX_RELEASE(&pq->mutex) != OSL_EXT_SUCCESS) in pktq_full()