Lines Matching defs:vresp
106 static int vnet_bind_vgenring(vnet_res_t *vresp);
107 static void vnet_unbind_vgenring(vnet_res_t *vresp);
110 static int vnet_bind_rings(vnet_res_t *vresp);
111 static void vnet_unbind_rings(vnet_res_t *vresp);
122 void vnet_fdbe_add(vnet_t *vnetp, vnet_res_t *vresp);
123 static void vnet_fdbe_del(vnet_t *vnetp, vnet_res_t *vresp);
134 static void vnet_add_resource(vnet_t *vnetp, vnet_res_t *vresp);
135 static vnet_res_t *vnet_rem_resource(vnet_t *vnetp, vnet_res_t *vresp);
144 vnet_res_t *vresp);
146 static void vnet_hio_get_stats(vnet_res_t *vresp, vnet_hio_stats_t *statsp);
740 vnet_res_t *vresp;
755 vresp = vnetp->vsw_fp;
756 macp = &vresp->macreg;
792 vnet_res_t *vresp;
824 vresp = vnet_fdbe_find(vnetp, &ehp->ether_dhost);
825 if (vresp != NULL) {
833 macp = &vresp->macreg;
837 VNET_FDBE_REFRELE(vresp);
858 vresp = vnetp->hio_fp;
861 vresp = vnetp->vsw_fp;
864 if (vresp == NULL) {
875 VNET_FDBE_REFHOLD(vresp);
897 VNET_FDBE_REFRELE(vresp);
904 macp = &vresp->macreg;
907 macp = &vresp->macreg;
913 VNET_FDBE_REFRELE(vresp);
936 vnet_res_t *vresp;
953 for (vresp = vnetp->vres_list; vresp != NULL; vresp = vresp->nextp) {
954 macp = &vresp->macreg;
1180 vnet_fdbe_add(vnet_t *vnetp, vnet_res_t *vresp)
1185 KEY_HASH(addr, vresp->rem_macaddr);
1195 (vresp->type == VIO_NET_RES_LDC_SERVICE) ?
1196 (vresp->refcnt = 1) : (vresp->refcnt = 0);
1201 if (vresp->type != VIO_NET_RES_HYBRID) {
1203 (mod_hash_val_t)vresp);
1210 if (vresp->type == VIO_NET_RES_LDC_SERVICE) {
1214 vnetp->vsw_fp = vresp;
1216 } else if (vresp->type == VIO_NET_RES_HYBRID) {
1220 vnetp->hio_fp = vresp;
1229 vnet_fdbe_del(vnet_t *vnetp, vnet_res_t *vresp)
1236 KEY_HASH(addr, vresp->rem_macaddr);
1242 if (vresp->type != VIO_NET_RES_HYBRID) {
1255 if (vresp->type == VIO_NET_RES_LDC_SERVICE) {
1262 } else if (vresp->type == VIO_NET_RES_HYBRID) {
1274 (vresp->type == VIO_NET_RES_LDC_SERVICE) ?
1276 while (vresp->refcnt > refcnt) {
1289 vnet_res_t *vresp;
1295 (mod_hash_val_t *)&vresp, vnet_fdbe_find_cb);
1300 return (vresp);
1372 vnet_res_t *vresp = (vnet_res_t *)vrh;
1373 vnet_t *vnetp = vresp->vnetp;
1381 ringp = vresp->rx_ringp;
1388 vnet_res_t *vresp = (vnet_res_t *)vrh;
1389 vnet_t *vnetp = vresp->vnetp;
1572 vnet_res_t *vresp;
1574 vresp = kmem_zalloc(sizeof (vnet_res_t), KM_SLEEP);
1575 ether_copy(local_macaddr, vresp->local_macaddr);
1576 ether_copy(rem_macaddr, vresp->rem_macaddr);
1577 vresp->type = type;
1578 bcopy(macp, &vresp->macreg, sizeof (mac_register_t));
1585 if (VNET_MATCH_RES(vresp, vnetp)) {
1586 vresp->vnetp = vnetp;
1589 if (vresp->type == VIO_NET_RES_HYBRID) {
1590 vresp->ksp = vnet_hio_setup_kstats(DRV_NAME,
1591 "hio", vresp);
1592 if (vresp->ksp == NULL) {
1598 vnet_add_resource(vnetp, vresp);
1604 if (vresp->vnetp == NULL) {
1606 kmem_free(vresp, sizeof (vnet_res_t));
1610 *vhp = vresp;
1616 if (vnet_bind_rings(vresp) != 0) {
1617 (void) vnet_rem_resource(vnetp, vresp);
1618 vnet_hio_destroy_kstats(vresp->ksp);
1619 KMEM_FREE(vresp);
1634 vnet_res_t *vresp = (vnet_res_t *)vhp;
1635 vnet_t *vnetp = vresp->vnetp;
1644 vnet_fdbe_del(vnetp, vresp);
1646 vnet_unbind_rings(vresp);
1649 (void) vnet_rem_resource(vnetp, vresp);
1651 vnet_hio_destroy_kstats(vresp->ksp);
1652 KMEM_FREE(vresp);
1656 vnet_add_resource(vnet_t *vnetp, vnet_res_t *vresp)
1659 vresp->nextp = vnetp->vres_list;
1660 vnetp->vres_list = vresp;
1665 vnet_rem_resource(vnet_t *vnetp, vnet_res_t *vresp)
1670 if (vresp == vnetp->vres_list) {
1671 vnetp->vres_list = vresp->nextp;
1675 if (vrp->nextp == vresp) {
1676 vrp->nextp = vresp->nextp;
1682 vresp->vnetp = NULL;
1683 vresp->nextp = NULL;
1687 return (vresp);
1734 vnet_res_t *vresp = (vnet_res_t *)vrh;
1735 vnet_t *vnetp = vresp->vnetp;
1740 if ((vresp->type != VIO_NET_RES_LDC_SERVICE) &&
1741 (vresp->type != VIO_NET_RES_HYBRID)) {
1795 vnet_res_t *vresp;
1802 for (vresp = vnetp->vres_list; vresp != NULL; vresp = vresp->nextp) {
1804 if (vresp->flags & VNET_STARTED) {
1807 macp = &vresp->macreg;
1815 vresp->flags |= VNET_STARTED;
1816 vnet_fdbe_add(vnetp, vresp);
1830 vnet_res_t *vresp;
1838 for (vresp = vnetp->vres_list; vresp != NULL; ) {
1839 if (vresp->flags & VNET_STARTED) {
1852 * link (vresp->nextp) to continue with the next
1855 vresp->flags &= ~VNET_STARTED;
1856 vresp->flags |= VNET_STOPPING;
1857 macp = &vresp->macreg;
1859 VNET_FDBE_REFHOLD(vresp);
1865 vresp->flags &= ~VNET_STOPPING;
1866 VNET_FDBE_REFRELE(vresp);
1868 vresp = vresp->nextp;
1879 vnet_hio_setup_kstats(char *ks_mod, char *ks_name, vnet_res_t *vresp)
1882 vnet_t *vnetp = vresp->vnetp;
1924 ksp->ks_private = (void *)vresp;
1946 vnet_res_t *vresp;
1950 vresp = (vnet_res_t *)ksp->ks_private;
1951 vnetp = vresp->vnetp;
1996 vnet_hio_get_stats(vnet_res_t *vresp, vnet_hio_stats_t *statsp)
2006 macp = &vresp->macreg;
2455 vnet_res_t *vresp;
2479 vresp = (vnet_res_t *)rx_ringp->hw_rh;
2480 macp = &vresp->macreg;
2538 vnet_res_t *vresp;
2558 vresp = (vnet_res_t *)rx_ringp->hw_rh;
2559 return (vgen_enable_intr(vresp->macreg.m_driver));
2570 vnet_res_t *vresp;
2590 vresp = (vnet_res_t *)rx_ringp->hw_rh;
2591 return (vgen_disable_intr(vresp->macreg.m_driver));
2603 vnet_res_t *vresp;
2624 vresp = (vnet_res_t *)rx_ringp->hw_rh;
2625 mp = vgen_rx_poll(vresp->macreg.m_driver, bytes_to_pickup);
2946 vnet_bind_vgenring(vnet_res_t *vresp)
2955 vnetp = vresp->vnetp;
2956 type = vresp->type;
2965 * reference to the associated vresp.
2968 rx_ringp->hw_rh = (mac_ring_handle_t)vresp;
2969 vresp->rx_ringp = (void *)rx_ringp;
2984 rx_ringp->hw_rh = (mac_ring_handle_t)vresp;
2992 vresp->rx_ringp = (void *)rx_ringp;
3013 vnet_unbind_vgenring(vnet_res_t *vresp)
3021 vnetp = vresp->vnetp;
3022 type = vresp->type;
3025 if (vresp->rx_ringp == NULL) {
3035 * reference to the associated vresp.
3039 vresp->rx_ringp = NULL;
3046 rx_ringp = (vnet_pseudo_rx_ring_t *)vresp->rx_ringp;
3047 vresp->rx_ringp = NULL;
3064 vnet_unbind_rings(vnet_res_t *vresp)
3066 switch (vresp->type) {
3070 vnet_unbind_vgenring(vresp);
3074 vnet_unbind_hwrings(vresp->vnetp);
3084 vnet_bind_rings(vnet_res_t *vresp)
3088 switch (vresp->type) {
3092 rv = vnet_bind_vgenring(vresp);
3096 rv = vnet_bind_hwrings(vresp->vnetp);
3204 vnet_res_t *vresp;
3208 vresp = vnetp->vsw_fp;
3209 if (vresp == NULL) {
3214 macp = &vresp->macreg;