Events : general overhaul fixing a variety of issues relating to hash table use, storage of event instances.
Events - libvmi/libvmi.h libvmi/events.c : add functions vmi_get_reg_event and vmi_get_mem_event, both returning the vmi_event_t for the corresponding input
Events - driver/xen_events.c : improve teardown by disabling all event types unconditionally
Events - misc : reference callback within vmi_event_t, in addition to general refactoring and cleanup
Events - misc : refactoring to rename/rearrange, with requisite adjustments.
Events - xen_events.c,h : (bugfix) fix VM hang after events teardown. Caused by unconsumed events in ring buffer at exit, which in some cases resulted in vCPUs remaining in a paused state. Fix was to (during events_destroy) 1) disable all event types unconditionally 2) drain all remaining events from the ring.
Events - libvmi/libvmi.h libvmi/private.h libvmi/events.c : update function prototypes in headers, add more descriptive comment for vmi_events_listen, note authorship.
Events - libvmi/core.c : If requested, allow event setup during partial init. Also, during full init, ensure consistent state before event setup.
Events - event-example.c : add signal handler for graceful teardown, whitespace fixes and other cosmetics.
Events examples/event-example.c : add some comments, improve behavior when PID not specified, remove 50 iteration loop (exit when interrupted by user).