typedef enum {HOST_KEYBOARD_EVT,
HOST_MOUSE_EVT,
HOST_TIMER_EVT,
- HOST_CONSLE_EVT} v3_host_evt_type_t;
+ HOST_CONSOLE_EVT} v3_host_evt_type_t;
union v3_host_event_handler {
};
+static int console_event_handler(struct v3_vm_info * vm,
+ struct v3_console_event * evt,
+ void * private_data) {
+ struct stream_state *state = (struct stream_state *)private_data;
+
+ if(state->char_ops.push != NULL){
+ state->char_ops.push(vm, evt->data, evt->len, state->push_fn_arg);
+ }
+
+ return 0;
+}
static int stream_write(uint8_t * buf, uint64_t length, void * private_data)
{
}
+ v3_hook_host_event(vm, HOST_CONSOLE_EVT, V3_HOST_EVENT_HANDLER(console_event_handler), state);
+
return 0;
}
INIT_LIST_HEAD(&(host_evts->keyboard_events));
INIT_LIST_HEAD(&(host_evts->mouse_events));
INIT_LIST_HEAD(&(host_evts->timer_events));
+ INIT_LIST_HEAD(&(host_evts->console_events));
return 0;
}
case HOST_TIMER_EVT:
list_add(&(hook->link), &(host_evts->timer_events));
break;
- case HOST_CONSLE_EVT:
+ case HOST_CONSOLE_EVT:
list_add(&(hook->link), &(host_evts->console_events));
break;
}