X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/0471b0eeea5ea30883c776dd53275ec6b8454ca7..8b3a34da459067723ad288b2eb51a14473e0944f:/lunaix-os/includes/lunaix/peripheral/ps2kbd.h diff --git a/lunaix-os/includes/lunaix/peripheral/ps2kbd.h b/lunaix-os/includes/lunaix/peripheral/ps2kbd.h index a63ffdc..2d568a6 100644 --- a/lunaix-os/includes/lunaix/peripheral/ps2kbd.h +++ b/lunaix-os/includes/lunaix/peripheral/ps2kbd.h @@ -3,6 +3,8 @@ #include #include +#include + #define PS2_PORT_ENC_DATA 0x60 #define PS2_PORT_ENC_CMDREG 0x60 @@ -33,7 +35,7 @@ #define PS2_CMD_SELFTEST 0xaa #define PS2_CMD_SELFTEST_PORT1 0xab -#define PS2_CMD_READ_CFG 0x20 +#define PS2_CMD_READ_CFG 0x20 #define PS2_CMD_WRITE_CFG 0x60 #define PS2_CFG_P1INT 0x1 @@ -54,7 +56,7 @@ struct ps2_cmd { }; struct ps2_kbd_state { - char state; + volatile char state; volatile char masked; kbd_keycode_t* translation_table; kbd_kstate_t key_state; @@ -64,16 +66,14 @@ struct ps2_cmd_queue { struct ps2_cmd cmd_queue[PS2_CMD_QUEUE_SIZE]; int queue_ptr; int queue_len; - // FIXME: replace lock with something specialized. - volatile char lock; + mutex_t mutex; }; struct ps2_key_buffer { struct kdb_keyinfo_pkt buffer[PS2_KBD_RECV_BUFFER_SIZE]; int read_ptr; int buffered_len; - // FIXME: replace lock with something specialized. - volatile char lock; + mutex_t mutex; }; /**