Lines Matching refs:stbp
160 sfxge_tx_buffer_t *stbp = buf; in sfxge_tx_buffer_ctor() local
178 if ((rc = sfxge_dma_buffer_create(&(stbp->stb_esm), &dma_attr)) != 0) in sfxge_tx_buffer_ctor()
186 SFXGE_OBJ_CHECK(stbp, sfxge_tx_buffer_t); in sfxge_tx_buffer_ctor()
194 sfxge_tx_buffer_t *stbp = buf; in sfxge_tx_buffer_dtor() local
198 sfxge_dma_buffer_destroy(&(stbp->stb_esm)); in sfxge_tx_buffer_dtor()
200 SFXGE_OBJ_CHECK(stbp, sfxge_tx_buffer_t); in sfxge_tx_buffer_dtor()
520 sfxge_tx_qfbp_put(sfxge_txq_t *stp, sfxge_tx_buffer_t *stbp) in sfxge_tx_qfbp_put() argument
524 ASSERT3P(stbp->stb_next, ==, NULL); in sfxge_tx_qfbp_put()
525 ASSERT3U(stbp->stb_off, ==, 0); in sfxge_tx_qfbp_put()
526 ASSERT3U(stbp->stb_esm.esm_used, ==, 0); in sfxge_tx_qfbp_put()
528 stbp->stb_next = stfp->stf_stbp; in sfxge_tx_qfbp_put()
529 stfp->stf_stbp = stbp; in sfxge_tx_qfbp_put()
537 sfxge_tx_buffer_t *stbp; in sfxge_tx_qfbp_get() local
540 stbp = stfp->stf_stbp; in sfxge_tx_qfbp_get()
541 if (stbp == NULL) { in sfxge_tx_qfbp_get()
546 stfp->stf_stbp = stbp->stb_next; in sfxge_tx_qfbp_get()
547 stbp->stb_next = NULL; in sfxge_tx_qfbp_get()
557 return (stbp); in sfxge_tx_qfbp_get()
565 sfxge_tx_buffer_t *stbp; in sfxge_tx_qfbp_empty() local
569 stbp = stfp->stf_stbp; in sfxge_tx_qfbp_empty()
572 while (stbp != NULL) { in sfxge_tx_qfbp_empty()
575 next = stbp->stb_next; in sfxge_tx_qfbp_empty()
576 stbp->stb_next = NULL; in sfxge_tx_qfbp_empty()
581 kmem_cache_free(sp->s_tbc, stbp); in sfxge_tx_qfbp_empty()
583 stbp = next; in sfxge_tx_qfbp_empty()
767 sfxge_tx_buffer_t *stbp; in sfxge_tx_qreap() local
789 if ((stbp = stp->st_stbp[id]) != NULL) { in sfxge_tx_qreap()
796 next = stbp->stb_next; in sfxge_tx_qreap()
797 stbp->stb_next = NULL; in sfxge_tx_qreap()
799 stbp->stb_esm.esm_used = 0; in sfxge_tx_qreap()
800 stbp->stb_off = 0; in sfxge_tx_qreap()
802 sfxge_tx_qfbp_put(stp, stbp); in sfxge_tx_qreap()
804 stbp = next; in sfxge_tx_qreap()
805 } while (stbp != NULL); in sfxge_tx_qreap()
816 sfxge_tx_buffer_t *stbp; in sfxge_tx_qlist_abort() local
842 stbp = stp->st_stbp[id]; in sfxge_tx_qlist_abort()
846 while (stbp != NULL) { in sfxge_tx_qlist_abort()
849 next = stbp->stb_next; in sfxge_tx_qlist_abort()
850 stbp->stb_next = NULL; in sfxge_tx_qlist_abort()
852 stbp->stb_off = 0; in sfxge_tx_qlist_abort()
853 stbp->stb_esm.esm_used = 0; in sfxge_tx_qlist_abort()
855 sfxge_tx_qfbp_put(stp, stbp); in sfxge_tx_qlist_abort()
857 stbp = next; in sfxge_tx_qlist_abort()
908 sfxge_tx_buffer_t *stbp; in sfxge_tx_qlist_post() local
914 stbp = stp->st_stbp[id]; in sfxge_tx_qlist_post()
926 stp->st_stbp[id] = stbp; in sfxge_tx_qlist_post()
1319 sfxge_tx_qbuffer_add(sfxge_txq_t *stp, sfxge_tx_buffer_t *stbp, boolean_t eop) in sfxge_tx_qbuffer_add() argument
1332 ebp->eb_addr = stbp->stb_esm.esm_addr + stbp->stb_off; in sfxge_tx_qbuffer_add()
1333 ebp->eb_size = stbp->stb_esm.esm_used - stbp->stb_off; in sfxge_tx_qbuffer_add()
1336 (void) ddi_dma_sync(stbp->stb_esm.esm_dma_handle, in sfxge_tx_qbuffer_add()
1337 stbp->stb_off, ebp->eb_size, in sfxge_tx_qbuffer_add()
1340 stbp->stb_off = stbp->stb_esm.esm_used; in sfxge_tx_qbuffer_add()
1357 sfxge_tx_msgb_copy(mblk_t *mp, sfxge_tx_buffer_t *stbp, size_t *offp, in sfxge_tx_msgb_copy() argument
1372 copy_off = stbp->stb_esm.esm_used; in sfxge_tx_msgb_copy()
1379 stbp->stb_esm.esm_base + copy_off, copy_size); in sfxge_tx_msgb_copy()
1381 stbp->stb_esm.esm_used += copy_size; in sfxge_tx_msgb_copy()
1382 ASSERT3U(stbp->stb_esm.esm_used, <=, in sfxge_tx_msgb_copy()
1406 sfxge_tx_buffer_t *stbp; in sfxge_tx_qpayload_fragment() local
1410 stbp = stp->st_stbp[id]; in sfxge_tx_qpayload_fragment()
1411 ASSERT(stbp == NULL || (stbp->stb_esm.esm_used == stbp->stb_off)); in sfxge_tx_qpayload_fragment()
1474 if (stbp != NULL && (stbp->stb_esm.esm_used > stbp->stb_off)) { in sfxge_tx_qpayload_fragment()
1475 rc = sfxge_tx_qbuffer_add(stp, stbp, B_FALSE); in sfxge_tx_qpayload_fragment()
1499 if (stbp == NULL || in sfxge_tx_qpayload_fragment()
1500 stbp->stb_esm.esm_used == SFXGE_TX_BUFFER_SIZE) { in sfxge_tx_qpayload_fragment()
1502 stbp = sfxge_tx_qfbp_get(stp); in sfxge_tx_qpayload_fragment()
1503 if (stbp == NULL) { in sfxge_tx_qpayload_fragment()
1508 if ((stbp = kmem_cache_alloc(sp->s_tbc, in sfxge_tx_qpayload_fragment()
1516 stbp->stb_next = stp->st_stbp[id]; in sfxge_tx_qpayload_fragment()
1517 stp->st_stbp[id] = stbp; in sfxge_tx_qpayload_fragment()
1521 eop = sfxge_tx_msgb_copy(mp, stbp, &off, &size); in sfxge_tx_qpayload_fragment()
1524 stbp->stb_esm.esm_used == SFXGE_TX_BUFFER_SIZE); in sfxge_tx_qpayload_fragment()
1530 if (stbp->stb_esm.esm_used == SFXGE_TX_BUFFER_SIZE || eop) { in sfxge_tx_qpayload_fragment()
1531 rc = sfxge_tx_qbuffer_add(stp, stbp, eop); in sfxge_tx_qpayload_fragment()
1585 sfxge_tx_buffer_t *stbp; in sfxge_tx_qlso_fragment() local
1663 stbp = NULL; in sfxge_tx_qlso_fragment()
1682 if (stbp == NULL || in sfxge_tx_qlso_fragment()
1683 stbp->stb_esm.esm_used + hs > SFXGE_TX_BUFFER_SIZE) { in sfxge_tx_qlso_fragment()
1685 stbp = sfxge_tx_qfbp_get(stp); in sfxge_tx_qlso_fragment()
1686 if (stbp == NULL) { in sfxge_tx_qlso_fragment()
1691 if ((stbp = kmem_cache_alloc(sp->s_tbc, in sfxge_tx_qlso_fragment()
1699 stbp->stb_next = stp->st_stbp[id]; in sfxge_tx_qlso_fragment()
1700 stp->st_stbp[id] = stbp; in sfxge_tx_qlso_fragment()
1704 ASSERT3U(stbp->stb_off, ==, stbp->stb_esm.esm_used); in sfxge_tx_qlso_fragment()
1705 bcopy(hp, stbp->stb_esm.esm_base + stbp->stb_off, hs); in sfxge_tx_qlso_fragment()
1706 stbp->stb_esm.esm_used += hs; in sfxge_tx_qlso_fragment()
1709 rc = sfxge_tx_qbuffer_add(stp, stbp, B_FALSE); in sfxge_tx_qlso_fragment()
1787 sfxge_tx_buffer_t *stbp; in sfxge_tx_qpacket_fragment() local
1802 stbp = NULL; in sfxge_tx_qpacket_fragment()
1858 if (stbp != NULL && (stbp->stb_esm.esm_used > stbp->stb_off)) { in sfxge_tx_qpacket_fragment()
1859 rc = sfxge_tx_qbuffer_add(stp, stbp, B_FALSE); in sfxge_tx_qpacket_fragment()
1877 if (stbp == NULL || in sfxge_tx_qpacket_fragment()
1878 stbp->stb_esm.esm_used == SFXGE_TX_BUFFER_SIZE) { in sfxge_tx_qpacket_fragment()
1880 stbp = sfxge_tx_qfbp_get(stp); in sfxge_tx_qpacket_fragment()
1881 if (stbp == NULL) { in sfxge_tx_qpacket_fragment()
1886 if ((stbp = kmem_cache_alloc(sp->s_tbc, in sfxge_tx_qpacket_fragment()
1894 stbp->stb_next = stp->st_stbp[id]; in sfxge_tx_qpacket_fragment()
1895 stp->st_stbp[id] = stbp; in sfxge_tx_qpacket_fragment()
1899 eop = sfxge_tx_msgb_copy(mp, stbp, &off, &size); in sfxge_tx_qpacket_fragment()
1902 stbp->stb_esm.esm_used == SFXGE_TX_BUFFER_SIZE); in sfxge_tx_qpacket_fragment()
1908 if (stbp->stb_esm.esm_used == SFXGE_TX_BUFFER_SIZE || eop) { in sfxge_tx_qpacket_fragment()
1909 rc = sfxge_tx_qbuffer_add(stp, stbp, eop); in sfxge_tx_qpacket_fragment()