#include "keyboard.h" #include "string.h" #include "kernel.h" static keyboard_vtable_t const keyboard_vtable = { { keyboard_activate, keyboard_deactivate, keyboard_deinit, keyboard_print_info } }; void keyboard_init( keyboard_t *keyboard, keyboard_event_handler_t handler, interrupt_t *interrupt, void *context ) { memset( keyboard, 0, sizeof( keyboard_t ) ); driver_init( (driver_t *)keyboard, DRIVER_TYPE_KEYBOARD, interrupt, context ); keyboard->handler = handler; ((driver_t *)keyboard)->vtable = (driver_vtable_t *)&keyboard_vtable; } void keyboard_deinit( void *obj ) { // nothing to be done } void keyboard_activate( void *obj ) { kernel_panic( "Activating generic keyboard driver should not be called directly." ); } void keyboard_deactivate( void *obj ) { kernel_panic( "Deactivating generic keyboard driver should not be called directly." ); } void keyboard_print_info( void *obj ) { kernel_panic( "Printing info of generic keyboard driver should not be called directly." ); }