Lines Matching refs:pktp

95 static void pktpool_avail_notify(pktpool_t *pktp);
230 pktpool_init(osl_t *osh, pktpool_t *pktp, int *n_pkts, int max_pkt_bytes, bool istx, in pktpool_init() argument
237 ASSERT(pktp != NULL); in pktpool_init()
243 bzero(pktp, sizeof(pktpool_t)); in pktpool_init()
246 if ((pktp_id = (uint8) pktpool_register(pktp)) == PKTPOOL_INVALID_ID) { in pktpool_init()
249 POOLSETID(pktp, pktp_id); in pktpool_init()
251 pktp->inited = TRUE; in pktpool_init()
252 pktp->istx = istx ? TRUE : FALSE; in pktpool_init()
253 pktp->max_pkt_bytes = (uint16)max_pkt_bytes; in pktpool_init()
254 pktp->type = type; in pktpool_init()
256 if (HND_PKTPOOL_MUTEX_CREATE("pktpool", &pktp->mutex) != OSL_EXT_SUCCESS) { in pktpool_init()
260 pktp->maxlen = PKTPOOL_LEN_MAX; in pktpool_init()
261 pktplen = LIMIT_TO_MAX(pktplen, pktp->maxlen); in pktpool_init()
272 if (pktp->freelist == NULL) /* pktpool free list is empty */ in pktpool_init()
278 PKTSETPOOL(osh, p, TRUE, pktp); /* Tag packet with pool ID */ in pktpool_init()
280 PKTSETFREELIST(p, pktp->freelist); /* insert p at head of free list */ in pktpool_init()
281 pktp->freelist = p; in pktpool_init()
283 pktp->avail++; in pktpool_init()
286 pktp->dbg_q[pktp->dbg_qlen++].p = p; in pktpool_init()
291 pktp->n_pkts = pktp->avail; in pktpool_init()
293 *n_pkts = pktp->n_pkts; /* number of packets managed by pool */ in pktpool_init()
306 pktpool_deinit(osl_t *osh, pktpool_t *pktp) in pktpool_deinit() argument
311 ASSERT(pktp != NULL); in pktpool_deinit()
316 for (i = 0; i <= pktp->n_pkts; i++) { in pktpool_deinit()
317 pktp->dbg_q[i].p = NULL; in pktpool_deinit()
322 while (pktp->freelist != NULL) { in pktpool_deinit()
323 void * p = pktp->freelist; in pktpool_deinit()
325 pktp->freelist = PKTFREELIST(p); /* unlink head packet from free list */ in pktpool_deinit()
330 PKTFREE(osh, p, pktp->istx); /* free the packet */ in pktpool_deinit()
333 ASSERT(freed <= pktp->n_pkts); in pktpool_deinit()
336 pktp->avail -= freed; in pktpool_deinit()
337 ASSERT(pktp->avail == 0); in pktpool_deinit()
339 pktp->n_pkts -= freed; in pktpool_deinit()
341 pktpool_deregister(pktp); /* release previously acquired unique pool id */ in pktpool_deinit()
342 POOLSETID(pktp, PKTPOOL_INVALID_ID); in pktpool_deinit()
344 if (HND_PKTPOOL_MUTEX_DELETE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_deinit()
347 pktp->inited = FALSE; in pktpool_deinit()
350 ASSERT(pktp->n_pkts == 0); in pktpool_deinit()
356 pktpool_fill(osl_t *osh, pktpool_t *pktp, bool minimal) in pktpool_fill() argument
363 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_fill()
366 ASSERT(pktp->max_pkt_bytes != 0); in pktpool_fill()
368 maxlen = pktp->maxlen; in pktpool_fill()
370 for (n_pkts = (int)pktp->n_pkts; n_pkts < psize; n_pkts++) { in pktpool_fill()
372 p = PKTGET(osh, pktp->n_pkts, TRUE); in pktpool_fill()
379 if (pktpool_add(pktp, p) != BCME_OK) { in pktpool_fill()
387 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_fill()
390 if (pktp->cbcnt) { in pktpool_fill()
391 if (pktp->empty == FALSE) in pktpool_fill()
392 pktpool_avail_notify(pktp); in pktpool_fill()
402 pktpool_reclaim(osl_t *osh, pktpool_t *pktp, uint16 free_cnt) in pktpool_reclaim() argument
410 ASSERT(pktp != NULL); in pktpool_reclaim()
413 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) { in pktpool_reclaim()
417 if (pktp->avail < free_cnt) { in pktpool_reclaim()
418 free_cnt = pktp->avail; in pktpool_reclaim()
421 if (BCMSPLITRX_ENAB() && (pktp->type == lbuf_rxfrag)) { in pktpool_reclaim()
425 ASSERT(pktp->cbext.cb != NULL); in pktpool_reclaim()
427 cb = pktp->cbext.cb; in pktpool_reclaim()
428 arg = pktp->cbext.arg; in pktpool_reclaim()
430 } else if ((pktp->type == lbuf_basic) && (pktp->rxcplidfn.cb != NULL)) { in pktpool_reclaim()
434 cb = pktp->rxcplidfn.cb; in pktpool_reclaim()
435 arg = pktp->rxcplidfn.arg; in pktpool_reclaim()
438 while ((pktp->freelist != NULL) && (free_cnt)) { in pktpool_reclaim()
439 void * p = pktp->freelist; in pktpool_reclaim()
441 pktp->freelist = PKTFREELIST(p); /* unlink head packet from free list */ in pktpool_reclaim()
445 if (cb(pktp, arg, p, REMOVE_RXCPLID)) { in pktpool_reclaim()
446 PKTSETFREELIST(p, pktp->freelist); in pktpool_reclaim()
447 pktp->freelist = p; in pktpool_reclaim()
454 PKTFREE(osh, p, pktp->istx); /* free the packet */ in pktpool_reclaim()
460 pktp->avail -= freed; in pktpool_reclaim()
462 pktp->n_pkts -= freed; in pktpool_reclaim()
465 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) { in pktpool_reclaim()
478 pktpool_empty(osl_t *osh, pktpool_t *pktp) in pktpool_empty() argument
483 ASSERT(pktp != NULL); in pktpool_empty()
486 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_empty()
492 for (i = 0; i <= pktp->n_pkts; i++) { in pktpool_empty()
493 pktp->dbg_q[i].p = NULL; in pktpool_empty()
498 while (pktp->freelist != NULL) { in pktpool_empty()
499 void * p = pktp->freelist; in pktpool_empty()
501 pktp->freelist = PKTFREELIST(p); /* unlink head packet from free list */ in pktpool_empty()
506 PKTFREE(osh, p, pktp->istx); /* free the packet */ in pktpool_empty()
509 ASSERT(freed <= pktp->n_pkts); in pktpool_empty()
512 pktp->avail -= freed; in pktpool_empty()
513 ASSERT(pktp->avail == 0); in pktpool_empty()
515 pktp->n_pkts -= freed; in pktpool_empty()
517 ASSERT(pktp->n_pkts == 0); in pktpool_empty()
520 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_empty()
527 pktpool_deq(pktpool_t *pktp) in pktpool_deq() argument
531 if (pktp->avail == 0) in pktpool_deq()
534 ASSERT(pktp->freelist != NULL); in pktpool_deq()
536 p = pktp->freelist; /* dequeue packet from head of pktpool free list */ in pktpool_deq()
537 pktp->freelist = PKTFREELIST(p); /* free list points to next packet */ in pktpool_deq()
541 pktp->avail--; in pktpool_deq()
547 pktpool_enq(pktpool_t *pktp, void *p) in pktpool_enq() argument
551 PKTSETFREELIST(p, pktp->freelist); /* insert at head of pktpool free list */ in pktpool_enq()
552 pktp->freelist = p; /* free list points to newly inserted packet */ in pktpool_enq()
554 pktp->avail++; in pktpool_enq()
555 ASSERT(pktp->avail <= pktp->n_pkts); in pktpool_enq()
561 (pktpool_hostaddr_fill_register)(pktpool_t *pktp, pktpool_cb_extn_t cb, void *arg)
566 ASSERT(pktp->cbext.cb == NULL);
567 pktp->cbext.cb = cb;
568 pktp->cbext.arg = arg;
573 pktpool_rxcplid_fill_register(pktpool_t *pktp, pktpool_cb_extn_t cb, void *arg) in pktpool_rxcplid_fill_register() argument
578 if (pktp == NULL) in pktpool_rxcplid_fill_register()
580 ASSERT(pktp->rxcplidfn.cb == NULL); in pktpool_rxcplid_fill_register()
581 pktp->rxcplidfn.cb = cb; in pktpool_rxcplid_fill_register()
582 pktp->rxcplidfn.arg = arg; in pktpool_rxcplid_fill_register()
588 pktpool_invoke_dmarxfill(pktpool_t *pktp) in pktpool_invoke_dmarxfill() argument
590 ASSERT(pktp->dmarxfill.cb); in pktpool_invoke_dmarxfill()
591 ASSERT(pktp->dmarxfill.arg); in pktpool_invoke_dmarxfill()
593 if (pktp->dmarxfill.cb) in pktpool_invoke_dmarxfill()
594 pktp->dmarxfill.cb(pktp, pktp->dmarxfill.arg); in pktpool_invoke_dmarxfill()
599 pkpool_haddr_avail_register_cb(pktpool_t *pktp, pktpool_cb_t cb, void *arg) in pkpool_haddr_avail_register_cb() argument
604 pktp->dmarxfill.cb = cb; in pkpool_haddr_avail_register_cb()
605 pktp->dmarxfill.arg = arg; in pkpool_haddr_avail_register_cb()
615 pktpool_avail_register(pktpool_t *pktp, pktpool_cb_t cb, void *arg) in pktpool_avail_register() argument
621 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_avail_register()
626 for (i = 0; i < pktp->cbcnt; i++) { in pktpool_avail_register()
627 ASSERT(pktp->cbs[i].cb != NULL); in pktpool_avail_register()
628 if ((cb == pktp->cbs[i].cb) && (arg == pktp->cbs[i].arg)) { in pktpool_avail_register()
629 pktp->cbs[i].refcnt++; in pktpool_avail_register()
634 i = pktp->cbcnt; in pktpool_avail_register()
640 ASSERT(pktp->cbs[i].cb == NULL); in pktpool_avail_register()
641 pktp->cbs[i].cb = cb; in pktpool_avail_register()
642 pktp->cbs[i].arg = arg; in pktpool_avail_register()
643 pktp->cbs[i].refcnt++; in pktpool_avail_register()
644 pktp->cbcnt++; in pktpool_avail_register()
648 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_avail_register()
656 pktpool_avail_deregister(pktpool_t *pktp, pktpool_cb_t cb, void *arg) in pktpool_avail_deregister() argument
662 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) { in pktpool_avail_deregister()
668 for (i = 0; i < pktp->cbcnt; i++) { in pktpool_avail_deregister()
669 ASSERT(pktp->cbs[i].cb != NULL); in pktpool_avail_deregister()
670 if ((cb == pktp->cbs[i].cb) && (arg == pktp->cbs[i].arg)) { in pktpool_avail_deregister()
671 pktp->cbs[i].refcnt--; in pktpool_avail_deregister()
672 if (pktp->cbs[i].refcnt) { in pktpool_avail_deregister()
677 for (k = i+1; k < pktp->cbcnt; i++, k++) { in pktpool_avail_deregister()
678 pktp->cbs[i].cb = pktp->cbs[k].cb; in pktpool_avail_deregister()
679 pktp->cbs[i].arg = pktp->cbs[k].arg; in pktpool_avail_deregister()
680 pktp->cbs[i].refcnt = pktp->cbs[k].refcnt; in pktpool_avail_deregister()
684 pktp->cbs[i].cb = NULL; in pktpool_avail_deregister()
685 pktp->cbs[i].arg = NULL; in pktpool_avail_deregister()
686 pktp->cbs[i].refcnt = 0; in pktpool_avail_deregister()
688 pktp->cbcnt--; in pktpool_avail_deregister()
695 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) { in pktpool_avail_deregister()
704 pktpool_empty_register(pktpool_t *pktp, pktpool_cb_t cb, void *arg) in pktpool_empty_register() argument
710 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_empty_register()
715 i = pktp->ecbcnt; in pktpool_empty_register()
721 ASSERT(pktp->ecbs[i].cb == NULL); in pktpool_empty_register()
722 pktp->ecbs[i].cb = cb; in pktpool_empty_register()
723 pktp->ecbs[i].arg = arg; in pktpool_empty_register()
724 pktp->ecbcnt++; in pktpool_empty_register()
728 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_empty_register()
736 pktpool_empty_notify(pktpool_t *pktp) in pktpool_empty_notify() argument
740 pktp->empty = TRUE; in pktpool_empty_notify()
741 for (i = 0; i < pktp->ecbcnt; i++) { in pktpool_empty_notify()
742 ASSERT(pktp->ecbs[i].cb != NULL); in pktpool_empty_notify()
743 pktp->ecbs[i].cb(pktp, pktp->ecbs[i].arg); in pktpool_empty_notify()
745 pktp->empty = FALSE; in pktpool_empty_notify()
752 pktpool_dbg_register(pktpool_t *pktp, pktpool_cb_t cb, void *arg) in pktpool_dbg_register() argument
758 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_dbg_register()
763 i = pktp->dbg_cbcnt; in pktpool_dbg_register()
769 ASSERT(pktp->dbg_cbs[i].cb == NULL); in pktpool_dbg_register()
770 pktp->dbg_cbs[i].cb = cb; in pktpool_dbg_register()
771 pktp->dbg_cbs[i].arg = arg; in pktpool_dbg_register()
772 pktp->dbg_cbcnt++; in pktpool_dbg_register()
776 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_dbg_register()
782 int pktpool_dbg_notify(pktpool_t *pktp);
785 pktpool_dbg_notify(pktpool_t *pktp) in pktpool_dbg_notify() argument
790 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_dbg_notify()
793 for (i = 0; i < pktp->dbg_cbcnt; i++) { in pktpool_dbg_notify()
794 ASSERT(pktp->dbg_cbs[i].cb); in pktpool_dbg_notify()
795 pktp->dbg_cbs[i].cb(pktp, pktp->dbg_cbs[i].arg); in pktpool_dbg_notify()
799 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_dbg_notify()
806 pktpool_dbg_dump(pktpool_t *pktp) in pktpool_dbg_dump() argument
811 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_dbg_dump()
814 printf("pool len=%d maxlen=%d\n", pktp->dbg_qlen, pktp->maxlen); in pktpool_dbg_dump()
815 for (i = 0; i < pktp->dbg_qlen; i++) { in pktpool_dbg_dump()
816 ASSERT(pktp->dbg_q[i].p); in pktpool_dbg_dump()
818 pktp->dbg_q[i].p, pktp->dbg_q[i].dur/100, PKTPOOLSTATE(pktp->dbg_q[i].p)); in pktpool_dbg_dump()
822 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_dbg_dump()
829 pktpool_stats_dump(pktpool_t *pktp, pktpool_stats_t *stats) in pktpool_stats_dump() argument
835 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_stats_dump()
839 for (i = 0; i < pktp->dbg_qlen; i++) { in pktpool_stats_dump()
840 ASSERT(pktp->dbg_q[i].p != NULL); in pktpool_stats_dump()
842 state = PKTPOOLSTATE(pktp->dbg_q[i].p); in pktpool_stats_dump()
862 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_stats_dump()
869 pktpool_start_trigger(pktpool_t *pktp, void *p) in pktpool_start_trigger() argument
874 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_start_trigger()
882 for (i = 0; i < pktp->dbg_qlen; i++) { in pktpool_start_trigger()
883 ASSERT(pktp->dbg_q[i].p != NULL); in pktpool_start_trigger()
885 if (pktp->dbg_q[i].p == p) { in pktpool_start_trigger()
886 pktp->dbg_q[i].cycles = cycles; in pktpool_start_trigger()
893 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_start_trigger()
899 int pktpool_stop_trigger(pktpool_t *pktp, void *p);
902 pktpool_stop_trigger(pktpool_t *pktp, void *p) in pktpool_stop_trigger() argument
907 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_stop_trigger()
915 for (i = 0; i < pktp->dbg_qlen; i++) { in pktpool_stop_trigger()
916 ASSERT(pktp->dbg_q[i].p != NULL); in pktpool_stop_trigger()
918 if (pktp->dbg_q[i].p == p) { in pktpool_stop_trigger()
919 if (pktp->dbg_q[i].cycles == 0) in pktpool_stop_trigger()
922 if (cycles >= pktp->dbg_q[i].cycles) in pktpool_stop_trigger()
923 pktp->dbg_q[i].dur = cycles - pktp->dbg_q[i].cycles; in pktpool_stop_trigger()
925 pktp->dbg_q[i].dur = in pktpool_stop_trigger()
926 (((uint32)-1) - pktp->dbg_q[i].cycles) + cycles + 1; in pktpool_stop_trigger()
928 pktp->dbg_q[i].cycles = 0; in pktpool_stop_trigger()
935 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_stop_trigger()
943 pktpool_avail_notify_normal(osl_t *osh, pktpool_t *pktp) in pktpool_avail_notify_normal() argument
946 ASSERT(pktp); in pktpool_avail_notify_normal()
949 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_avail_notify_normal()
952 pktp->availcb_excl = NULL; in pktpool_avail_notify_normal()
955 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_avail_notify_normal()
962 pktpool_avail_notify_exclusive(osl_t *osh, pktpool_t *pktp, pktpool_cb_t cb) in pktpool_avail_notify_exclusive() argument
968 ASSERT(pktp); in pktpool_avail_notify_exclusive()
971 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_avail_notify_exclusive()
974 ASSERT(pktp->availcb_excl == NULL); in pktpool_avail_notify_exclusive()
975 for (i = 0; i < pktp->cbcnt; i++) { in pktpool_avail_notify_exclusive()
976 if (cb == pktp->cbs[i].cb) { in pktpool_avail_notify_exclusive()
977 pktp->availcb_excl = &pktp->cbs[i]; in pktpool_avail_notify_exclusive()
982 if (pktp->availcb_excl == NULL) in pktpool_avail_notify_exclusive()
988 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_avail_notify_exclusive()
995 pktpool_avail_notify(pktpool_t *pktp) in pktpool_avail_notify() argument
1000 ASSERT(pktp); in pktpool_avail_notify()
1001 if (pktp->availcb_excl != NULL) { in pktpool_avail_notify()
1002 pktp->availcb_excl->cb(pktp, pktp->availcb_excl->arg); in pktpool_avail_notify()
1006 k = pktp->cbcnt - 1; in pktpool_avail_notify()
1007 for (i = 0; i < pktp->cbcnt; i++) { in pktpool_avail_notify()
1008 avail = pktp->avail; in pktpool_avail_notify()
1011 if (pktp->cbtoggle) in pktpool_avail_notify()
1016 ASSERT(pktp->cbs[idx].cb != NULL); in pktpool_avail_notify()
1017 pktp->cbs[idx].cb(pktp, pktp->cbs[idx].arg); in pktpool_avail_notify()
1023 pktp->cbtoggle ^= 1; in pktpool_avail_notify()
1030 pktpool_get(pktpool_t *pktp) in pktpool_get() argument
1035 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_get()
1038 p = pktpool_deq(pktp); in pktpool_get()
1042 if (pktp->ecbcnt) in pktpool_get()
1043 pktpool_empty_notify(pktp); in pktpool_get()
1045 p = pktpool_deq(pktp); in pktpool_get()
1052 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_get()
1059 pktpool_free(pktpool_t *pktp, void *p) in pktpool_free() argument
1062 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_free()
1070 pktpool_enq(pktp, p); in pktpool_free()
1077 if (pktp->cbcnt) { in pktpool_free()
1081 if (pktp->emptycb_disable == EMPTYCB_ENABLED) { in pktpool_free()
1087 if (pktp->empty == FALSE) in pktpool_free()
1088 pktpool_avail_notify(pktp); in pktpool_free()
1093 pktp->emptycb_disable = EMPTYCB_SKIPPED; in pktpool_free()
1098 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_free()
1104 pktpool_add(pktpool_t *pktp, void *p) in pktpool_add() argument
1109 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in pktpool_add()
1114 if (pktp->n_pkts == pktp->maxlen) { in pktpool_add()
1120 ASSERT(pktp->max_pkt_bytes == PKTLEN(OSH_NULL, p)); in pktpool_add()
1121 PKTSETPOOL(OSH_NULL, p, TRUE, pktp); in pktpool_add()
1123 pktp->n_pkts++; in pktpool_add()
1124 pktpool_enq(pktp, p); in pktpool_add()
1127 pktp->dbg_q[pktp->dbg_qlen++].p = p; in pktpool_add()
1132 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in pktpool_add()
1143 BCMRAMFN(pktpool_setmaxlen)(pktpool_t *pktp, uint16 maxlen) in BCMRAMFN()
1146 if (HND_PKTPOOL_MUTEX_ACQUIRE(&pktp->mutex, OSL_EXT_TIME_FOREVER) != OSL_EXT_SUCCESS) in BCMRAMFN()
1156 pktp->maxlen = (pktp->n_pkts > maxlen) ? pktp->n_pkts : maxlen; in BCMRAMFN()
1159 if (HND_PKTPOOL_MUTEX_RELEASE(&pktp->mutex) != OSL_EXT_SUCCESS) in BCMRAMFN()
1162 return pktp->maxlen; in BCMRAMFN()
1166 pktpool_emptycb_disable(pktpool_t *pktp, bool disable) in pktpool_emptycb_disable() argument
1168 ASSERT(pktp); in pktpool_emptycb_disable()
1177 if ((!disable) && (pktp->cbcnt) && (pktp->empty == FALSE) && in pktpool_emptycb_disable()
1178 (pktp->emptycb_disable == EMPTYCB_SKIPPED)) { in pktpool_emptycb_disable()
1179 pktpool_avail_notify(pktp); in pktpool_emptycb_disable()
1183 pktp->emptycb_disable = disable ? EMPTYCB_DISABLED : EMPTYCB_ENABLED; in pktpool_emptycb_disable()
1187 pktpool_emptycb_disabled(pktpool_t *pktp) in pktpool_emptycb_disabled() argument
1189 ASSERT(pktp); in pktpool_emptycb_disabled()
1190 return pktp->emptycb_disable != EMPTYCB_ENABLED; in pktpool_emptycb_disabled()
1247 pktpool_resv_lfrag = resv_pool_info->pktp; in hnd_pktpool_init()