first steps toward general interrupt events (real intention is int3 events for xen, but starting generic and building a general driver interface
add interrupts_t enum and an 'enabled' member to the interrupt_event_t struct
xen driver, events: define xen_set_intr_access, declare its prototype, and wire up xen_set_int3_access
interrupt event example code...scary that it took all of 30 seconds
events - interrupt clearing : convey that the event is to be disabled
events libvmi.h : add a 'reinject' member to the interrupt_event_t struct to help control whether interrupts are delivered to the target VM after interception
Events - interrupt example: reinject events by default
xen events - interrupt processing function implementation and invocation during xen_events_listen
int3 interrupt reinjection failure : comment elaboration. it is critical that the library and library users both, in concert, understand the implications of this particular feature: useful, but dangerous.
events - process_interrupt_event : typos can be catastrophic, from time to time.
Use correct instruction length for INT3. Improve reinjection documentation.