Lines Matching defs:tcb

114 	tx_control_block_t *tcb;
306 tcb = igb_get_free_list(tx_ring);
308 if (tcb == NULL) {
317 LIST_PUSH_TAIL(&pending_list, &tcb->link);
327 ASSERT((tcb->tx_buf.len + current_len) <=
328 tcb->tx_buf.size);
338 } else if ((tcb->tx_buf.len + current_len + next_len) >
339 tcb->tx_buf.size) {
365 desc_num = igb_tx_copy(tx_ring, tcb, current_mp,
376 desc_num = igb_tx_bind(tx_ring, tcb, current_mp,
393 ASSERT(tcb);
394 ASSERT(tcb->mp == NULL);
395 tcb->mp = mp;
455 tcb = (tx_control_block_t *)LIST_GET_HEAD(&pending_list);
456 while (tcb) {
457 tcb->mp = NULL;
459 igb_free_tcb(tcb);
461 tcb = (tx_control_block_t *)
462 LIST_GET_NEXT(&pending_list, &tcb->link);
482 igb_tx_copy(igb_tx_ring_t *tx_ring, tx_control_block_t *tcb, mblk_t *mp,
489 tx_buf = &tcb->tx_buf;
505 tcb->frag_num++;
523 tcb->tx_type = USE_COPY;
530 igb_save_desc(tcb, tx_buf->dma_address, tx_buf->len);
543 igb_tx_bind(igb_tx_ring_t *tx_ring, tx_control_block_t *tcb, mblk_t *mp,
554 status = ddi_dma_addr_bind_handle(tcb->tx_dma_handle, NULL,
564 tcb->frag_num++;
565 tcb->tx_type = USE_DMA;
577 igb_save_desc(tcb,
584 ddi_dma_nextcookie(tcb->tx_dma_handle, &dma_cookie);
863 tx_control_block_t *tcb, *first_tcb;
929 tcb = (tx_control_block_t *)LIST_POP_HEAD(pending_list);
930 first_tcb = tcb;
931 while (tcb != NULL) {
933 for (i = 0; i < tcb->desc_num; i++) {
936 tbd->read.buffer_addr = tcb->desc[i].address;
937 tbd->read.cmd_type_len = tcb->desc[i].length;
953 tx_ring->work_list[tcb_index] = tcb;
956 tcb = (tx_control_block_t *)LIST_POP_HEAD(pending_list);
1051 igb_save_desc(tx_control_block_t *tcb, uint64_t address, size_t length)
1055 desc = &tcb->desc[tcb->desc_num];
1059 tcb->desc_num++;
1078 tx_control_block_t *tcb;
1113 index = tx_ring->tbd_head; /* Index of next tbd/tcb to recycle */
1115 tcb = tx_ring->work_list[index];
1116 ASSERT(tcb != NULL);
1118 while (tcb != NULL) {
1129 last_index = tcb->last_index;
1145 while (tcb != NULL) {
1151 LIST_PUSH_TAIL(&pending_list, &tcb->link);
1157 desc_num += tcb->desc_num;
1162 index = NEXT_INDEX(index, tcb->desc_num,
1165 tcb = tx_ring->work_list[index];
1202 tcb = (tx_control_block_t *)LIST_GET_HEAD(&pending_list);
1203 while (tcb != NULL) {
1207 igb_free_tcb(tcb);
1209 tcb = (tx_control_block_t *)
1210 LIST_GET_NEXT(&pending_list, &tcb->link);
1233 tx_control_block_t *tcb;
1285 tcb = tx_ring->work_list[index];
1286 ASSERT(tcb != NULL);
1289 tcb->desc_num) {
1302 LIST_PUSH_TAIL(&pending_list, &tcb->link);
1307 index = NEXT_INDEX(index, tcb->desc_num, tx_ring->ring_size);
1312 desc_num += tcb->desc_num;
1343 tcb = (tx_control_block_t *)LIST_GET_HEAD(&pending_list);
1344 while (tcb) {
1348 igb_free_tcb(tcb);
1350 tcb = (tx_control_block_t *)
1351 LIST_GET_NEXT(&pending_list, &tcb->link);
1370 igb_free_tcb(tx_control_block_t *tcb)
1372 switch (tcb->tx_type) {
1377 tcb->tx_buf.len = 0;
1384 (void) ddi_dma_unbind_handle(tcb->tx_dma_handle);
1393 if (tcb->mp != NULL) {
1394 freemsg(tcb->mp);
1395 tcb->mp = NULL;
1398 tcb->tx_type = USE_NONE;
1399 tcb->last_index = MAX_TX_RING_SIZE;
1400 tcb->frag_num = 0;
1401 tcb->desc_num = 0;
1414 tx_control_block_t *tcb;
1425 tcb = tx_ring->free_list[tx_ring->tcb_head];
1426 ASSERT(tcb != NULL);
1433 return (tcb);
1450 tx_control_block_t *tcb;
1457 tcb = (tx_control_block_t *)LIST_POP_HEAD(pending_list);
1458 while (tcb != NULL) {
1460 tx_ring->free_list[index] = tcb;
1466 tcb = (tx_control_block_t *)LIST_POP_HEAD(pending_list);