X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_host_events.h;h=d2fb21104e3dbab3ebb36006ab615ca3c3c42d27;hb=d389e7022c2afa3fb72bc87ab7b324fd9183e5b1;hp=b76250187763130063390abddbda0d864983c871;hpb=7ee094e43dab15b0139847bca24cef904f8a42f6;p=palacios.git diff --git a/palacios/include/palacios/vmm_host_events.h b/palacios/include/palacios/vmm_host_events.h index b762501..d2fb211 100644 --- a/palacios/include/palacios/vmm_host_events.h +++ b/palacios/include/palacios/vmm_host_events.h @@ -22,12 +22,18 @@ struct v3_keyboard_event { + // A keyboard event is a PS/2 scancode and status reg unsigned char status; unsigned char scan_code; }; struct v3_mouse_event { - unsigned char data[3]; + // A mouse event is a PS/2 mouse packet + unsigned char sx; // sign bit for deltax + unsigned char dx; // deltax + unsigned char sy; // sign bit for deltay + unsigned char dy; // deltay + unsigned char buttons; // button state }; struct v3_timer_event { @@ -43,6 +49,13 @@ struct v3_console_event { unsigned int cmd; }; + +struct v3_debug_event { + unsigned int core_id; + unsigned int cmd; + +}; + #ifdef __V3VEE__ #include @@ -53,7 +66,8 @@ typedef enum { HOST_KEYBOARD_EVT, HOST_MOUSE_EVT, HOST_TIMER_EVT, HOST_CONSOLE_EVT, - HOST_SERIAL_EVT } v3_host_evt_type_t; + HOST_SERIAL_EVT, + HOST_DEBUG_EVT} v3_host_evt_type_t; union v3_host_event_handler { @@ -62,6 +76,7 @@ union v3_host_event_handler { 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); }; @@ -79,11 +94,13 @@ struct v3_host_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) @@ -101,7 +118,7 @@ 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