X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fkeyboard.c;h=eb76cc920bea5a01e28643d9d8372d78fcda14b1;hp=c05b00e06fca10bebd0c527751f04ff70518f50b;hb=0121a4503305424096e2b5c5bd3b6c3af2d813e5;hpb=28cfe68985ef4360c9bd7428a19c222b295e9d85 diff --git a/palacios/src/devices/keyboard.c b/palacios/src/devices/keyboard.c index c05b00e..eb76cc9 100644 --- a/palacios/src/devices/keyboard.c +++ b/palacios/src/devices/keyboard.c @@ -23,6 +23,9 @@ #include #include +#include +#include +#include #ifndef CONFIG_DEBUG_KEYBOARD @@ -314,6 +317,7 @@ static int pull_from_output_queue(struct vm_device * dev, uint8_t * value) { } +#include static int key_event_handler(struct guest_info * info, @@ -329,7 +333,7 @@ static int key_event_handler(struct guest_info * info, // PrintGuestPageTables(info, info->shdw_pg_state.guest_cr3); } #ifdef CONFIG_SYMBIOTIC -else if (evt->scan_code == 0x43) { // F9 Sym test + else if (evt->scan_code == 0x43) { // F9 Sym test PrintDebug("Testing sym call\n"); sym_arg_t a0 = 0x1111; sym_arg_t a1 = 0x2222; @@ -342,12 +346,18 @@ else if (evt->scan_code == 0x43) { // F9 Sym test V3_Print("Symcall Test Returned arg0=%x, arg1=%x, arg2=%x, arg3=%x, arg4=%x\n", (uint32_t)a0, (uint32_t)a1, (uint32_t)a2, (uint32_t)a3, (uint32_t)a4); - } else if (evt->scan_code == 0x42) { // F8 Sym test2 - PrintDebug("Testing sym call\n"); - sym_arg_t addr = 0; - v3_sym_call1(info, SYMCALL_MEM_LOOKUP, &addr); - } + } #endif + else if (evt->scan_code == 0x42) { // F8 debug toggle + extern int v3_dbg_enable; + + PrintDebug("Toggling Debugging\n"); + v3_dbg_enable ^= 1; + } else if (evt->scan_code == 0x41) { // F7 telemetry dump + v3_print_telemetry(info); + + } + addr_t irq_state = v3_lock_irqsave(state->kb_lock); @@ -981,9 +991,9 @@ static struct v3_device_ops dev_ops = { -static int keyboard_init(struct guest_info * vm, void * cfg_data) { +static int keyboard_init(struct guest_info * vm, v3_cfg_tree_t * cfg) { struct keyboard_internal * keyboard_state = NULL; - + char * name = v3_cfg_val(cfg, "name"); PrintDebug("keyboard: init_device\n"); @@ -999,10 +1009,10 @@ static int keyboard_init(struct guest_info * vm, void * cfg_data) { keyboard_state->mouse_enabled = 0; - struct vm_device * dev = v3_allocate_device("KEYBOARD", &dev_ops, keyboard_state); + struct vm_device * dev = v3_allocate_device(name, &dev_ops, keyboard_state); if (v3_attach_device(vm, dev) == -1) { - PrintError("Could not attach device %s\n", "KEYBOARD"); + PrintError("Could not attach device %s\n", name); return -1; }