/illumos-gate/usr/src/cmd/cmd-inet/usr.bin/telnet/ |
H A D | ring.c | 102 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 D | ring.h | 74 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 D | viona_ring.c | 107 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 D | viona_tx.c | 91 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 D | viona_rx.c | 89 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 D | blk_common.c | 142 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 D | ib_ring.c | 74 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 D | igc_ring.c | 287 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 D | xgehal-ring.c | 76 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 D | xgehal-ring-fp.c | 29 __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 D | ioat_chan.c | 96 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 D | oce_buf.h | 146 #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 D | xgell.c | 197 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 D | oce_buf.c | 170 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 D | oce_rx.c | 274 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 D | oce_queue.c | 92 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 D | nxge_hio_guest.c | 607 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 D | rt2661.c | 613 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 D | jtag.c | 1112 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 D | mac.c | 606 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 D | mac_stat.c | 416 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 D | mac_datapath_setup.c | 195 #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 D | in.chargend.c | 46 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 D | bnxe_rr.c | 45 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 D | bge_main2.c | 255 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 …]
|