Lines Matching defs:msix

101 	} msix;
259 rid = ppt->msix.startrid + idx;
260 res = ppt->msix.res[idx];
261 cookie = ppt->msix.cookie[idx];
269 ppt->msix.res[idx] = NULL;
270 ppt->msix.cookie[idx] = NULL;
278 if (ppt->msix.num_msgs == 0)
281 for (i = 0; i < ppt->msix.num_msgs; i++)
284 if (ppt->msix.msix_table_res) {
286 ppt->msix.msix_table_rid,
287 ppt->msix.msix_table_res);
288 ppt->msix.msix_table_res = NULL;
289 ppt->msix.msix_table_rid = 0;
292 free(ppt->msix.res, M_PPTMSIX);
293 free(ppt->msix.cookie, M_PPTMSIX);
294 free(ppt->msix.arg, M_PPTMSIX);
298 ppt->msix.num_msgs = 0;
579 * Set up some variables in ppt->msix
581 if (ppt->msix.num_msgs == 0) {
586 ppt->msix.startrid = 1;
587 ppt->msix.num_msgs = numvec;
589 res_size = numvec * sizeof(ppt->msix.res[0]);
590 cookie_size = numvec * sizeof(ppt->msix.cookie[0]);
591 arg_size = numvec * sizeof(ppt->msix.arg[0]);
593 ppt->msix.res = malloc(res_size, M_PPTMSIX, M_WAITOK | M_ZERO);
594 ppt->msix.cookie = malloc(cookie_size, M_PPTMSIX,
596 ppt->msix.arg = malloc(arg_size, M_PPTMSIX, M_WAITOK | M_ZERO);
598 rid = dinfo->cfg.msix.msix_table_bar;
599 ppt->msix.msix_table_res = bus_alloc_resource_any(ppt->dev,
602 if (ppt->msix.msix_table_res == NULL) {
606 ppt->msix.msix_table_rid = rid;
621 ppt->msix.cookie[idx] = NULL;
622 rid = ppt->msix.startrid + idx;
623 ppt->msix.res[idx] = bus_alloc_resource_any(ppt->dev, SYS_RES_IRQ,
625 if (ppt->msix.res[idx] == NULL)
628 ppt->msix.arg[idx].pptdev = ppt;
629 ppt->msix.arg[idx].addr = addr;
630 ppt->msix.arg[idx].msg_data = msg;
633 error = bus_setup_intr(ppt->dev, ppt->msix.res[idx],
635 pptintr, NULL, &ppt->msix.arg[idx],
636 &ppt->msix.cookie[idx]);
639 bus_teardown_intr(ppt->dev, ppt->msix.res[idx], ppt->msix.cookie[idx]);
640 bus_release_resource(ppt->dev, SYS_RES_IRQ, rid, ppt->msix.res[idx]);
641 ppt->msix.cookie[idx] = NULL;
642 ppt->msix.res[idx] = NULL;