Lines Matching defs:fcp
95 ocs_fcp_change_role(struct ocs_softc *ocs, ocs_fcport *fcp, uint32_t new_role);
99 static void ocs_delete_target(ocs_t *ocs, ocs_fcport *fcp, int tgt);
100 uint32_t ocs_add_new_tgt(ocs_node_t *node, ocs_fcport *fcp);
101 uint32_t ocs_update_tgt(ocs_node_t *node, ocs_fcport *fcp, uint32_t tgt_id);
103 int32_t ocs_tgt_find(ocs_fcport *fcp, ocs_node_t *node);
128 ocs_fcport *fcp = FCPORT(ocs, chan);
156 fcp->ocs = ocs;
157 fcp->sim = sim;
158 fcp->path = path;
160 callout_init_mtx(&fcp->ldt, &ocs->sim_lock, 0);
161 TASK_INIT(&fcp->ltask, 1, ocs_ldt_task, fcp);
169 ocs_fcport *fcp = NULL;
172 fcp = FCPORT(ocs, chan);
174 sim = fcp->sim;
175 path = fcp->path;
177 callout_drain(&fcp->ldt);
178 ocs_ldt_task(fcp, 0);
180 if (fcp->sim) {
182 ocs_tgt_resource_abort(ocs, &fcp->targ_rsrc_wildcard);
186 fcp->path = NULL;
191 fcp->sim = NULL;
427 ocs_fcport *fcp = NULL;
429 fcp = node->sport->tgt_data;
430 if (fcp == NULL) {
447 xpt_async(AC_CONTRACT, fcp->path, &ac);
499 ocs_fcport *fcp = NULL;
501 fcp = node->sport->tgt_data;
502 if (fcp == NULL) {
513 xpt_async(AC_CONTRACT, fcp->path, &ac);
556 ocs_fcport *fcp = NULL;
558 fcp = node->sport->tgt_data;
559 if (fcp == NULL) {
576 if ((lun < OCS_MAX_LUN) && fcp->targ_rsrc[lun].enabled) {
577 trsrc = &fcp->targ_rsrc[lun];
578 } else if (fcp->targ_rsrc_wildcard.enabled) {
579 trsrc = &fcp->targ_rsrc_wildcard;
689 ocs_fcport *fcp = NULL;
691 fcp = node->sport->tgt_data;
692 if (fcp == NULL) {
697 if ((lun < OCS_MAX_LUN) && fcp->targ_rsrc[lun].enabled) {
698 trsrc = &fcp->targ_rsrc[lun];
699 } else if (fcp->targ_rsrc_wildcard.enabled) {
700 trsrc = &fcp->targ_rsrc_wildcard;
730 if ((lun < OCS_MAX_LUN) && fcp->targ_rsrc[lun].enabled) {
908 ocs_fcport *fcp = FCPORT(ocs, 0);
911 sport->tgt_data = fcp;
912 fcp->fc_id = sport->fc_id;
936 ocs_fcport *fcp = FCPORT(ocs, 0);
939 fcp->fc_id = 0;
947 ocs_fcport *fcp = NULL;
955 fcp = sport->tgt_data;
964 if ((fcp->role != KNOB_ROLE_NONE)) {
965 if(fcp->vport->sport != NULL) {
970 ocs_sport_vport_alloc(ocs->domain, fcp->vport);
977 ocs_tgt_find(ocs_fcport *fcp, ocs_node_t *node)
983 tgt = &fcp->tgt[i];
1015 ocs_update_tgt(ocs_node_t *node, ocs_fcport *fcp, uint32_t tgt_id)
1019 tgt = &fcp->tgt[tgt_id];
1031 ocs_add_new_tgt(ocs_node_t *node, ocs_fcport *fcp)
1038 if (fcp->tgt[i].state == OCS_TGT_STATE_NONE)
1048 cam_sim_path(fcp->sim),
1056 ocs_update_tgt(node, fcp, i);
1064 ocs_fcport *fcp = NULL;
1067 fcp = node->sport->tgt_data;
1068 if (fcp == NULL) {
1073 i = ocs_tgt_find(fcp, node);
1076 ocs_add_new_tgt(node, fcp);
1080 ocs_update_tgt(node, fcp, i);
1085 ocs_delete_target(ocs_t *ocs, ocs_fcport *fcp, int tgt)
1089 if (!fcp->sim) {
1094 if (CAM_REQ_CMP == xpt_create_path(&cpath, NULL, cam_sim_path(fcp->sim),
1116 ocs_fcport *fcp = arg;
1117 taskqueue_enqueue(taskqueue_thread, &fcp->ltask);
1123 ocs_fcport *fcp = arg;
1124 ocs_t *ocs = fcp->ocs;
1129 tgt = &fcp->tgt[i];
1141 ocs_delete_target(ocs, fcp, i);
1147 callout_reset(&fcp->ldt, hz, ocs_ldt, fcp);
1149 callout_deactivate(&fcp->ldt);
1181 ocs_fcport *fcp = NULL;
1190 fcp = node->sport->tgt_data;
1191 if (fcp == NULL) {
1196 tgt_id = ocs_tgt_find(fcp, node);
1202 tgt = &fcp->tgt[tgt_id];
1206 ocs_delete_target(ocs, fcp, tgt_id);
1210 if (!callout_active(&fcp->ldt)) {
1211 callout_reset(&fcp->ldt, hz, ocs_ldt, fcp);
1865 ocs_fcport *fcp;
1867 fcp = FCPORT(ocs, cam_sim_bus(xpt_path_sim((ccb)->ccb_h.path)));
1869 if (fcp->tgt[ccb_h->target_id].state == OCS_TGT_STATE_LOST) {
1875 if (fcp->tgt[ccb_h->target_id].state == OCS_TGT_STATE_NONE) {
1881 node = ocs_node_get_instance(ocs, fcp->tgt[ccb_h->target_id].node_id);
1982 ocs_fcp_change_role(struct ocs_softc *ocs, ocs_fcport *fcp, uint32_t new_role)
1986 ocs_vport_spec_t *vport = fcp->vport;
1995 fcp->role = new_role;
2017 if ((fcp->role != KNOB_ROLE_NONE)){
2018 fcp->role = new_role;
2025 fcp->role = new_role;
2030 if (fcp->role != KNOB_ROLE_NONE) {
2096 ocs_fcport *fcp = FCPORT(ocs, bus);
2124 fc->port = fcp->fc_id;
2170 ocs_fcport *fcp = FCPORT(ocs, bus);
2185 tgt = &fcp->tgt[cts->ccb_h.target_id];
2233 ocs_fcport *fcp = FCPORT(ocs, bus);
2250 knob->xport_specific.fc.wwnn = fcp->vport->wwnn;
2251 knob->xport_specific.fc.wwpn = fcp->vport->wwpn;
2254 knob->xport_specific.fc.role = fcp->role;
2266 ocs_fcport *fcp = FCPORT(ocs, bus);
2285 if (fcp->role != KNOB_ROLE_NONE) {
2290 if (fcp->role != KNOB_ROLE_TARGET) {
2295 if (fcp->role != KNOB_ROLE_INITIATOR) {
2300 if (fcp->role != KNOB_ROLE_BOTH) {
2313 bus, fcp->role, knob->xport_specific.fc.role);
2315 ocs_fcp_change_role(ocs, fcp, knob->xport_specific.fc.role);
2371 ocs_fcport *fcp = FCPORT(ocs, bus);
2373 node = ocs_node_get_instance(ocs, fcp->tgt[ccb_h->target_id].node_id);
2413 ocs_fcport *fcp = FCPORT(ocs, bus);
2420 trsrc = ocs_tgt_resource_get(fcp, &ccb->ccb_h, &status);
2458 ocs_fcport *fcp = FCPORT(ocs, bus);
2462 trsrc = ocs_tgt_resource_get(fcp, &ccb->ccb_h, &status);
2606 static ocs_tgt_resource_t *ocs_tgt_resource_get(ocs_fcport *fcp,
2617 return &fcp->targ_rsrc_wildcard;
2620 return &fcp->targ_rsrc[lun];
2666 ocs_fcport *fcp = FCPORT(ocs, bus);
2668 trsrc = ocs_tgt_resource_get(fcp, &accb->ccb_h, &status);
2725 ocs_fcport *fcp = FCPORT(ocs, bus);
2727 trsrc = ocs_tgt_resource_get(fcp, &accb->ccb_h, &status);
2755 ocs_fcport *fcp = FCPORT(ocs, cam_sim_bus(xpt_path_sim((accb)->ccb_h.path)));
2756 node = ocs_node_get_instance(ocs, fcp->tgt[accb->ccb_h.target_id].node_id);