msix_alloc
if (msix->msix_alloc > 0) {
if (cfg->msi.msi_alloc != 0 || cfg->msix.msix_alloc != 0)
cfg->msix.msix_alloc = actual;
if (vectors[i] > msix->msix_alloc)
used = mallocarray(msix->msix_alloc, sizeof(*used), M_DEVBUF, M_WAITOK |
for (i = 0; i < msix->msix_alloc - 1; i++)
j = msix->msix_alloc - 1;
msix->msix_alloc = j + 1;
if (msix->msix_alloc == 0)
for (i = 0; i < msix->msix_alloc; i++)
msix->msix_alloc = 0;
if (cfg->msix.msix_alloc > 0) {
for (i = 0; i < cfg->msix.msix_alloc; i++) {
if (cfg->msi.msi_alloc != 0 || cfg->msix.msix_alloc != 0)
KASSERT(dinfo->cfg.msix.msix_alloc > 0,
KASSERT(dinfo->cfg.msix.msix_alloc > 0,
if (dinfo->cfg.msi.msi_alloc != 0 || dinfo->cfg.msix.msix_alloc != 0) {
"vectors\n", dinfo->cfg.msix.msix_alloc);
cfg->msix.msix_alloc > 0))
u_int msix_alloc; /* Number of allocated vectors. */
int msix_alloc(device_t dev, int *irq);
return (msix_alloc(dev, irq));