X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_host_events.h;h=21d4c018f061b8b4c2c5c41f2d28108ec79b1357;hb=436f64eff4b2b60c18f485095f2e962f32b71014;hp=7539d6d796cd902f46a5949dafe07ba829f6a7a8;hpb=4a216c126b6eec67b1eb45a52235193500a4a735;p=palacios.git diff --git a/palacios/include/palacios/vmm_host_events.h b/palacios/include/palacios/vmm_host_events.h index 7539d6d..21d4c01 100644 --- a/palacios/include/palacios/vmm_host_events.h +++ b/palacios/include/palacios/vmm_host_events.h @@ -34,21 +34,43 @@ 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_debug_event { + unsigned int core_id; + unsigned int cmd; + +}; + #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, + HOST_DEBUG_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); + int (*debug_handler)(struct v3_vm_info * vm, struct v3_debug_event * evt, void * priv_data); }; @@ -64,11 +86,15 @@ 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; + struct list_head debug_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) @@ -84,7 +110,9 @@ int v3_hook_host_event(struct v3_vm_info * vm, 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); +int v3_deliver_debug_event(struct v3_vm_info * vm, struct v3_debug_event * evt); #endif