summaryrefslogtreecommitdiff
path: root/src/drivers/hdi/ps2/ps2keyboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/hdi/ps2/ps2keyboard.h')
-rw-r--r--src/drivers/hdi/ps2/ps2keyboard.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/drivers/hdi/ps2/ps2keyboard.h b/src/drivers/hdi/ps2/ps2keyboard.h
new file mode 100644
index 0000000..a5b66ca
--- /dev/null
+++ b/src/drivers/hdi/ps2/ps2keyboard.h
@@ -0,0 +1,33 @@
+#ifndef PS2KEYBOARD_H
+#define PS2KEYBOARD_H
+
+#include <stdbool.h>
+
+#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_info( void *obj );
+
+uint32_t ps2keyboard_handle_interrupt( interrupt_handler_t *handler, uint32_t esp );
+
+#endif // PS2KEYBOARD_H