summaryrefslogtreecommitdiff
path: root/src/drivers/hdi/ps2/ps2keyboard.h
blob: a0650e3982a8d11412ced39e4ce36f8e4f168505 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#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_name( void *obj );
void ps2keyboard_print_info( void *obj );

uint32_t ps2keyboard_handle_interrupt( interrupt_handler_t *handler, uint32_t esp );

#endif // PS2KEYBOARD_H