X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_host_events.h;h=47c6715f72492b6832c8fc0531248302c338f92b;hb=9a32111c4074aafd55cd9590a24bd5c751a6fe61;hp=726fada3117f045a5a2744b27f35e4ba3b60e270;hpb=3e5e5a12e64630d7a37ed32b8d7e2d993c79f7e0;p=palacios.git diff --git a/palacios/include/palacios/vmm_host_events.h b/palacios/include/palacios/vmm_host_events.h index 726fada..47c6715 100644 --- a/palacios/include/palacios/vmm_host_events.h +++ b/palacios/include/palacios/vmm_host_events.h @@ -34,21 +34,39 @@ struct v3_timer_event { unsigned int period_us; }; +struct v3_serial_event { + unsigned char data[128]; + unsigned int len; +}; + +struct v3_console_event { + unsigned int cmd; +}; + +struct v3_packet_event { + unsigned char * pkt; + unsigned int size; +}; + #ifdef __V3VEE__ #include struct v3_vm_info; -typedef enum {HOST_KEYBOARD_EVT, - HOST_MOUSE_EVT, - HOST_TIMER_EVT} v3_host_evt_type_t; +typedef enum { HOST_KEYBOARD_EVT, + HOST_MOUSE_EVT, + HOST_TIMER_EVT, + HOST_CONSOLE_EVT, + HOST_SERIAL_EVT} v3_host_evt_type_t; union v3_host_event_handler { int (*keyboard_handler)(struct v3_vm_info * vm, struct v3_keyboard_event * evt, void * priv_data); int (*mouse_handler)(struct v3_vm_info * vm, struct v3_mouse_event * evt, void * priv_data); int (*timer_handler)(struct v3_vm_info * vm, struct v3_timer_event * evt, void * priv_data); + int (*serial_handler)(struct v3_vm_info * vm, struct v3_serial_event * evt, void * priv_data); + int (*console_handler)(struct v3_vm_info * vm, struct v3_console_event * evt, void * priv_data); }; @@ -64,11 +82,14 @@ struct v3_host_events { struct list_head keyboard_events; struct list_head mouse_events; struct list_head timer_events; + struct list_head serial_events; + struct list_head console_events; }; int v3_init_host_events(struct v3_vm_info * vm); +int v3_deinit_host_events(struct v3_vm_info * vm); #define V3_HOST_EVENT_HANDLER(cb) ((union v3_host_event_handler)cb) @@ -77,14 +98,15 @@ int v3_hook_host_event(struct v3_vm_info * vm, union v3_host_event_handler cb, void * private_data); -#endif // ! __V3VEE__ +#endif /* ! __V3VEE__ */ int v3_deliver_keyboard_event(struct v3_vm_info * vm, struct v3_keyboard_event * evt); int v3_deliver_mouse_event(struct v3_vm_info * vm, struct v3_mouse_event * evt); int v3_deliver_timer_event(struct v3_vm_info * vm, struct v3_timer_event * evt); - +int v3_deliver_serial_event(struct v3_vm_info * vm, struct v3_serial_event * evt); +int v3_deliver_console_event(struct v3_vm_info * vm, struct v3_console_event * evt); #endif