Lines Matching defs:vsharep

75 #define	VSW_DDS_NEXT_REQID(vsharep)	(++vsharep->vs_req_id)
99 static void vsw_hio_free_share(vsw_share_t *vsharep);
106 static int vsw_hio_send_delshare_msg(vsw_share_t *vsharep);
193 vsw_share_t *vsharep;
199 vsharep = vsw_hio_find_free_share(vswp);
200 if (vsharep == NULL) {
206 rv = mac_share_bind(portp->p_mch, ldc_id, &vsharep->vs_cookie);
213 vsharep->vs_ldcid = ldcp->ldc_id;
214 vsharep->vs_macaddr = vnet_macaddr_strtoul(
216 vsharep->vs_portp = ldcp->ldc_port;
217 vsharep->vs_state |= VSW_SHARE_ASSIGNED;
220 return (vsharep);
230 vsw_share_t *vsharep;
235 vsharep = &hiop->vh_shares[i];
236 if (vsharep->vs_state == VSW_SHARE_FREE) {
238 __func__, vsharep->vs_index);
239 return (vsharep);
254 vsw_share_t *vsharep;
259 vsharep = &hiop->vh_shares[i];
260 if (vsharep->vs_state == VSW_SHARE_FREE) {
263 if (vsharep->vs_ldcid == ldc_id) {
265 __func__, vsharep->vs_index);
266 return (vsharep);
281 vsw_share_t *vsharep;
286 vsharep = &hiop->vh_shares[i];
287 if (vsharep->vs_state == VSW_SHARE_FREE) {
290 if (vsharep->vs_portp == portp) {
292 __func__, vsharep->vs_index);
293 return (vsharep);
304 vsw_hio_free_share(vsw_share_t *vsharep)
306 vsw_t *vswp = vsharep->vs_vswp;
307 vsw_port_t *portp = vsharep->vs_portp;
314 vsharep->vs_state = VSW_SHARE_FREE;
315 vsharep->vs_macaddr = 0;
316 vsharep->vs_portp = NULL;
320 vsharep->vs_ldcid, vsharep->vs_cookie);
367 vsw_share_t *vsharep;
390 vsharep = &hiop->vh_shares[i];
391 if (vsharep->vs_state == VSW_SHARE_FREE) {
400 if (vsharep->vs_state & VSW_SHARE_DDS_ACKD) {
405 "share(%d)", __func__, vsharep->vs_index);
406 rv = vsw_hio_send_delshare_msg(vsharep);
413 vsw_hio_port_reset(vsharep->vs_portp,
425 "share(%d)", __func__, vsharep->vs_index);
426 vsw_hio_port_reset(vsharep->vs_portp, reboot);
471 vsw_share_t *vsharep;
486 vsharep = vsw_hio_find_vshare_port(vswp, portp);
487 if (vsharep == NULL) {
506 vsw_share_t *vsharep;
519 vsharep = vsw_hio_find_vshare_ldcid(vswp, ldcp->ldc_id);
520 if (vsharep != NULL) {
526 vsharep = vsw_hio_alloc_share(vswp, ldcp);
527 if (vsharep == NULL) {
533 req_id = VSW_DDS_NEXT_REQID(vsharep);
534 rv = vsw_send_dds_msg(ldcp, DDS_VNET_ADD_SHARE, vsharep->vs_cookie,
535 vsharep->vs_macaddr, req_id);
540 vsw_hio_free_share(vsharep);
544 vsharep->vs_state &= ~VSW_SHARE_DDS_ACKD;
545 vsharep->vs_state |= VSW_SHARE_DDS_SENT;
550 ldcp->ldc_id, vsharep->vs_cookie);
561 vsw_share_t *vsharep;
566 vsharep = vsw_hio_find_vshare_ldcid(vswp, ldcp->ldc_id);
567 if (vsharep == NULL) {
573 vsw_hio_free_share(vsharep);
583 vsw_hio_send_delshare_msg(vsw_share_t *vsharep)
585 vsw_t *vswp = vsharep->vs_vswp;
589 uint64_t cookie = vsharep->vs_cookie;
590 uint64_t macaddr = vsharep->vs_macaddr;
596 portp = vsharep->vs_portp;
603 if ((ldcp == NULL) || (ldcp->ldc_id != vsharep->vs_ldcid)) {
607 req_id = VSW_DDS_NEXT_REQID(vsharep);
613 vsharep->vs_state &= ~VSW_SHARE_DDS_ACKD;
614 vsharep->vs_state |= VSW_SHARE_DDS_SENT;
652 vsw_share_t *vsharep;
665 vsharep = vsw_hio_find_vshare_ldcid(vswp, ldcp->ldc_id);
666 if (vsharep == NULL) {
675 if (!(vsharep->vs_state & VSW_SHARE_DDS_SENT)) {
677 " share state=0x%X", __func__, vsharep->vs_state);
681 if (dmsg->dds_req_id != vsharep->vs_req_id) {
684 __func__, dmsg->dds_req_id, vsharep->vs_req_id);
692 vsw_hio_free_share(vsharep);
695 vsharep->vs_state &= ~VSW_SHARE_DDS_SENT;
696 vsharep->vs_state |= VSW_SHARE_DDS_ACKD;
703 if (!(vsharep->vs_state & VSW_SHARE_DDS_SENT)) {
705 " share state=0x%X", __func__, vsharep->vs_state);
709 if (dmsg->dds_req_id != vsharep->vs_req_id) {
712 __func__, dmsg->dds_req_id, vsharep->vs_req_id);
721 vsw_hio_free_share(vsharep);
729 vsw_hio_free_share(vsharep);
797 vsw_share_t *vsharep;
808 vsharep = vsw_hio_find_vshare_port(vswp, portp);
809 if (vsharep == NULL) {
815 if (vsharep->vs_state & VSW_SHARE_DDS_ACKD) {
820 "share(%d)", __func__, vsharep->vs_index);
821 rv = vsw_hio_send_delshare_msg(vsharep);
827 vsw_hio_port_reset(vsharep->vs_portp, B_FALSE);
834 "share(%d)", __func__, vsharep->vs_index);
835 vsw_hio_port_reset(vsharep->vs_portp, B_FALSE);
839 if ((vsharep->vs_portp != portp) ||
840 (vsharep->vs_state == VSW_SHARE_FREE)) {
854 if ((vsharep->vs_portp != portp) ||
855 (vsharep->vs_state == VSW_SHARE_FREE)) {
859 } while ((vsharep->vs_state != VSW_SHARE_FREE) && (max_retries > 0));
874 vsw_share_t *vsharep;
883 vsharep = &hiop->vh_shares[i];
884 if (vsharep->vs_state == VSW_SHARE_FREE) {
891 vsw_hio_port_reset(vsharep->vs_portp, B_TRUE);