Home
last modified time | relevance | path

Searched refs:ring (Results 1 – 25 of 172) sorted by relevance

1234567

/illumos-gate/usr/src/cmd/cmd-inet/usr.bin/telnet/
H A Dring.c102 ring_init(Ring *ring, unsigned char *buffer, int count) in ring_init() argument
104 (void) memset(ring, 0, sizeof (*ring)); in ring_init()
106 ring->size = count; in ring_init()
108 ring->supply = ring->consume = ring->bottom = buffer; in ring_init()
110 ring->top = ring->bottom+ring->size; in ring_init()
112 ring->clearto = 0; in ring_init()
124 ring_mark(Ring *ring) in ring_mark() argument
126 ring->mark = ring_decrement(ring, ring->supply, 1); in ring_mark()
134 ring_at_mark(Ring *ring) in ring_at_mark() argument
136 if (ring->mark == ring->consume) { in ring_at_mark()
[all …]
H A Dring.h74 extern int ring_init(Ring *ring, unsigned char *buffer, int count);
77 extern void ring_supply_data(Ring *ring, unsigned char *buffer, int count);
79 extern void ring_consume_data(Ring *ring, unsigned char *buffer, int count);
83 extern void ring_supplied(Ring *ring, int count);
84 extern void ring_consumed(Ring *ring, int count);
87 extern int ring_at_mark(Ring *ring);
88 extern int ring_empty_count(Ring *ring);
89 extern int ring_empty_consecutive(Ring *ring);
90 extern int ring_full_count(Ring *ring);
91 extern int ring_full_consecutive(Ring *ring);
[all …]
/illumos-gate/usr/src/uts/intel/io/viona/
H A Dviona_ring.c107 vq_page_hold(viona_vring_t *ring, uint64_t gpa, bool writable) in vq_page_hold() argument
109 ASSERT3P(ring->vr_lease, !=, NULL); in vq_page_hold()
116 return (vmm_drv_page_hold(ring->vr_lease, gpa, prot)); in vq_page_hold()
133 vq_region_hold(viona_vring_t *ring, uint64_t gpa, uint32_t len, in vq_region_hold() argument
152 vmp = vq_page_hold(ring, gpa & PAGEMASK, writable); in vq_region_hold()
174 vmp = vq_page_hold(ring, gpa, writable); in vq_region_hold()
196 viona_vring_t *ring = arg; in viona_ring_lease_expire_cb() local
198 mutex_enter(&ring->vr_lock); in viona_ring_lease_expire_cb()
199 cv_broadcast(&ring->vr_cv); in viona_ring_lease_expire_cb()
200 mutex_exit(&ring->vr_lock); in viona_ring_lease_expire_cb()
[all …]
H A Dviona_tx.c91 viona_tx_wait_outstanding(viona_vring_t *ring) in viona_tx_wait_outstanding() argument
93 ASSERT(MUTEX_HELD(&ring->vr_lock)); in viona_tx_wait_outstanding()
95 while (ring->vr_xfer_outstanding != 0) { in viona_tx_wait_outstanding()
101 cv_wait(&ring->vr_cv, &ring->vr_lock); in viona_tx_wait_outstanding()
147 viona_tx_ring_alloc(viona_vring_t *ring, const uint16_t qsz) in viona_tx_ring_alloc() argument
149 const viona_link_params_t *vlp = &ring->vr_link->l_params; in viona_tx_ring_alloc()
151 ring->vr_tx.vrt_header_pad = vlp->vlp_tx_header_pad; in viona_tx_ring_alloc()
153 if (!ring->vr_link->l_params.vlp_tx_copy_data) { in viona_tx_ring_alloc()
156 ring->vr_tx.vrt_desb = dp; in viona_tx_ring_alloc()
159 VIONA_MAX_HDRS_LEN + ring->vr_tx.vrt_header_pad; in viona_tx_ring_alloc()
[all …]
H A Dviona_rx.c89 viona_worker_rx(viona_vring_t *ring, viona_link_t *link) in viona_worker_rx() argument
91 (void) thread_vsetname(curthread, "viona_rx_%p", ring); in viona_worker_rx()
93 ASSERT(MUTEX_HELD(&ring->vr_lock)); in viona_worker_rx()
94 ASSERT3U(ring->vr_state, ==, VRS_RUN); in viona_worker_rx()
96 viona_ring_disable_notify(ring); in viona_worker_rx()
99 if (vmm_drv_lease_expired(ring->vr_lease)) { in viona_worker_rx()
107 ring->vr_state_flags |= VRSF_RENEW; in viona_worker_rx()
108 mutex_exit(&ring->vr_lock); in viona_worker_rx()
110 mutex_enter(&ring->vr_lock); in viona_worker_rx()
112 if (!viona_ring_lease_renew(ring)) { in viona_worker_rx()
[all …]
/illumos-gate/usr/src/uts/common/xen/io/
H A Dblk_common.c142 static int blk_check_state_transition(blk_ring_t ring, XenbusState oestate);
143 static int blk_start_connect(blk_ring_t ring);
144 static void blk_start_disconnect(blk_ring_t ring);
145 static void blk_ring_close(blk_ring_t ring);
146 static int blk_bindto_frontend(blk_ring_t ring);
147 static void blk_unbindfrom_frontend(blk_ring_t ring);
150 static int blk_kstat_init(blk_ring_t ring);
151 static void blk_kstat_fini(blk_ring_t ring);
171 blk_ring_t ring; in blk_ring_init() local
175 ring = kmem_zalloc(sizeof (struct blk_ring_s), KM_SLEEP); in blk_ring_init()
[all …]
/illumos-gate/usr/src/uts/common/io/ib/clients/rdsv3/
H A Dib_ring.c74 rdsv3_ib_ring_init(struct rdsv3_ib_work_ring *ring, uint32_t nr) in rdsv3_ib_ring_init() argument
76 (void) memset(ring, 0, sizeof (*ring)); in rdsv3_ib_ring_init()
77 ring->w_nr = nr; in rdsv3_ib_ring_init()
78 RDSV3_DPRINTF5("rdsv3_ib_ring_init", "ring %p nr %u", ring, ring->w_nr); in rdsv3_ib_ring_init()
82 __rdsv3_ib_ring_used(struct rdsv3_ib_work_ring *ring) in __rdsv3_ib_ring_used() argument
87 diff = ring->w_alloc_ctr - (uint32_t)atomic_get(&ring->w_free_ctr); in __rdsv3_ib_ring_used()
88 ASSERT(diff <= ring->w_nr); in __rdsv3_ib_ring_used()
94 rdsv3_ib_ring_resize(struct rdsv3_ib_work_ring *ring, uint32_t nr) in rdsv3_ib_ring_resize() argument
100 ASSERT(!__rdsv3_ib_ring_used(ring)); in rdsv3_ib_ring_resize()
101 ring->w_nr = nr; in rdsv3_ib_ring_resize()
[all …]
/illumos-gate/usr/src/uts/common/io/igc/
H A Digc_ring.c287 igc_rx_ring_t *ring = buf->irb_ring; in igc_rx_recycle() local
321 mutex_enter(&ring->irr_free_lock); in igc_rx_recycle()
322 ring->irr_free_list[ring->irr_nfree] = buf; in igc_rx_recycle()
323 ring->irr_nfree++; in igc_rx_recycle()
325 igc_t *igc = ring->irr_igc; in igc_rx_recycle()
326 ASSERT3U(ring->irr_nfree, <=, igc->igc_rx_nfree); in igc_rx_recycle()
328 cv_signal(&ring->irr_free_cv); in igc_rx_recycle()
329 mutex_exit(&ring->irr_free_lock); in igc_rx_recycle()
333 igc_rx_bufs_free(igc_t *igc, igc_rx_ring_t *ring) in igc_rx_bufs_free() argument
336 igc_rx_buffer_t *buf = &ring->irr_arena[i]; in igc_rx_bufs_free()
[all …]
/illumos-gate/usr/src/uts/common/io/xge/hal/xgehal/
H A Dxgehal-ring.c76 xge_hal_ring_t *ring, int from, int to) in __hal_ring_rxdblock_link() argument
105 xge_os_dma_sync(ring->channel.pdev, in __hal_ring_rxdblock_link()
130 xge_hal_ring_t *ring = (xge_hal_ring_t *)userdata; in __hal_ring_mempool_item_alloc() local
133 xge_assert(ring); in __hal_ring_mempool_item_alloc()
137 for (i=ring->rxds_per_block-1; i>=0; i--) { in __hal_ring_mempool_item_alloc()
141 int reserve_index = index * ring->rxds_per_block + i; in __hal_ring_mempool_item_alloc()
144 ring->reserved_rxds_arr[reserve_index] = (char *)item + in __hal_ring_mempool_item_alloc()
145 (ring->rxds_per_block - 1 - i) * ring->rxd_size; in __hal_ring_mempool_item_alloc()
155 ring->reserved_rxds_arr[reserve_index]; in __hal_ring_mempool_item_alloc()
157 ((char*)rxdblock_priv + ring->rxd_priv_size * i); in __hal_ring_mempool_item_alloc()
[all …]
H A Dxgehal-ring-fp.c29 __hal_ring_rxd_priv(xge_hal_ring_t *ring, xge_hal_dtr_h dtrh) in __hal_ring_rxd_priv() argument
38 xge_assert(ring); in __hal_ring_rxd_priv()
39 if (ring->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) { in __hal_ring_rxd_priv()
45 ((char*)ring->mempool->memblocks_priv_arr[memblock_idx] + ring->rxd_priv_size * i); in __hal_ring_rxd_priv()
477 xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; in xge_hal_ring_dtr_pre_post() local
545 xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; in xge_hal_ring_dtr_post_post() local
553 priv = __hal_ring_rxd_priv(ring, rxdp); in xge_hal_ring_dtr_post_post()
554 xge_os_dma_sync(ring->channel.pdev, in xge_hal_ring_dtr_post_post()
556 priv->dma_offset, ring->rxd_size, in xge_hal_ring_dtr_post_post()
564 if (ring->channel.usage_cnt > 0) in xge_hal_ring_dtr_post_post()
[all …]
/illumos-gate/usr/src/uts/i86pc/io/ioat/
H A Dioat_chan.c96 int ioat_ring_reserve(ioat_channel_t channel, ioat_channel_ring_t *ring,
99 static void ioat_cmd_post_copy(ioat_channel_ring_t *ring, uint64_t src_addr,
101 static void ioat_cmd_post_dca(ioat_channel_ring_t *ring, uint32_t dca_id);
295 ioat_channel_ring_t *ring; in ioat_channel_resume() local
303 ring = channel->ic_ring; in ioat_channel_resume()
333 bzero(ring->cr_desc, channel->ic_desc_alloc_size); in ioat_channel_resume()
338 (uint32_t)(ring->cr_phys_desc & 0xffffffff)); in ioat_channel_resume()
341 (uint32_t)(ring->cr_phys_desc >> 32)); in ioat_channel_resume()
346 (uint32_t)(ring->cr_phys_desc & 0xffffffff)); in ioat_channel_resume()
349 (uint32_t)(ring->cr_phys_desc >> 32)); in ioat_channel_resume()
[all …]
/illumos-gate/usr/src/uts/common/sys/fibre-channel/fca/oce/
H A Doce_buf.h146 #define RING_NUM_PENDING(ring) ring->num_used argument
148 #define RING_NUM_FREE(ring) \ argument
149 (uint32_t)(ring->num_items - ring->num_used)
151 #define RING_FULL(ring) (ring->num_used == ring->num_items) argument
153 #define RING_EMPTY(ring) (ring->num_used == 0) argument
155 #define RING_GET(ring, n) \ argument
156 ring->cidx = GET_Q_NEXT(ring->cidx, n, ring->num_items)
158 #define RING_PUT(ring, n) \ argument
159 ring->pidx = GET_Q_NEXT(ring->pidx, n, ring->num_items)
161 #define RING_GET_CONSUMER_ITEM_VA(ring, type) \ argument
[all …]
/illumos-gate/usr/src/uts/common/io/xge/drv/
H A Dxgell.c197 xgell_rx_buffer_replenish_all(xgell_rx_ring_t *ring) in xgell_rx_buffer_replenish_all() argument
199 xgell_rx_buffer_pool_t *bf_pool = &ring->bf_pool; in xgell_rx_buffer_replenish_all()
207 (xge_hal_ring_dtr_reserve(ring->channelh, &dtr) == XGE_HAL_OK)) { in xgell_rx_buffer_replenish_all()
218 xge_hal_ring_dtr_private(ring->channelh, dtr); in xgell_rx_buffer_replenish_all()
223 xge_hal_ring_dtr_post(ring->channelh, dtr); in xgell_rx_buffer_replenish_all()
236 xgell_rx_ring_t *ring = rx_buffer->ring; in xgell_rx_buffer_release() local
237 xgell_rx_buffer_pool_t *bf_pool = &ring->bf_pool; in xgell_rx_buffer_release()
268 xgell_rx_ring_t *ring = rx_buffer->ring; in xgell_rx_buffer_recycle() local
269 xgelldev_t *lldev = ring->lldev; in xgell_rx_buffer_recycle()
270 xgell_rx_buffer_pool_t *bf_pool = &ring->bf_pool; in xgell_rx_buffer_recycle()
[all …]
/illumos-gate/usr/src/uts/common/io/fibre-channel/fca/oce/
H A Doce_buf.c170 oce_ring_buffer_t *ring; in create_ring_buffer() local
174 ring = kmem_zalloc(sizeof (oce_ring_buffer_t), KM_NOSLEEP); in create_ring_buffer()
175 if (ring == NULL) { in create_ring_buffer()
181 ring->dbuf = oce_alloc_dma_buffer(dev, size, NULL, flags); in create_ring_buffer()
182 if (ring->dbuf == NULL) { in create_ring_buffer()
189 ring->num_items = num_items; in create_ring_buffer()
190 ring->item_size = item_size; in create_ring_buffer()
191 ring->num_used = 0; in create_ring_buffer()
192 return (ring); in create_ring_buffer()
195 kmem_free(ring, sizeof (oce_ring_buffer_t)); in create_ring_buffer()
[all …]
H A Doce_rx.c274 oce_ring_buffer_t *ring; in oce_rq_charge() local
277 ring = rq->ring; in oce_rq_charge()
278 cur_index = ring->cidx; in oce_rq_charge()
286 cur_index = GET_Q_NEXT(cur_index, 1, ring->num_items); in oce_rq_charge()
289 rqe = RING_GET_PRODUCER_ITEM_VA(rq->ring, in oce_rq_charge()
293 shadow_rq[rq->ring->pidx] = rqbd; in oce_rq_charge()
295 RING_PUT(rq->ring, 1); in oce_rq_charge()
317 rqbd = shadow_rq[rq->ring->cidx]; in oce_rq_discharge()
319 RING_GET(rq->ring, 1); in oce_rq_discharge()
343 oce_ring_buffer_t *ring; in oce_rx() local
[all …]
H A Doce_queue.c92 eq->ring = create_ring_buffer(dev, q_len, in oce_eq_create()
95 if (eq->ring == NULL) { in oce_eq_create()
97 "EQ ring alloc failed:0x%p", (void *)eq->ring); in oce_eq_create()
107 fwcmd->params.req.num_pages = eq->ring->dbuf->num_pages; in oce_eq_create()
108 oce_page_list(eq->ring->dbuf, &fwcmd->params.req.pages[0], in oce_eq_create()
109 eq->ring->dbuf->num_pages); in oce_eq_create()
136 destroy_ring_buffer(dev, eq->ring); in oce_eq_create()
172 destroy_ring_buffer(dev, eq->ring); in oce_eq_del()
173 eq->ring = NULL; in oce_eq_del()
213 cq->ring = create_ring_buffer(dev, q_len, in oce_cq_create()
[all …]
/illumos-gate/usr/src/uts/common/io/nxge/
H A Dnxge_hio_guest.c607 tx_ring_t *ring; in nxge_tdc_lp_conf() local
614 ring = nxge->tx_rings->rings[channel]; in nxge_tdc_lp_conf()
616 if (ring->hv_set) { in nxge_tdc_lp_conf()
631 ring->hv_tx_buf_base_ioaddr_pp = (uint64_t)data->orig_ioaddr_pp; in nxge_tdc_lp_conf()
632 ring->hv_tx_buf_ioaddr_size = (uint64_t)data->orig_alength; in nxge_tdc_lp_conf()
636 ring->hv_tx_buf_base_ioaddr_pp, in nxge_tdc_lp_conf()
637 ring->hv_tx_buf_ioaddr_size); in nxge_tdc_lp_conf()
645 ring->hv_tx_buf_base_ioaddr_pp, in nxge_tdc_lp_conf()
646 ring->hv_tx_buf_ioaddr_size)); in nxge_tdc_lp_conf()
659 channel, hv_rv, ring->hv_tx_buf_base_ioaddr_pp, in nxge_tdc_lp_conf()
[all …]
/illumos-gate/usr/src/uts/common/io/rwd/
H A Drt2661.c613 struct rt2661_tx_ring *ring, int count) in rt2661_alloc_tx_ring() argument
622 ring->count = count; in rt2661_alloc_tx_ring()
623 ring->queued = 0; in rt2661_alloc_tx_ring()
624 ring->cur = 0; in rt2661_alloc_tx_ring()
625 ring->next = 0; in rt2661_alloc_tx_ring()
626 ring->stat = 0; in rt2661_alloc_tx_ring()
631 &ring->txdesc_dma); in rt2661_alloc_tx_ring()
638 ring->desc = (struct rt2661_tx_desc *)ring->txdesc_dma.mem_va; in rt2661_alloc_tx_ring()
639 (void) bzero(ring->desc, size); in rt2661_alloc_tx_ring()
640 ring->paddr = ring->txdesc_dma.cookie.dmac_address; in rt2661_alloc_tx_ring()
[all …]
/illumos-gate/usr/src/uts/sun4u/sunfire/io/
H A Djtag.c1112 get_ring_descriptor_bytype(int ring, enum board_type type) in get_ring_descriptor_bytype() argument
1117 return (cpu_system_board[ring & 0xf]); in get_ring_descriptor_bytype()
1120 return (io1_system_board[ring & 0xf]); in get_ring_descriptor_bytype()
1123 return (io1plus_system_board[ring & 0xf]); in get_ring_descriptor_bytype()
1126 return (io2_system_board[ring & 0xf]); in get_ring_descriptor_bytype()
1129 return (io2plus_system_board[ring & 0xf]); in get_ring_descriptor_bytype()
1132 return (io3_system_board[ring & 0xf]); in get_ring_descriptor_bytype()
1135 return (disk_system_board[ring & 0xf]); in get_ring_descriptor_bytype()
1145 jtag_ring ring, in jtag_check_plus_board() argument
1157 if ((jtag_scanout_chip(jreg, ring, comp, (u_int *)&fhc_data) >= 0) && in jtag_check_plus_board()
[all …]
/illumos-gate/usr/src/uts/common/io/mac/
H A Dmac.c606 mac_ring_t *ring = (mac_ring_t *)buf; in i_mac_ring_ctor() local
608 bzero(ring, sizeof (mac_ring_t)); in i_mac_ring_ctor()
609 cv_init(&ring->mr_cv, NULL, CV_DEFAULT, NULL); in i_mac_ring_ctor()
610 mutex_init(&ring->mr_lock, NULL, MUTEX_DEFAULT, NULL); in i_mac_ring_ctor()
611 ring->mr_state = MR_FREE; in i_mac_ring_ctor()
619 mac_ring_t *ring = (mac_ring_t *)buf; in i_mac_ring_dtor() local
621 cv_destroy(&ring->mr_cv); in i_mac_ring_dtor()
622 mutex_destroy(&ring->mr_lock); in i_mac_ring_dtor()
1176 mac_ring_t *ring = NULL; in mac_start() local
1192 ring = (mac_ring_t *)mip->mi_default_tx_ring; in mac_start()
[all …]
H A Dmac_stat.c416 mac_ring_t *ring = (mac_ring_t *)handle; in mac_rx_ring_stat_get() local
426 if (ring->mr_stat != NULL) in mac_rx_ring_stat_get()
427 ring->mr_stat(ring->mr_driver, stat, &val); in mac_rx_ring_stat_get()
440 i_mac_rx_ring_stat_create(mac_ring_t *ring, const char *modname, in i_mac_rx_ring_stat_create() argument
445 ksp = i_mac_stat_create(ring, modname, statname, in i_mac_rx_ring_stat_create()
448 ring->mr_ksp = ksp; in i_mac_rx_ring_stat_create()
457 mac_ring_t *ring = (mac_ring_t *)handle; in mac_tx_ring_stat_get() local
467 if (ring->mr_stat != NULL) in mac_tx_ring_stat_get()
468 ring->mr_stat(ring->mr_driver, stat, &val); in mac_tx_ring_stat_get()
481 i_mac_tx_ring_stat_create(mac_ring_t *ring, const char *modname, in i_mac_tx_ring_stat_create() argument
[all …]
H A Dmac_datapath_setup.c195 #define MAC_RING_RETARGETABLE(ring) \ argument
196 (((ring) != NULL) && \
197 ((ring)->mr_info.mri_intr.mi_ddi_handle != NULL) && \
198 !((ring)->mr_info.mri_intr.mi_ddi_shared))
506 mac_ring_t *ring; in mac_srs_poll_state_change() local
513 ring = mac_srs->srs_ring; in mac_srs_poll_state_change()
514 if ((ring != NULL) && in mac_srs_poll_state_change()
515 (ring->mr_classify_type == MAC_HW_CLASSIFIER)) { in mac_srs_poll_state_change()
726 mac_ring_t *ring; in mac_tx_cpu_init() local
752 ring = (mac_ring_t *)sringp->s_ring_tx_arg2; in mac_tx_cpu_init()
[all …]
/illumos-gate/usr/src/cmd/cmd-inet/usr.lib/in.chargend/
H A Din.chargend.c46 static char ring[RINGSIZE]; variable
55 endring = ring; in initring()
70 char *rs = ring; in chargen_stream()
76 rs = ring; in chargen_stream()
83 rp = ring; in chargen_stream()
89 rp = ring; in chargen_stream()
108 static char *rs = ring; in chargen_dg()
112 rs = ring; in chargen_dg()
116 rp = ring; in chargen_dg()
120 rp = ring; in chargen_dg()
/illumos-gate/usr/src/uts/common/io/bnxe/
H A Dbnxe_rr.c45 int ring = 0; in BnxeRouteTxRing() local
134 ring = ((u32_t)(pHdr[0] ^ pHdr[1] ^ pHdr[2] ^ pHdr[3]) % in BnxeRouteTxRing()
142 ring = ((pHdr[4] ^ pHdr[5] ^ pHdr[6] ^ pHdr[7]) % in BnxeRouteTxRing()
149 ring = (pHdr[19] % numRings); in BnxeRouteTxRing()
156 ring = (pHdr[19] % numRings); in BnxeRouteTxRing()
161 ring = (pMblk->b_band % numRings); in BnxeRouteTxRing()
170 ring = (pHdr[5] % numRings); in BnxeRouteTxRing()
175 ring = (pMblk->b_band % numRings); in BnxeRouteTxRing()
181 ring = 0; in BnxeRouteTxRing()
185 return ring; in BnxeRouteTxRing()
/illumos-gate/usr/src/uts/common/io/bge/
H A Dbge_main2.c255 bge_reinit_buff_ring(buff_ring_t *brp, uint32_t ring) in bge_reinit_buff_ring() argument
288 hw_rbd_p->flags |= ring_type_flag[ring]; in bge_reinit_buff_ring()
305 uint32_t ring; in bge_reinit_rings() local
312 for (ring = 0; ring < bgep->chipid.tx_rings; ++ring) in bge_reinit_rings()
313 bge_reinit_send_ring(&bgep->send[ring]); in bge_reinit_rings()
318 for (ring = 0; ring < bgep->chipid.rx_rings; ++ring) in bge_reinit_rings()
319 bge_reinit_recv_ring(&bgep->recv[ring]); in bge_reinit_rings()
324 for (ring = 0; ring < BGE_BUFF_RINGS_USED; ++ring) in bge_reinit_rings()
325 bge_reinit_buff_ring(&bgep->buff[ring], ring); in bge_reinit_rings()
352 uint32_t ring; in bge_reset() local
[all …]

1234567