Lines Matching defs:tcb

95 	tx_control_block_t *tcb;
295 tcb = ixgbe_get_free_list(tx_ring);
297 if (tcb == NULL) {
306 LIST_PUSH_TAIL(&pending_list, &tcb->link);
316 ASSERT((tcb->tx_buf.len + current_len) <=
317 tcb->tx_buf.size);
327 } else if ((tcb->tx_buf.len + current_len + next_len) >
328 tcb->tx_buf.size) {
354 desc_num = ixgbe_tx_copy(tx_ring, tcb, current_mp,
365 desc_num = ixgbe_tx_bind(tx_ring, tcb, current_mp,
382 ASSERT(tcb);
383 ASSERT(tcb->mp == NULL);
384 tcb->mp = mp;
400 tcb = (tx_control_block_t *)LIST_GET_HEAD(&pending_list);
401 while (tcb) {
402 tcb->mp = NULL;
403 ixgbe_free_tcb(tcb);
404 tcb = (tx_control_block_t *)
405 LIST_GET_NEXT(&pending_list, &tcb->link);
448 tcb = ixgbe_get_free_list(tx_ring);
449 if (tcb == NULL) {
453 desc_num = ixgbe_tx_copy(tx_ring, tcb, pull_mp,
455 LIST_PUSH_TAIL(&pending_list, &tcb->link);
461 tcb = ixgbe_get_free_list(tx_ring);
462 if (tcb == NULL) {
467 desc_num = ixgbe_tx_bind(tx_ring, tcb, pull_mp,
470 desc_num = ixgbe_tx_bind(tx_ring, tcb, pull_mp,
476 LIST_PUSH_TAIL(&pending_list, &tcb->link);
479 tcb->mp = pull_mp;
553 tcb = (tx_control_block_t *)LIST_GET_HEAD(&pending_list);
554 while (tcb) {
555 tcb->mp = NULL;
557 ixgbe_free_tcb(tcb);
559 tcb = (tx_control_block_t *)
560 LIST_GET_NEXT(&pending_list, &tcb->link);
580 ixgbe_tx_copy(ixgbe_tx_ring_t *tx_ring, tx_control_block_t *tcb, mblk_t *mp,
587 tx_buf = &tcb->tx_buf;
603 tcb->frag_num++;
621 tcb->tx_type = USE_COPY;
628 ixgbe_save_desc(tcb, tx_buf->dma_address, tx_buf->len);
641 ixgbe_tx_bind(ixgbe_tx_ring_t *tx_ring, tx_control_block_t *tcb, mblk_t *mp,
652 status = ddi_dma_addr_bind_handle(tcb->tx_dma_handle, NULL,
662 tcb->frag_num++;
663 tcb->tx_type = USE_DMA;
675 ixgbe_save_desc(tcb,
682 ddi_dma_nextcookie(tcb->tx_dma_handle, &dma_cookie);
978 tx_control_block_t *tcb, *first_tcb;
1043 tcb = (tx_control_block_t *)LIST_POP_HEAD(pending_list);
1044 first_tcb = tcb;
1045 while (tcb != NULL) {
1047 for (i = 0; i < tcb->desc_num; i++) {
1050 tbd->read.buffer_addr = tcb->desc[i].address;
1051 tbd->read.cmd_type_len = tcb->desc[i].length;
1066 tx_ring->work_list[tcb_index] = tcb;
1069 tcb = (tx_control_block_t *)LIST_POP_HEAD(pending_list);
1183 ixgbe_save_desc(tx_control_block_t *tcb, uint64_t address, size_t length)
1187 desc = &tcb->desc[tcb->desc_num];
1191 tcb->desc_num++;
1210 tx_control_block_t *tcb;
1244 index = tx_ring->tbd_head; /* Index of next tbd/tcb to recycle */
1246 tcb = tx_ring->work_list[index];
1247 ASSERT(tcb != NULL);
1249 while (tcb != NULL) {
1260 last_index = tcb->last_index;
1277 while (tcb != NULL) {
1284 LIST_PUSH_TAIL(&pending_list, &tcb->link);
1290 desc_num += tcb->desc_num;
1292 index = NEXT_INDEX(index, tcb->desc_num,
1295 tcb = tx_ring->work_list[index];
1341 tcb = (tx_control_block_t *)LIST_GET_HEAD(&pending_list);
1342 while (tcb != NULL) {
1346 ixgbe_free_tcb(tcb);
1348 tcb = (tx_control_block_t *)
1349 LIST_GET_NEXT(&pending_list, &tcb->link);
1372 tx_control_block_t *tcb;
1424 tcb = tx_ring->work_list[index];
1425 ASSERT(tcb != NULL);
1428 tcb->desc_num) {
1441 LIST_PUSH_TAIL(&pending_list, &tcb->link);
1446 index = NEXT_INDEX(index, tcb->desc_num, tx_ring->ring_size);
1451 desc_num += tcb->desc_num;
1488 tcb = (tx_control_block_t *)LIST_GET_HEAD(&pending_list);
1489 while (tcb) {
1493 ixgbe_free_tcb(tcb);
1495 tcb = (tx_control_block_t *)
1496 LIST_GET_NEXT(&pending_list, &tcb->link);
1515 ixgbe_free_tcb(tx_control_block_t *tcb)
1517 switch (tcb->tx_type) {
1522 tcb->tx_buf.len = 0;
1529 (void) ddi_dma_unbind_handle(tcb->tx_dma_handle);
1538 if (tcb->mp != NULL) {
1539 freemsg(tcb->mp);
1540 tcb->mp = NULL;
1543 tcb->tx_type = USE_NONE;
1544 tcb->last_index = MAX_TX_RING_SIZE;
1545 tcb->frag_num = 0;
1546 tcb->desc_num = 0;
1559 tx_control_block_t *tcb;
1570 tcb = tx_ring->free_list[tx_ring->tcb_head];
1571 ASSERT(tcb != NULL);
1578 return (tcb);
1595 tx_control_block_t *tcb;
1602 tcb = (tx_control_block_t *)LIST_POP_HEAD(pending_list);
1603 while (tcb != NULL) {
1605 tx_ring->free_list[index] = tcb;
1611 tcb = (tx_control_block_t *)LIST_POP_HEAD(pending_list);