Lines Matching refs:ringp

622 xvdi_reinit_ring(dev_info_t *dip, grant_ref_t *gref, xendev_ring_t *ringp)
627 ASSERT((ringp != NULL) && (ringp->xr_paddr != 0));
628 rpaddr = ringp->xr_paddr;
631 gnttab_grant_foreign_access_ref(ringp->xr_gref, xvdi_get_oeid(dip),
633 *gref = ringp->xr_gref;
636 xvdi_ring_init_sring(ringp);
637 xvdi_ring_init_front_ring(ringp, ringp->xr_sring.fr.nr_ents,
638 ringp->xr_entry_size);
2042 #define GET_RING_SIZE(_ringp) RING_SIZE(FRONT_RING(ringp))
2051 xvdi_ring_avail_slots(xendev_ring_t *ringp)
2056 if (ringp->xr_frontend) {
2057 frp = FRONT_RING(ringp);
2058 return (GET_RING_SIZE(ringp) -
2061 brp = BACK_RING(ringp);
2062 return (GET_RING_SIZE(ringp) -
2068 xvdi_ring_has_unconsumed_requests(xendev_ring_t *ringp)
2072 ASSERT(!ringp->xr_frontend);
2073 brp = BACK_RING(ringp);
2075 ddi_get32(ringp->xr_acc_hdl, &brp->sring->req_prod)) &&
2080 xvdi_ring_has_incomp_request(xendev_ring_t *ringp)
2084 ASSERT(ringp->xr_frontend);
2085 frp = FRONT_RING(ringp);
2087 ddi_get32(ringp->xr_acc_hdl, &frp->sring->rsp_prod));
2091 xvdi_ring_has_unconsumed_responses(xendev_ring_t *ringp)
2095 ASSERT(ringp->xr_frontend);
2096 frp = FRONT_RING(ringp);
2098 ddi_get32(ringp->xr_acc_hdl, &frp->sring->rsp_prod));
2103 xvdi_ring_get_request(xendev_ring_t *ringp)
2108 if (ringp->xr_frontend) {
2110 frp = FRONT_RING(ringp);
2112 return (GET_RING_ENTRY_FE(ringp, frp->req_prod_pvt++));
2117 brp = BACK_RING(ringp);
2119 if (xvdi_ring_has_unconsumed_requests(ringp))
2120 return (GET_RING_ENTRY_BE(ringp, brp->req_cons++));
2122 ddi_put32(ringp->xr_acc_hdl, &brp->sring->req_event,
2125 if (xvdi_ring_has_unconsumed_requests(ringp))
2126 return (GET_RING_ENTRY_BE(ringp,
2135 xvdi_ring_push_request(xendev_ring_t *ringp)
2141 ASSERT(ringp->xr_frontend);
2144 frp = FRONT_RING(ringp);
2145 old = ddi_get32(ringp->xr_acc_hdl, &frp->sring->req_prod);
2147 ddi_put32(ringp->xr_acc_hdl, &frp->sring->req_prod, new);
2149 reqevt = ddi_get32(ringp->xr_acc_hdl, &frp->sring->req_event);
2155 xvdi_ring_get_response(xendev_ring_t *ringp)
2160 if (!ringp->xr_frontend) {
2162 brp = BACK_RING(ringp);
2163 return (GET_RING_ENTRY_BE(ringp, brp->rsp_prod_pvt++));
2166 frp = FRONT_RING(ringp);
2168 if (xvdi_ring_has_unconsumed_responses(ringp))
2169 return (GET_RING_ENTRY_FE(ringp, frp->rsp_cons++));
2171 ddi_put32(ringp->xr_acc_hdl, &frp->sring->rsp_event,
2174 if (xvdi_ring_has_unconsumed_responses(ringp))
2175 return (GET_RING_ENTRY_FE(ringp,
2184 xvdi_ring_push_response(xendev_ring_t *ringp)
2190 ASSERT(!ringp->xr_frontend);
2193 brp = BACK_RING(ringp);
2194 old = ddi_get32(ringp->xr_acc_hdl, &brp->sring->rsp_prod);
2196 ddi_put32(ringp->xr_acc_hdl, &brp->sring->rsp_prod, new);
2198 rspevt = ddi_get32(ringp->xr_acc_hdl, &brp->sring->rsp_event);
2203 xvdi_ring_init_sring(xendev_ring_t *ringp)
2209 xsrp = (comif_sring_t *)ringp->xr_vaddr;
2210 acchdl = ringp->xr_acc_hdl;
2222 xvdi_ring_init_front_ring(xendev_ring_t *ringp, size_t nentry, size_t entrysize)
2226 xfrp = &ringp->xr_sring.fr;
2230 xfrp->sring = (comif_sring_t *)ringp->xr_vaddr;
2232 ringp->xr_frontend = 1;
2233 ringp->xr_entry_size = entrysize;
2238 xvdi_ring_init_back_ring(xendev_ring_t *ringp, size_t nentry, size_t entrysize)
2242 xbrp = &ringp->xr_sring.br;
2246 xbrp->sring = (comif_sring_t *)ringp->xr_vaddr;
2248 ringp->xr_frontend = 0;
2249 ringp->xr_entry_size = entrysize;