diff options
Diffstat (limited to 'src/drivers/hdi/keyboard.c')
-rw-r--r-- | src/drivers/hdi/keyboard.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/drivers/hdi/keyboard.c b/src/drivers/hdi/keyboard.c new file mode 100644 index 0000000..dd7ff65 --- /dev/null +++ b/src/drivers/hdi/keyboard.c @@ -0,0 +1,44 @@ +#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." ); +} |