#include <lunaix/clock.h>
#include <lunaix/common.h>
#include <lunaix/input.h>
#include <lunaix/clock.h>
#include <lunaix/common.h>
#include <lunaix/input.h>
#include <lunaix/peripheral/ps2kbd.h>
#include <lunaix/syslog.h>
#include <lunaix/timer.h>
#include <lunaix/peripheral/ps2kbd.h>
#include <lunaix/syslog.h>
#include <lunaix/timer.h>
// 3、屏蔽所有PS/2设备(端口1&2)IRQ,并且禁用键盘键码转换功能
result = ps2_issue_cmd(PS2_CMD_READ_CFG, PS2_NO_ARG);
// 3、屏蔽所有PS/2设备(端口1&2)IRQ,并且禁用键盘键码转换功能
result = ps2_issue_cmd(PS2_CMD_READ_CFG, PS2_NO_ARG);
// 6、开启位于端口1的 IRQ,并启用端口1。不用理会端口2,那儿一般是鼠标。
ps2_post_cmd(PS2_PORT_CTRL_CMDREG, PS2_CMD_PORT1_ENABLE, PS2_NO_ARG);
result = ps2_issue_cmd(PS2_CMD_READ_CFG, PS2_NO_ARG);
// 6、开启位于端口1的 IRQ,并启用端口1。不用理会端口2,那儿一般是鼠标。
ps2_post_cmd(PS2_PORT_CTRL_CMDREG, PS2_CMD_PORT1_ENABLE, PS2_NO_ARG);
result = ps2_issue_cmd(PS2_CMD_READ_CFG, PS2_NO_ARG);
ps2_post_cmd(PS2_PORT_CTRL_CMDREG, PS2_CMD_WRITE_CFG, result);
// 至此,PS/2控制器和设备已完成初始化,可以正常使用。
ps2_post_cmd(PS2_PORT_CTRL_CMDREG, PS2_CMD_WRITE_CFG, result);
// 至此,PS/2控制器和设备已完成初始化,可以正常使用。
- uint8_t irq_kbd = ioapic_get_irq(acpi_ctx, PC_AT_IRQ_KBD);
- ioapic_redirect(irq_kbd, PC_KBD_IV, 0, IOAPIC_DELMOD_FIXED);
+ isrm_bindirq(PC_AT_IRQ_KBD, intr_ps2_kbd_handler);
// I know you are tempting to move this chunk after the keyboard state
// check. But DO NOT. This chunk is in right place and right order. Moving
// I know you are tempting to move this chunk after the keyboard state
// check. But DO NOT. This chunk is in right place and right order. Moving