18 #ifndef __FENNIX_API_AIP_H__
19 #define __FENNIX_API_AIP_H__
24 #define PIC1_DATA (PIC1_CMD + 1)
26 #define PIC2_DATA (PIC2_CMD + 1)
30 #define PS2_STATUS 0x64
31 #define PS2_CMD PS2_STATUS
33 #define PS2_TEST_PASSED 0x55
34 #define PS2_TEST_FAILED 0xFC
36 #define PS2_CMD_READ_CONFIG 0x20
37 #define PS2_CMD_READ_CONFIG_N(n) (PS2_CMD_READ_CONFIG + n)
38 #define PS2_CMD_WRITE_CONFIG 0x60
39 #define PS2_CMD_WRITE_CONFIG_N(n) (PS2_CMD_WRITE_CONFIG + n)
40 #define PS2_CMD_DISABLE_PORT_2 0xA7
41 #define PS2_CMD_ENABLE_PORT_2 0xA8
42 #define PS2_CMD_TEST_PORT_2 0xA9
43 #define PS2_CMD_TEST_CONTROLLER 0xAA
44 #define PS2_CMD_TEST_PORT_1 0xAB
45 #define PS2_CMD_DIAGNOSTIC_DUMP 0xAC
46 #define PS2_CMD_DISABLE_PORT_1 0xAD
47 #define PS2_CMD_ENABLE_PORT_1 0xAE
48 #define PS2_CMD_READ_INPUT_PORT 0xC0
49 #define PS2_CMD_COPY_INPUT_0_3_TO_4_7_STATUS 0xC1
50 #define PS2_CMD_COPY_INPUT_4_7_TO_4_7_STATUS 0xC2
51 #define PS2_CMD_READ_OUTPUT_PORT 0xD0
52 #define PS2_CMD_WRITE_NEXT_BYTE_TO_OUTPUT_PORT 0xD1
53 #define PS2_CMD_WRITE_NEXT_BYTE_TO_PS2_PORT_1_OUTPUT 0xD2
54 #define PS2_CMD_WRITE_NEXT_BYTE_TO_PS2_PORT_2_OUTPUT 0xD3
55 #define PS2_CMD_WRITE_NEXT_BYTE_TO_PS2_PORT_2_INPUT 0xD4
56 #define PS2_CMD_PULSE_OUTPUT_LINE(n) (0xF0 + n)
62 uint8_t OutputBufferFull : 1;
63 uint8_t InputBufferFull : 1;
64 uint8_t SystemFlag : 1;
65 uint8_t CommandData : 1;
68 uint8_t TimeoutError : 1;
69 uint8_t ParityError : 1;
78 uint8_t Port1Interrupt : 1;
79 uint8_t Port2Interrupt : 1;
80 uint8_t SystemFlag : 1;
82 uint8_t Port1Clock : 1;
83 uint8_t Port2Clock : 1;
84 uint8_t Port1Translation : 1;
94 uint8_t SystemReset : 1;
96 uint8_t Port2Clock : 1;
97 uint8_t Port2Data : 1;
98 uint8_t Port1OutputBufferFull : 1;
99 uint8_t Port2OutputBufferFull : 1;
100 uint8_t Port1InputBufferFull : 1;
101 uint8_t Port2InputBufferFull : 1;
118 #define WaitOutput PS2Wait(DriverID, true)
119 #define WaitInput PS2Wait(DriverID, false)
122 #define PS2_KBD_CMD_SET_LEDS 0xED
123 #define PS2_KBD_CMD_ECHO 0xEE
124 #define PS2_KBD_CMD_SCAN_CODE_SET 0xF0
125 #define PS2_KBD_CMD_IDENTIFY 0xF2
126 #define PS2_KBD_CMD_TYPEMATIC 0xF3
127 #define PS2_KBD_CMD_ENABLE_SCANNING 0xF4
128 #define PS2_KBD_CMD_DISABLE_SCANNING 0xF5
129 #define PS2_KBD_CMD_DEFAULTS 0xF6
130 #define PS2_KBD_CMD_ALL_TYPEMATIC 0xF7
131 #define PS2_KBD_CMD_ALL_MAKE_RELEASE 0xF8
132 #define PS2_KBD_CMD_ALL_MAKE 0xF9
133 #define PS2_KBD_CMD_ALL_TYPEMATIC_MAKE_RELEASE 0xFA
134 #define PS2_KBD_CMD_SPECIFIC_TYPEMATIC 0xFB
135 #define PS2_KBD_CMD_SPECIFIC_MAKE_RELEASE 0xFC
136 #define PS2_KBD_CMD_SPECIFIC_MAKE 0xFD
137 #define PS2_KBD_CMD_RESEND 0xFE
138 #define PS2_KBD_CMD_RESET 0xFF
140 #define PS2_KBD_RESP_ACK 0xFA
141 #define PS2_KBD_RESP_ECHO 0xEE
142 #define PS2_KBD_RESP_RESEND 0xFE
143 #define PS2_KBD_RESP_TEST_PASSED 0xAA
144 #define PS2_KBD_RESP_TEST_FAILED 0xFC
145 #define PS2_KBD_RESP_TEST_FAILED_2 0xFD
174 uint8_t RepeatRate : 5;
193 #define PS2_MOUSE_CMD_SET_SCALING_1_1 0xE6
194 #define PS2_MOUSE_CMD_SET_SCALING_2_1 0xE7
195 #define PS2_MOUSE_CMD_SET_RESOLUTION 0xE8
196 #define PS2_MOUSE_CMD_GET_STATUS 0xE9
197 #define PS2_MOUSE_CMD_SET_STREAM_MODE 0xEA
198 #define PS2_MOUSE_CMD_READ_DATA 0xEB
199 #define PS2_MOUSE_CMD_RESET_WRAP_MODE 0xEC
200 #define PS2_MOUSE_CMD_SET_WRAP_MODE 0xEE
201 #define PS2_MOUSE_CMD_SET_REMOTE_MODE 0xF0
202 #define PS2_MOUSE_CMD_READ_ID 0xF2
204 #define PS2_MOUSE_CMD_SET_SAMPLE_RATE 0xF3
205 #define PS2_MOUSE_CMD_ENABLE_DATA_REPORTING 0xF4
206 #define PS2_MOUSE_CMD_DISABLE_DATA_REPORTING 0xF5
207 #define PS2_MOUSE_CMD_SET_DEFAULTS 0xF6
208 #define PS2_MOUSE_CMD_RESEND 0xFE
209 #define PS2_MOUSE_CMD_RESET 0xFF
211 #define PS2_MOUSE_RESP_ACK 0xFA
212 #define PS2_MOUSE_RESP_RESEND 0xFE
213 #define PS2_MOUSE_RESP_TEST_PASSED 0xAA
214 #define PS2_MOUSE_RESP_TEST_FAILED 0xFC
void PIC_EOI(uint8_t IRQ)
void PS2WriteCommand(uint8_t Command)
uint8_t PS2ReadAfterACK()
@ PS2_KBD_SCAN_CODE_GET_CURRENT
@ PS2_KBD_SCAN_CODE_SET_3
@ PS2_KBD_SCAN_CODE_SET_2
@ PS2_KBD_SCAN_CODE_SET_1
void IRQ_MASK(uint8_t IRQ)
@ PS2_KBD_LED_SCROLL_LOCK
void PS2ClearOutputBuffer()
void IRQ_UNMASK(uint8_t IRQ)
void PS2WriteData(uint8_t Data)
void PS2Wait(const bool Output)
struct InodeOperations __attribute__((packed))