Lines Matching refs:irp

408 	fct_i_remote_port_t *irp = NULL;
506 irp = iport->iport_rp_slots[i];
507 if (irp && irp->irp_flags & IRP_PLOGI_DONE) {
508 if (FC_WELL_KNOWN_ADDR(irp->irp_portid))
525 fct_i_remote_port_t *irp = remote_port;
544 irp = iport->iport_rp_slots[i];
545 if (irp && irp->irp_flags & IRP_PLOGI_DONE &&
546 !FC_WELL_KNOWN_ADDR(irp->irp_portid)) {
557 ASSERT(irp);
560 irp->irp_rp->rp_port->port_fct_private;
563 rw_enter(&irp->irp_lock, RW_READER);
564 bcopy(irp->irp_rp->rp_pwwn, port_attr->PortWWN,
566 bcopy(irp->irp_rp->rp_nwwn, port_attr->NodeWWN,
568 port_attr->PortFcId = irp->irp_portid;
569 if (irp->irp_spn)
570 (void) strncpy(port_attr->PortSymbolicName, irp->irp_spn,
571 strlen(irp->irp_spn));
574 port_attr->PortSupportedClassofService = irp->irp_cos;
575 bcopy((caddr_t)irp->irp_fc4types, port_attr->PortActiveFc4Types,
576 sizeof (irp->irp_fc4types));
577 bcopy((caddr_t)irp->irp_fc4types, port_attr->PortSupportedFc4Types,
578 sizeof (irp->irp_fc4types));
579 if (irp->irp_flags & IRP_PLOGI_DONE)
589 rw_exit(&irp->irp_lock);
601 fct_i_remote_port_t *irp;
613 irp = iport->iport_rp_tb[i];
614 while (irp) {
615 if (bcmp(irp->irp_rp->rp_pwwn,
617 irp->irp_flags & IRP_PLOGI_DONE) {
619 irp, NULL, 0, port_attr,
624 irp = irp->irp_next;
684 fct_i_remote_port_t *irp = NULL;
719 irp = iport->iport_rp_tb[i];
720 while (irp) {
721 if (irp->irp_rp->rp_id == *dest_id &&
722 irp->irp_flags & IRP_PLOGI_DONE) {
725 irp = irp->irp_next;
732 irp->irp_rp, 0, ELS_OP_RLS,
1400 fct_i_remote_port_t *irp;
1402 irp = iport->iport_rp_tb[FCT_PORTID_HASH_FUNC(portid)];
1403 for (; irp != NULL; irp = irp->irp_next) {
1404 if (irp->irp_portid == portid)
1405 return (irp);
1416 fct_queue_rp(fct_i_local_port_t *iport, fct_i_remote_port_t *irp)
1419 FCT_PORTID_HASH_FUNC(irp->irp_portid);
1421 irp->irp_next = iport->iport_rp_tb[hash_key];
1422 iport->iport_rp_tb[hash_key] = irp;
1430 fct_deque_rp(fct_i_local_port_t *iport, fct_i_remote_port_t *irp)
1435 FCT_PORTID_HASH_FUNC(irp->irp_portid);
1440 if (irp == irp_next) {
1441 if (irp->irp_flags & IRP_PLOGI_DONE) {
1444 atomic_and_32(&irp->irp_flags,
1455 irp->irp_next;
1457 irp_last->irp_next = irp->irp_next;
1459 irp->irp_next = NULL;
1465 fct_is_irp_logging_out(fct_i_remote_port_t *irp, int force_implicit)
1469 rw_enter(&irp->irp_lock, RW_WRITER);
1470 if ((irp->irp_flags & IRP_IN_DISCOVERY_QUEUE) == 0) {
1474 if ((irp->irp_els_list == NULL) && (irp->irp_deregister_timer)) {
1475 if (force_implicit && irp->irp_nonfcp_xchg_count) {
1482 if (irp->irp_els_list) {
1485 for (icmd = irp->irp_els_list; icmd; icmd = icmd->icmd_next) {
1504 rw_exit(&irp->irp_lock);
1517 fct_i_remote_port_t *irp = NULL;
1528 irp = iport->iport_rp_tb[i];
1529 while (irp) {
1530 if ((!(irp->irp_flags & IRP_PLOGI_DONE)) &&
1531 (fct_is_irp_logging_out(irp, force_implicit))) {
1532 irp = irp->irp_next;
1536 cmd = fct_create_solels(iport->iport_port, irp->irp_rp,
1548 irp = irp->irp_next;
1561 fct_i_remote_port_t *irp;
1573 irp = iport_rp_tb_tmp[i];
1574 while (irp) {
1575 irp_next = irp->irp_next;
1576 fct_queue_rp(iport, irp);
1577 irp = irp_next;
1589 fct_i_remote_port_t *irp;
1596 irp = iport->iport_rp_tb[i];
1597 while (irp) {
1598 if (irp->irp_fcp_xchg_count ||
1599 irp->irp_nonfcp_xchg_count)
1601 irp = irp->irp_next;
1616 fct_i_remote_port_t *irp;
1630 irp = fct_portid_to_portptr(iport, rportid);
1631 if (irp == NULL) {
1639 ((irp = iport->iport_rp_slots[rp_handle]) == NULL)) {
1646 rp = irp->irp_rp;
1648 rw_enter(&irp->irp_lock, RW_READER);
1649 if ((irp->irp_flags & IRP_PRLI_DONE) == 0) {
1650 rw_exit(&irp->irp_lock);
1670 rw_exit(&irp->irp_lock);
1696 rw_exit(&irp->irp_lock);
1703 atomic_add_16(&irp->irp_fcp_xchg_count, 1);
1706 rw_exit(&irp->irp_lock);
1711 cmd->cmd_specific = stmf_task_alloc(port->port_lport, irp->irp_session,
1741 fct_i_remote_port_t *irp =
1745 uint16_t irp_task = irp->irp_fcp_xchg_count;
1753 fct_i_remote_port_t, irp);
1822 fct_i_remote_port_t *irp = (fct_i_remote_port_t *)rp->rp_fct_private;
1826 rw_enter(&irp->irp_lock, RW_WRITER);
1828 atomic_add_16(&irp->irp_nonfcp_xchg_count, 1);
1829 atomic_add_16(&irp->irp_sa_elses_count, 1);
1831 * An implicit LOGO can also be posted to a irp where a PLOGI might
1835 if (irp->irp_flags & IRP_PLOGI_DONE) {
1838 atomic_and_32(&irp->irp_flags, ~(IRP_PLOGI_DONE | IRP_PRLI_DONE));
1840 fct_post_to_discovery_queue(iport, irp, icmd);
1841 rw_exit(&irp->irp_lock);
1880 fct_i_remote_port_t *irp, fct_i_cmd_t *icmd)
1887 for (p = &irp->irp_els_list; *p != NULL;
1896 if ((irp->irp_flags & IRP_IN_DISCOVERY_QUEUE) == 0) {
1902 irp->irp_discovery_next = NULL;
1904 iport->iport_rpwe_tail->irp_discovery_next = irp;
1905 iport->iport_rpwe_tail = irp;
1907 iport->iport_rpwe_head = iport->iport_rpwe_tail = irp;
1910 atomic_or_32(&irp->irp_flags, IRP_IN_DISCOVERY_QUEUE);
1915 * irp is already in discovery queue or not.
2035 fct_i_remote_port_t *irp = NULL;
2076 irp = (fct_i_remote_port_t *)
2079 atomic_add_16(&irp->irp_fcp_xchg_count, -1);
2081 atomic_add_16(&irp->irp_nonfcp_xchg_count, -1);
2088 irp = (fct_i_remote_port_t *)
2091 atomic_add_16(&irp->irp_fcp_xchg_count, -1);
2093 atomic_add_16(&irp->irp_nonfcp_xchg_count, -1);
2290 fct_i_remote_port_t *irp = NULL;
2301 irp = RP_TO_IRP(rp);
2302 } else if (((irp = fct_portid_to_portptr(PORT_TO_IPORT(port),
2317 if (irp) {
2318 cmd->cmd_rp = irp->irp_rp;
2319 cmd->cmd_rp_handle = irp->irp_rp->rp_handle;
2320 cmd->cmd_rportid = irp->irp_rp->rp_id;
2498 fct_i_remote_port_t *irp = NULL;
2514 * Caution: this irp is not query_rp->rp_fct_private.
2516 irp = fct_portid_to_portptr((fct_i_local_port_t *)
2518 if (irp == NULL) {
2526 cmd->cmd_rp = irp->irp_rp;
2527 cmd->cmd_rp_handle = irp->irp_rp->rp_handle;
2528 cmd->cmd_rportid = irp->irp_rp->rp_id;
2781 fct_i_remote_port_t *irp;
2786 irp = (fct_i_remote_port_t *)ss->ss_port_private;
2788 "Initial LUN mapped to session ss-%p, irp-%p", ss, irp);
2839 fct_i_remote_port_t *irp;
2841 irp = fct_portid_to_portptr(
2843 if (irp == NULL) {
2846 return (irp->irp_rp->rp_handle);
2909 fct_i_remote_port_t *irp;
2929 irp = fct_portid_to_portptr(iport, cmd->cmd_rportid);
2931 irp = iport->iport_rp_slots[cmd->cmd_rp_handle];
2933 irp = NULL;
2934 if (irp == NULL) {
2946 fct_i_remote_port_t, irp);
2948 cmd->cmd_rp = irp->irp_rp;
2954 rw_enter(&irp->irp_lock, RW_WRITER);
2974 rw_exit(&irp->irp_lock);
3003 rw_exit(&irp->irp_lock);
3011 rw_exit(&irp->irp_lock);
3119 fct_i_remote_port_t *irp;
3126 irp = iport->iport_rp_tb[i];
3127 while (irp) {
3128 irp->irp_deregister_timer = ddi_get_lbolt() - 1;
3129 irp = irp->irp_next;
3350 fct_i_remote_port_t *irp;
3353 irp = fct_lookup_irp_by_portwwn(iport,
3356 if (irp) {
3357 atomic_and_32(&irp->irp_flags,