X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_host_events.h;h=47c6715f72492b6832c8fc0531248302c338f92b;hp=e115005e6c3f993ff4a00534b56d443a8eca208d;hb=9a32111c4074aafd55cd9590a24bd5c751a6fe61;hpb=9b4bfeefac09294a6f0ae12dbadf102eb547f5ec diff --git a/palacios/include/palacios/vmm_host_events.h b/palacios/include/palacios/vmm_host_events.h index e115005..47c6715 100644 --- a/palacios/include/palacios/vmm_host_events.h +++ b/palacios/include/palacios/vmm_host_events.h @@ -34,20 +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 guest_info * info, struct v3_keyboard_event * evt, void * priv_data); - int (*mouse_handler)(struct guest_info * info, struct v3_mouse_event * evt, void * priv_data); - int (*timer_handler)(struct guest_info * info, struct v3_timer_event * evt, void * priv_data); + 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); }; @@ -63,27 +82,31 @@ 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 guest_info * info); +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) -int v3_hook_host_event(struct guest_info * info, +int v3_hook_host_event(struct v3_vm_info * vm, v3_host_evt_type_t event_type, union v3_host_event_handler cb, void * private_data); -#endif // ! __V3VEE__ - +#endif /* ! __V3VEE__ */ -int v3_deliver_keyboard_event(struct guest_info * info, struct v3_keyboard_event * evt); -int v3_deliver_mouse_event(struct guest_info * info, struct v3_mouse_event * evt); -int v3_deliver_timer_event(struct guest_info * info, struct v3_timer_event * evt); +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