msicap
pci_populate_msicap(struct msicap *msicap, int msgnum, int nextptr)
bzero(msicap, sizeof(struct msicap));
msicap->capid = PCIY_MSI;
msicap->nextptr = nextptr;
msicap->msgctrl = PCIM_MSICTRL_64BIT | (mmc << 1);
struct msicap msicap;
pci_populate_msicap(&msicap, msgnum, 0);
return (pci_emul_add_capability(pi, (u_char *)&msicap, sizeof(msicap),
static_assert(sizeof(struct msicap) == 14, "compile-time assertion failed");
void pci_populate_msicap(struct msicap *cap, int msgs, int nextptr);
struct msicap msicap;
pci_populate_msicap(&msicap, msgnum, nextptr);
capoff = 256 - roundup(sizeof(msicap), 4);
capdata = (u_char *)&msicap;
for (size_t i = 0; i < sizeof(msicap); i++)