A sample PCIe endpoint with a BAR mapped register bank that contains a register that when written sends an MSI-X interrupt after 0.1 seconds. It has 3 PCIe capabilities that are mandatory for an endpoint. While it uses MSI-X for interrupts but MSI could be used also/instead.