123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #pragma once
- #include <common/glib.h>
- #define PS2_KEYBOARD_INTR_VECTOR 0x21
- #define ps2_keyboard_buffer_size 8
- #define KEYBOARD_CMD_RESET_BUFFER 1
- struct ps2_keyboard_input_buffer
- {
- unsigned char *ptr_head;
- unsigned char *ptr_tail;
- int count;
- unsigned char buffer[ps2_keyboard_buffer_size];
- };
- #define PORT_PS2_KEYBOARD_DATA 0x60
- #define PORT_PS2_KEYBOARD_STATUS 0x64
- #define PORT_PS2_KEYBOARD_CONTROL 0x64
- #define PS2_KEYBOARD_COMMAND_WRITE 0x60
- #define PS2_KEYBOARD_COMMAND_READ 0x20
- #define PS2_KEYBOARD_PARAM_INIT 0x47
- #define PS2_KEYBOARD_FLAG_OUTBUF_FULL 0x01
- #define PS2_KEYBOARD_FLAG_INBUF_FULL 0x02
- #define wait_ps2_keyboard_write() while (io_in8(PORT_PS2_KEYBOARD_STATUS) & PS2_KEYBOARD_FLAG_INBUF_FULL)
- #define wait_ps2_keyboard_read() while (io_in8(PORT_PS2_KEYBOARD_STATUS) & PS2_KEYBOARD_FLAG_OUTBUF_FULL)
- extern struct vfs_file_operations_t ps2_keyboard_fops;
- void ps2_keyboard_init();
- void ps2_keyboard_exit();
- void ps2_keyboard_analyze_keycode();
- int ps2_keyboard_get_scancode();
|