Lines Matching refs:softs

39 	pqisrc_softstate_t *softs = (struct pqisrc_softstate *)  in update_sim_properties()  local
42 device_t dev = softs->os_specific.pqi_dev; in update_sim_properties()
53 cpi->maxio = (softs->pqi_cap.max_sg_elem - 1) * PAGE_SIZE; in update_sim_properties()
82 get_transport_settings(struct pqisrc_softstate *softs, in get_transport_settings() argument
109 os_add_device(pqisrc_softstate_t *softs, pqi_scsi_dev_t *device) in os_add_device() argument
117 if(softs->os_specific.sim_registered) { in os_add_device()
124 cam_sim_path(softs->os_specific.sim), in os_add_device()
140 os_remove_device(pqisrc_softstate_t *softs, pqi_scsi_dev_t *device) in os_remove_device() argument
148 if(softs->os_specific.sim_registered) { in os_remove_device()
150 cam_sim_path(softs->os_specific.sim), in os_remove_device()
158 int index = pqisrc_find_device_list_index(softs,device); in os_remove_device()
160 softs->dev_list[index] = NULL; in os_remove_device()
161 pqisrc_free_device(softs, device); in os_remove_device()
174 pqisrc_softstate_t *softs; in pqi_release_camq() local
178 softs = rcb->softs; in pqi_release_camq()
182 if (softs->os_specific.pqi_flags & PQI_FLAG_BUSY) { in pqi_release_camq()
183 softs->os_specific.pqi_flags &= ~PQI_FLAG_BUSY; in pqi_release_camq()
196 pqisrc_softstate_t *softs = rcb->softs; in pqi_synch_request() local
205 bus_dmamap_sync(softs->os_specific.pqi_buffer_dmat, in pqi_synch_request()
208 bus_dmamap_sync(softs->os_specific.pqi_buffer_dmat, in pqi_synch_request()
210 bus_dmamap_unload(softs->os_specific.pqi_buffer_dmat, in pqi_synch_request()
216 os_mem_free(rcb->softs, (void*)rcb->sgt, in pqi_synch_request()
231 pqisrc_put_tag(&rcb->softs->taglist, rcb->tag); in pqi_unmap_request()
240 smartpqi_fix_ld_inquiry(pqisrc_softstate_t *softs, struct ccb_scsiio *csio) in smartpqi_fix_ld_inquiry() argument
248 if (pqisrc_ctrl_offline(softs)) in smartpqi_fix_ld_inquiry()
264 int index = pqisrc_find_btl_list_index(softs,softs->bus_id,target,lun); in smartpqi_fix_ld_inquiry()
266 device = softs->dev_list[index]; in smartpqi_fix_ld_inquiry()
295 pqisrc_softstate_t *softs = rcb->softs; in pqi_complete_scsi_io() local
300 smartpqi_fix_ld_inquiry(rcb->softs, csio); in pqi_complete_scsi_io()
304 pqisrc_put_tag(&softs->taglist, release_tag); in pqi_complete_scsi_io()
365 pqisrc_softstate_t *softs; in os_raid_response_error() local
374 softs = rcb->softs; in os_raid_response_error()
439 pqisrc_softstate_t *softs; in os_aio_response_error() local
451 softs = rcb->softs; in os_aio_response_error()
554 pqisrc_softstate_t *softs = rcb->softs; in pqi_request_map_helper() local
557 if (error || nseg > softs->pqi_cap.max_sg_elem) in pqi_request_map_helper()
560 error, nseg, softs->pqi_cap.max_sg_elem); in pqi_request_map_helper()
564 rcb->sgt = os_mem_alloc(softs, nseg * sizeof(sgt_t)); in pqi_request_map_helper()
579 bus_dmamap_sync(softs->os_specific.pqi_buffer_dmat, in pqi_request_map_helper()
582 bus_dmamap_sync(softs->os_specific.pqi_buffer_dmat, in pqi_request_map_helper()
588 error = pqisrc_build_send_io(softs, rcb); in pqi_request_map_helper()
613 pqisrc_softstate_t *softs = rcb->softs; in pqi_map_request() local
626 bsd_status = bus_dmamap_load_ccb(softs->os_specific.pqi_buffer_dmat, in pqi_map_request()
642 if (pqisrc_build_send_io(softs, rcb) != PQI_STATUS_SUCCESS) { in pqi_map_request()
664 rcb->softs = NULL; in os_reset_rcb()
693 smartpqi_lun_rescan(struct pqisrc_softstate *softs, int target, in smartpqi_lun_rescan() argument
709 cam_sim_path(softs->os_specific.sim), target, lun); in smartpqi_lun_rescan()
732 smartpqi_target_rescan(struct pqisrc_softstate *softs) in smartpqi_target_rescan() argument
741 if(softs->dev_list[index] != NULL) { in smartpqi_target_rescan()
742 device = softs->dev_list[index]; in smartpqi_target_rescan()
744 smartpqi_lun_rescan(softs, device->target, device->lun); in smartpqi_target_rescan()
779 os_complete_outstanding_cmds_nodevice(pqisrc_softstate_t *softs) in os_complete_outstanding_cmds_nodevice() argument
786 for (tag = 1; tag <= softs->max_outstanding_io; tag++) { in os_complete_outstanding_cmds_nodevice()
787 rcb_t *prcb = &softs->rcb[tag]; in os_complete_outstanding_cmds_nodevice()
794 pqisrc_decrement_device_active_io(softs, dvp); in os_complete_outstanding_cmds_nodevice()
809 pqisrc_softstate_t *softs = (struct pqisrc_softstate *) in pqisrc_io_start() local
820 index = pqisrc_find_btl_list_index(softs,softs->bus_id,target,lun); in pqisrc_io_start()
824 DBG_INFO("Invalid index/device!!!, Device BTL %u:%d:%d\n", softs->bus_id, target, lun); in pqisrc_io_start()
828 if( softs->dev_list[index] == NULL ) { in pqisrc_io_start()
837 dvp = softs->dev_list[index]; in pqisrc_io_start()
839 if (IN_PQI_RESET(softs)) { in pqisrc_io_start()
846 if (pqisrc_ctrl_offline(softs) || DEV_GONE(dvp)) { in pqisrc_io_start()
864 tag = pqisrc_get_tag(&softs->taglist); in pqisrc_io_start()
867 xpt_freeze_simq(softs->os_specific.sim, 1); in pqisrc_io_start()
868 softs->os_specific.pqi_flags |= PQI_FLAG_BUSY; in pqisrc_io_start()
873 DBG_IO("tag = %u &softs->taglist : %p\n", tag, &softs->taglist); in pqisrc_io_start()
875 rcb = &softs->rcb[tag]; in pqisrc_io_start()
878 rcb->softs = softs; in pqisrc_io_start()
884 rcb->dvp = softs->dev_list[index]; in pqisrc_io_start()
897 xpt_freeze_simq(softs->os_specific.sim, 1); in pqisrc_io_start()
900 softs->os_specific.pqi_flags |= PQI_FLAG_BUSY; in pqisrc_io_start()
931 pqisrc_scsi_abort_task(pqisrc_softstate_t *softs, union ccb *ccb) in pqisrc_scsi_abort_task() argument
941 tag = pqisrc_get_tag(&softs->taglist); in pqisrc_scsi_abort_task()
942 rcb = &softs->rcb[tag]; in pqisrc_scsi_abort_task()
953 rval = pqisrc_send_tmf(softs, rcb->dvp, rcb, prcb, in pqisrc_scsi_abort_task()
961 pqisrc_put_tag(&softs->taglist, tag); in pqisrc_scsi_abort_task()
972 pqisrc_scsi_abort_task_set(pqisrc_softstate_t *softs, union ccb *ccb) in pqisrc_scsi_abort_task_set() argument
981 tag = pqisrc_get_tag(&softs->taglist); in pqisrc_scsi_abort_task_set()
982 rcb = &softs->rcb[tag]; in pqisrc_scsi_abort_task_set()
994 rval = pqisrc_send_tmf(softs, rcb->dvp, rcb, NULL, in pqisrc_scsi_abort_task_set()
1001 pqisrc_put_tag(&softs->taglist, tag); in pqisrc_scsi_abort_task_set()
1012 pqisrc_target_reset( pqisrc_softstate_t *softs, union ccb *ccb) in pqisrc_target_reset() argument
1026 bus = softs->bus_id; in pqisrc_target_reset()
1030 index = pqisrc_find_btl_list_index(softs,bus,target,lun); in pqisrc_target_reset()
1036 pqi_scsi_dev_t *devp = softs->dev_list[index]; in pqisrc_target_reset()
1042 tag = pqisrc_get_tag(&softs->taglist); in pqisrc_target_reset()
1043 rcb = &softs->rcb[tag]; in pqisrc_target_reset()
1049 rval = pqisrc_send_tmf(softs, devp, rcb, NULL, in pqisrc_target_reset()
1057 pqisrc_put_tag(&softs->taglist, tag); in pqisrc_target_reset()
1071 struct pqisrc_softstate *softs = cam_sim_softc(sim); in smartpqi_cam_action() local
1104 get_transport_settings(softs, &ccb->cts); in smartpqi_cam_action()
1108 if(pqisrc_scsi_abort_task(softs, ccb)) { in smartpqi_cam_action()
1117 if (pqisrc_scsi_abort_task_set(softs, ccb)) { in smartpqi_cam_action()
1126 if(pqisrc_target_reset(softs, ccb)) { in smartpqi_cam_action()
1159 struct pqisrc_softstate *softs = cam_sim_softc(sim); in smartpqi_poll() local
1162 for (i = 1; i < softs->intr_count; i++ ) in smartpqi_poll()
1163 pqisrc_process_response_queue(softs, i); in smartpqi_poll()
1197 struct pqisrc_softstate *softs; in smartpqi_async() local
1198 softs = (struct pqisrc_softstate*)callback_arg; in smartpqi_async()
1214 if (softs != NULL) { in smartpqi_async()
1217 int index = pqisrc_find_btl_list_index(softs,softs->bus_id,t_id,lun); in smartpqi_async()
1219 pqi_scsi_dev_t *dvp = softs->dev_list[index]; in smartpqi_async()
1241 register_sim(struct pqisrc_softstate *softs, int card_index) in register_sim() argument
1251 max_transactions = softs->max_io_for_scsi_ml; in register_sim()
1252 softs->os_specific.devq = cam_simq_alloc(max_transactions); in register_sim()
1253 if (softs->os_specific.devq == NULL) { in register_sim()
1260 smartpqi_poll, "smartpqi", softs, \ in register_sim()
1261 card_index, &softs->os_specific.cam_lock, \ in register_sim()
1262 1, max_transactions, softs->os_specific.devq); in register_sim()
1266 cam_simq_free(softs->os_specific.devq); in register_sim()
1270 softs->os_specific.sim = sim; in register_sim()
1271 mtx_lock(&softs->os_specific.cam_lock); in register_sim()
1272 status = xpt_bus_register(sim, softs->os_specific.pqi_dev, 0); in register_sim()
1275 cam_sim_free(softs->os_specific.sim, FALSE); in register_sim()
1276 cam_simq_free(softs->os_specific.devq); in register_sim()
1277 mtx_unlock(&softs->os_specific.cam_lock); in register_sim()
1281 softs->os_specific.sim_registered = TRUE; in register_sim()
1289 cam_sim_path(softs->os_specific.sim), in register_sim()
1294 xpt_bus_deregister(cam_sim_path(softs->os_specific.sim)); in register_sim()
1295 cam_sim_free(softs->os_specific.sim, TRUE); in register_sim()
1296 mtx_unlock(&softs->os_specific.cam_lock); in register_sim()
1303 softs->os_specific.path = ccb->ccb_h.path; in register_sim()
1305 xpt_setup_ccb(&csa.ccb_h, softs->os_specific.path, 5); in register_sim()
1309 csa.callback_arg = softs; in register_sim()
1316 mtx_unlock(&softs->os_specific.cam_lock); in register_sim()
1326 deregister_sim(struct pqisrc_softstate *softs) in deregister_sim() argument
1332 if (softs->os_specific.mtx_init) { in deregister_sim()
1333 mtx_lock(&softs->os_specific.cam_lock); in deregister_sim()
1337 xpt_setup_ccb(&csa.ccb_h, softs->os_specific.path, 5); in deregister_sim()
1341 csa.callback_arg = softs; in deregister_sim()
1343 xpt_free_path(softs->os_specific.path); in deregister_sim()
1345 if (softs->os_specific.sim) { in deregister_sim()
1346 xpt_release_simq(softs->os_specific.sim, 0); in deregister_sim()
1347 xpt_bus_deregister(cam_sim_path(softs->os_specific.sim)); in deregister_sim()
1348 softs->os_specific.sim_registered = FALSE; in deregister_sim()
1349 cam_sim_free(softs->os_specific.sim, FALSE); in deregister_sim()
1350 softs->os_specific.sim = NULL; in deregister_sim()
1353 if (softs->os_specific.mtx_init) { in deregister_sim()
1354 mtx_unlock(&softs->os_specific.cam_lock); in deregister_sim()
1356 if (softs->os_specific.devq != NULL) { in deregister_sim()
1357 cam_simq_free(softs->os_specific.devq); in deregister_sim()
1359 if (softs->os_specific.mtx_init) { in deregister_sim()
1360 mtx_destroy(&softs->os_specific.cam_lock); in deregister_sim()
1361 softs->os_specific.mtx_init = FALSE; in deregister_sim()
1364 mtx_destroy(&softs->os_specific.map_lock); in deregister_sim()
1370 os_rescan_target(pqisrc_softstate_t *softs, pqi_scsi_dev_t *device) in os_rescan_target() argument
1376 if(softs->os_specific.sim_registered) { in os_rescan_target()
1378 cam_sim_path(softs->os_specific.sim), in os_rescan_target()