Lines Matching refs:softs

34 os_get_processor_config(pqisrc_softstate_t *softs)  in os_get_processor_config()  argument
37 softs->num_cpus_online = mp_ncpus; in os_get_processor_config()
38 bsd_set_hint_adapter_cpu_config(softs); in os_get_processor_config()
48 os_get_intr_config(pqisrc_softstate_t *softs) in os_get_intr_config() argument
50 device_t dev = softs->os_specific.pqi_dev; in os_get_intr_config()
56 if (msi_count > softs->num_cpus_online) in os_get_intr_config()
57 msi_count = softs->num_cpus_online; in os_get_intr_config()
65 softs->intr_count = msi_count; in os_get_intr_config()
66 softs->intr_type = INTR_TYPE_MSIX; in os_get_intr_config()
67 softs->os_specific.msi_enabled = TRUE; in os_get_intr_config()
71 if (!softs->intr_type) { in os_get_intr_config()
78 softs->os_specific.msi_enabled = TRUE; in os_get_intr_config()
79 softs->intr_count = msi_count; in os_get_intr_config()
80 softs->intr_type = INTR_TYPE_MSI; in os_get_intr_config()
85 if (!softs->intr_type) { in os_get_intr_config()
87 softs->intr_type = INTR_TYPE_FIXED; in os_get_intr_config()
88 softs->intr_count = 1; in os_get_intr_config()
117 pqisrc_softstate_t *softs = device_get_softc(intr_ctx->pqi_dev); in shared_ithread_routine() local
122 if (!softs) in shared_ithread_routine()
125 pqisrc_process_response_queue(softs, oq_id); in shared_ithread_routine()
126 pqisrc_process_event_intr_src(softs, oq_id - 1); in shared_ithread_routine()
138 pqisrc_softstate_t *softs = device_get_softc(intr_ctx->pqi_dev); in common_ithread_routine() local
143 if (!softs) in common_ithread_routine()
146 pqisrc_process_response_queue(softs, oq_id); in common_ithread_routine()
155 pqisrc_softstate_t *softs = device_get_softc(intr_ctx->pqi_dev); in event_ithread_routine() local
160 if (!softs) in event_ithread_routine()
163 pqisrc_process_event_intr_src(softs, oq_id); in event_ithread_routine()
172 register_legacy_intr(pqisrc_softstate_t *softs) in register_legacy_intr() argument
179 dev = softs->os_specific.pqi_dev; in register_legacy_intr()
181 softs->os_specific.pqi_irq_rid[0] = 0; in register_legacy_intr()
182 softs->os_specific.pqi_irq[0] = bus_alloc_resource_any(dev, \ in register_legacy_intr()
183 SYS_RES_IRQ, &softs->os_specific.pqi_irq_rid[0], in register_legacy_intr()
185 if (NULL == softs->os_specific.pqi_irq[0]) { in register_legacy_intr()
189 if ((softs->os_specific.msi_ctx = os_mem_alloc(softs,sizeof(pqi_intr_ctx_t))) == NULL) { in register_legacy_intr()
193 softs->os_specific.msi_ctx[0].pqi_dev = dev; in register_legacy_intr()
195 softs->os_specific.msi_ctx[0].oq_id = 1; in register_legacy_intr()
197 error = bus_setup_intr(dev, softs->os_specific.pqi_irq[0], in register_legacy_intr()
200 &softs->os_specific.msi_ctx[0], in register_legacy_intr()
201 &softs->os_specific.intrcookie[0]); in register_legacy_intr()
206 softs->os_specific.intr_registered[0] = TRUE; in register_legacy_intr()
217 register_msix_intr(pqisrc_softstate_t *softs) in register_msix_intr() argument
221 device_t dev = softs->os_specific.pqi_dev; in register_msix_intr()
222 int msix_count = softs->intr_count; in register_msix_intr()
227 softs->os_specific.msi_ctx = os_mem_alloc(softs, msix_size); in register_msix_intr()
228 if (!softs->os_specific.msi_ctx) { in register_msix_intr()
234 if (softs->share_opq_and_eventq) { in register_msix_intr()
235 softs->os_specific.pqi_irq_rid[i] = i+1; in register_msix_intr()
236 softs->os_specific.pqi_irq[i] = bus_alloc_resource_any(dev, \ in register_msix_intr()
238 &softs->os_specific.pqi_irq_rid[i], in register_msix_intr()
240 if (NULL == softs->os_specific.pqi_irq[i]) { in register_msix_intr()
246 softs->os_specific.msi_ctx[i].pqi_dev = dev; in register_msix_intr()
247 softs->os_specific.msi_ctx[i].oq_id = i+1; in register_msix_intr()
249 error = bus_setup_intr(dev,softs->os_specific.pqi_irq[i], in register_msix_intr()
253 &softs->os_specific.msi_ctx[i], in register_msix_intr()
254 &softs->os_specific.intrcookie[i]); in register_msix_intr()
261 softs->os_specific.intr_registered[i] = TRUE; in register_msix_intr()
265 softs->os_specific.pqi_irq_rid[i] = i+1; in register_msix_intr()
266 softs->os_specific.pqi_irq[i] = bus_alloc_resource_any(dev, \ in register_msix_intr()
268 &softs->os_specific.pqi_irq_rid[i], in register_msix_intr()
270 if (NULL == softs->os_specific.pqi_irq[i]) { in register_msix_intr()
275 softs->os_specific.msi_ctx[i].pqi_dev = dev; in register_msix_intr()
276 softs->os_specific.msi_ctx[i].oq_id = i; in register_msix_intr()
278 error = bus_setup_intr(dev,softs->os_specific.pqi_irq[i], in register_msix_intr()
282 &softs->os_specific.msi_ctx[i], in register_msix_intr()
283 &softs->os_specific.intrcookie[i]); in register_msix_intr()
289 softs->os_specific.intr_registered[i] = TRUE; in register_msix_intr()
292 softs->os_specific.pqi_irq_rid[i] = i+1; in register_msix_intr()
293 softs->os_specific.pqi_irq[i] = \ in register_msix_intr()
296 &softs->os_specific.pqi_irq_rid[i], in register_msix_intr()
298 if (NULL == softs->os_specific.pqi_irq[i]) { in register_msix_intr()
303 softs->os_specific.msi_ctx[i].pqi_dev = dev; in register_msix_intr()
304 softs->os_specific.msi_ctx[i].oq_id = i; in register_msix_intr()
306 softs->os_specific.pqi_irq[i], in register_msix_intr()
310 &softs->os_specific.msi_ctx[i], in register_msix_intr()
311 &softs->os_specific.intrcookie[i]); in register_msix_intr()
317 softs->os_specific.intr_registered[i] = TRUE; in register_msix_intr()
330 os_setup_intr(pqisrc_softstate_t *softs) in os_setup_intr() argument
336 if (softs->intr_type == INTR_TYPE_FIXED) { in os_setup_intr()
337 bsd_status = register_legacy_intr(softs); in os_setup_intr()
340 bsd_status = register_msix_intr(softs); in os_setup_intr()
357 deregister_pqi_intx(pqisrc_softstate_t *softs) in deregister_pqi_intx() argument
359 device_t dev = softs->os_specific.pqi_dev; in deregister_pqi_intx()
363 if (softs->os_specific.pqi_irq[0] != NULL) { in deregister_pqi_intx()
364 if (softs->os_specific.intr_registered[0]) { in deregister_pqi_intx()
365 bus_teardown_intr(dev, softs->os_specific.pqi_irq[0], in deregister_pqi_intx()
366 softs->os_specific.intrcookie[0]); in deregister_pqi_intx()
367 softs->os_specific.intr_registered[0] = FALSE; in deregister_pqi_intx()
370 softs->os_specific.pqi_irq_rid[0], in deregister_pqi_intx()
371 softs->os_specific.pqi_irq[0]); in deregister_pqi_intx()
372 softs->os_specific.pqi_irq[0] = NULL; in deregister_pqi_intx()
373 os_mem_free(softs, (char*)softs->os_specific.msi_ctx, sizeof(pqi_intr_ctx_t)); in deregister_pqi_intx()
383 deregister_pqi_msix(pqisrc_softstate_t *softs) in deregister_pqi_msix() argument
385 device_t dev = softs->os_specific.pqi_dev; in deregister_pqi_msix()
386 int msix_count = softs->intr_count; in deregister_pqi_msix()
391 os_mem_free(softs, (char*)softs->os_specific.msi_ctx, sizeof(pqi_intr_ctx_t) * msix_count); in deregister_pqi_msix()
392 softs->os_specific.msi_ctx = NULL; in deregister_pqi_msix()
395 if (softs->os_specific.pqi_irq[i] != NULL) { in deregister_pqi_msix()
396 if (softs->os_specific.intr_registered[i]) { in deregister_pqi_msix()
398 softs->os_specific.pqi_irq[i], in deregister_pqi_msix()
399 softs->os_specific.intrcookie[i]); in deregister_pqi_msix()
400 softs->os_specific.intr_registered[i] = FALSE; in deregister_pqi_msix()
403 softs->os_specific.pqi_irq_rid[i], in deregister_pqi_msix()
404 softs->os_specific.pqi_irq[i]); in deregister_pqi_msix()
405 softs->os_specific.pqi_irq[i] = NULL; in deregister_pqi_msix()
416 os_destroy_intr(pqisrc_softstate_t *softs) in os_destroy_intr() argument
418 device_t dev = softs->os_specific.pqi_dev; in os_destroy_intr()
422 if (softs->intr_type == INTR_TYPE_FIXED) { in os_destroy_intr()
423 deregister_pqi_intx(softs); in os_destroy_intr()
424 } else if (softs->intr_type == INTR_TYPE_MSIX) { in os_destroy_intr()
425 deregister_pqi_msix(softs); in os_destroy_intr()
427 if (softs->os_specific.msi_enabled) { in os_destroy_intr()
429 softs->os_specific.msi_enabled = FALSE; in os_destroy_intr()
441 os_free_intr_config(pqisrc_softstate_t *softs) in os_free_intr_config() argument
443 device_t dev = softs->os_specific.pqi_dev; in os_free_intr_config()
447 if (softs->os_specific.msi_enabled) { in os_free_intr_config()
449 softs->os_specific.msi_enabled = FALSE; in os_free_intr_config()