Didn't think I'd have to come back here to ask for help on something like this but have been stumped for a while, and have stumped a few friends
Anyways, on real hardware all of my drivers that use PCI interrupts (in this case, MSI and MSI-X) can receive a total of one interrupt before never getting another one (don't know if this applies to pin interrupts, don't have any hardware that uses it right now).
I immediately guessed it was an acknowledgement problem, but the local APIC gets the acknowledgement for the timer IRQ and everything else just fine. It's just this.
It's not a driver issue I think since multiple drivers failed on real hardware. I've checked my assembly stubs, they contained bugs but I fixed them.
At this point my MSI(-X), I/O APIC, and Local APIC code have been tested to my limit and every emulator I can try on has success. I don't know how to proceed or what to do to even continue. Clearly there's a problem but I have no idea
I'll accept any advice, including even debugging tools
Link to GitHub: https://github.com/sasdallas/Ethereal

