X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_host_events.h;h=c8113731885e0d9f4f6ffd8c450602f6b336b917;hb=c31bb26014522e5678e9c9dcc9eda760eeb5907a;hp=4d17a6c441d19a65d406ef2bb54de84991864f25;hpb=4a55bf2a12c7a1fe3daa7ecb1598b67acb246774;p=palacios.git diff --git a/palacios/include/palacios/vmm_host_events.h b/palacios/include/palacios/vmm_host_events.h index 4d17a6c..c811373 100644 --- a/palacios/include/palacios/vmm_host_events.h +++ b/palacios/include/palacios/vmm_host_events.h @@ -34,28 +34,41 @@ struct v3_timer_event { unsigned int period_us; }; -struct v3_console_event { +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, - HOST_CONSOLE_EVT} v3_host_evt_type_t; +typedef enum { HOST_KEYBOARD_EVT, + HOST_MOUSE_EVT, + HOST_TIMER_EVT, + HOST_CONSOLE_EVT, + HOST_SERIAL_EVT, + HOST_PACKET_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 (*packet_handler)(struct v3_vm_info * vm, struct v3_packet_event * evt, void * priv_data); }; @@ -71,7 +84,9 @@ 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 packet_events; }; @@ -92,8 +107,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_packet_event(struct v3_vm_info * vm, struct v3_packet_event * evt); #endif