#ifndef PS2KEYBOARD_H #define PS2KEYBOARD_H #include #include "string.h" #include "interrupts.h" #include "port.h" #include "keyboard.h" typedef struct { keyboard_t base; port8_t command_port; port8_t data_port; bool shift; interrupt_handler_t interrupt_handler; } ps2keyboard_t; typedef struct { keyboard_vtable_t base; } ps2keyboard_vtable_t; void ps2keyboard_init( ps2keyboard_t *ps2keyboard, keyboard_event_handler_t handler, interrupt_t *interrupt, void *context ); void ps2keyboard_activate( void *obj ); void ps2keyboard_deactivate( void *obj ); void ps2keyboard_deinit( void *obj ); void ps2keyboard_print_name( void *obj ); void ps2keyboard_print_info( void *obj ); uint32_t ps2keyboard_handle_interrupt( interrupt_handler_t *handler, uint32_t esp ); #endif // PS2KEYBOARD_H