Lines Matching refs:srp

57 	send_ring_t *srp;
63 srp = ngep->send;
64 nslots = srp->desc.nslots;
68 ssbdp = srp->sw_sbds + slot;
127 send_ring_t *srp = ngep->send;
129 const uint64_t end = srp->desc.nslots * txd_size;
137 (void) ddi_dma_sync(srp->desc.dma_hdl, start, num, type);
140 (void) ddi_dma_sync(srp->desc.dma_hdl, start, 0, type);
141 (void) ddi_dma_sync(srp->desc.dma_hdl, 0, start + num - end,
162 send_ring_t *srp;
166 srp = ngep->send;
169 if (mutex_tryenter(srp->tc_lock) == 0)
172 mutex_enter(srp->tc_lock);
173 mutex_enter(srp->tx_lock);
175 next = srp->tx_next;
176 used = srp->tx_flow;
177 free = srp->tx_free;
179 mutex_exit(srp->tx_lock);
181 slot = srp->tc_next;
182 nslots = srp->desc.nslots;
189 mutex_exit(srp->tc_lock);
193 if (used > srp->tx_hwmark && ngep->resched_needed == 0)
194 used = srp->tx_hwmark;
210 ssbdp = &srp->sw_sbds[slot];
239 mutex_exit(srp->tc_lock);
243 mutex_enter(srp->tx_lock);
245 srp->tx_free += free;
246 ngep->watchdog = (srp->desc.nslots - srp->tx_free != 0);
248 srp->tc_next = slot;
250 ASSERT(srp->tx_free <= nslots);
251 ASSERT(srp->tc_next == NEXT_INDEX(srp->tx_next, srp->tx_free, nslots));
253 resched = (ngep->resched_needed != 0 && srp->tx_hwmark <= srp->tx_free);
255 mutex_exit(srp->tx_lock);
256 mutex_exit(srp->tc_lock);
263 mutex_enter(&srp->dmah_lock);
264 nge_tx_dmah_push(&dmah, &srp->dmah_free);
265 mutex_exit(&srp->dmah_lock);
282 send_ring_t *srp;
285 srp = ngep->send;
287 mutex_enter(srp->tx_lock);
289 if (srp->tx_free < srp->tx_lwmark) {
291 mutex_exit(srp->tx_lock);
293 mutex_enter(srp->tx_lock);
296 if (srp->tx_free >= num) {
298 start = srp->tx_next;
300 srp->tx_next = NEXT_INDEX(start, num, srp->desc.nslots);
301 srp->tx_free -= num;
302 srp->tx_flow += num;
305 mutex_exit(srp->tx_lock);
313 send_ring_t *srp;
315 srp = ngep->send;
323 mutex_enter(srp->tx_lock);
325 srp->tx_flow -= slotnum;
326 if (srp->tx_flow == 0) {
344 mutex_exit(srp->tx_lock);
348 nge_send_copy(nge_t *ngep, mblk_t *mp, send_ring_t *srp);
352 nge_send_copy(nge_t *ngep, mblk_t *mp, send_ring_t *srp)
371 ASSERT(start_index < srp->desc.nslots);
384 ssbdp = &srp->sw_sbds[start_index];
443 send_ring_t *srp;
450 srp = ngep->send;
451 nslots = srp->desc.nslots;
453 mutex_enter(&srp->dmah_lock);
454 err = nge_tx_dmah_pop(&srp->dmah_free, &dmah_list, fragno);
455 mutex_exit(&srp->dmah_lock);
545 hw_sbd_p = DMA_VPTR(srp->sw_sbds[j].desc);
552 hw_sbd_p = DMA_VPTR(srp->sw_sbds[j].desc);
563 srp->sw_sbds[j].flags = CONTROLER_OWN;
566 srp->sw_sbds[j].mp = mp;
567 srp->sw_sbds[j].mp_hndl = dmah_list;
568 srp->sw_sbds[j].frags = (uint32_t)fragno;
569 srp->sw_sbds[j].flags = CONTROLER_OWN;
584 mutex_enter(&srp->dmah_lock);
585 nge_tx_dmah_push(&dmah_list, &srp->dmah_free);
586 mutex_exit(&srp->dmah_lock);
595 send_ring_t *srp;
605 srp = ngep->send;
626 (srp->tx_free > frags * NGE_MAX_COOKIES)) {
629 status = nge_send_copy(ngep, mp, srp);
631 status = nge_send_copy(ngep, mp, srp);
635 status = nge_send_copy(ngep, mp, srp);