Files
Espresso/include/drivers/ps2_keyboard.h

38 lines
630 B
C
Raw Normal View History

2025-05-28 14:41:02 -05:00
#ifndef _PS2_KEYBOARD_H
#define _PS2_KEYBOARD_H
#include <types.h>
2025-10-20 21:57:30 -05:00
#include <drivers/irq.h>
2025-05-28 14:41:02 -05:00
2025-07-03 20:30:21 -05:00
typedef enum {
KEY_NONE = 0,
2025-10-20 21:57:30 -05:00
KEY_ARROW_UP = 0xFC,
2025-07-03 20:30:21 -05:00
KEY_ARROW_DOWN,
KEY_ARROW_LEFT,
KEY_ARROW_RIGHT,
/* Note: add more special keys here */
} special_key;
2025-10-20 21:57:30 -05:00
typedef enum {
KEY_UP = 0x1E,
KEY_DOWN = 0x1F,
KEY_RIGHT = 0x1C,
KEY_LEFT = 0x1D,
} lower_key;
typedef void (*ps2_hook_t)(char);
2025-05-28 14:41:02 -05:00
void keyboard_init(void);
2025-06-13 19:53:54 -05:00
void keyboard_handler(void);
2025-05-28 14:41:02 -05:00
2025-06-17 15:50:07 -05:00
char get_char(void);
2025-07-03 20:30:21 -05:00
uint16_t get_key(void);
2025-06-17 15:50:07 -05:00
char* get_string(void);
2025-10-20 21:57:30 -05:00
char* kbd_gets(void);
bool setup_hook(ps2_hook_t func);
bool remove_hook(ps2_hook_t func);
2025-05-28 14:41:02 -05:00
#endif