Lines Matching +full:0 +full:xe0

19 #define KBD_STATUS_REG		0x64	/* Status register (R) */
20 #define KBD_DATA_REG 0x60 /* Keyboard data register (R/W) */
24 #define KBD_STAT_OBF 0x01 /* Keyboard output buffer full */
25 #define KBD_STAT_MOUSE_OBF 0x20 /* Mouse output buffer full */
38 static int shift_lock; /* CAPS LOCK state (0-off, 1-on) */ in kdb_get_kbd_char()
44 (inb(KBD_STATUS_REG) == 0xff && inb(KBD_DATA_REG) == 0xff)) { in kdb_get_kbd_char()
45 kbd_exists = 0; in kdb_get_kbd_char()
50 if ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0) in kdb_get_kbd_char()
72 if (((scancode&0x7f) == 0x2a) || ((scancode&0x7f) == 0x36)) { in kdb_get_kbd_char()
76 if ((scancode & 0x80) == 0) in kdb_get_kbd_char()
79 shift_key = 0; in kdb_get_kbd_char()
83 if ((scancode&0x7f) == 0x1d) { in kdb_get_kbd_char()
87 if ((scancode & 0x80) == 0) in kdb_get_kbd_char()
90 ctrl_key = 0; in kdb_get_kbd_char()
94 if ((scancode & 0x80) != 0) { in kdb_get_kbd_char()
95 if (scancode == 0x9c) in kdb_get_kbd_char()
96 kbd_last_ret = 0; in kdb_get_kbd_char()
100 scancode &= 0x7f; in kdb_get_kbd_char()
106 if (scancode == 0x3a) { in kdb_get_kbd_char()
113 kdb_toggleled(0x4); in kdb_get_kbd_char()
118 if (scancode == 0x0e) { in kdb_get_kbd_char()
127 case 0xF: /* Tab */ in kdb_get_kbd_char()
129 case 0x53: /* Del */ in kdb_get_kbd_char()
131 case 0x47: /* Home */ in kdb_get_kbd_char()
133 case 0x4F: /* End */ in kdb_get_kbd_char()
135 case 0x4B: /* Left */ in kdb_get_kbd_char()
137 case 0x48: /* Up */ in kdb_get_kbd_char()
139 case 0x50: /* Down */ in kdb_get_kbd_char()
141 case 0x4D: /* Right */ in kdb_get_kbd_char()
145 if (scancode == 0xe0) in kdb_get_kbd_char()
153 if (scancode == 0x73) in kdb_get_kbd_char()
154 scancode = 0x59; in kdb_get_kbd_char()
155 else if (scancode == 0x7d) in kdb_get_kbd_char()
156 scancode = 0x7c; in kdb_get_kbd_char()
165 keychar = 0x0020; in kdb_get_kbd_char()
168 keychar &= 0x0fff; in kdb_get_kbd_char()
185 if (scancode == 0x1c) { in kdb_get_kbd_char()
190 return keychar & 0xff; in kdb_get_kbd_char()
211 kbd_last_ret = 0; in kdb_kbd_cleanup_state()
217 * + Need to handle KP ENTER, which has break code 0xe0 0x9c. in kdb_kbd_cleanup_state()
227 while ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0) in kdb_kbd_cleanup_state()
243 * If we see 0xe0, this is either a break code for KP in kdb_kbd_cleanup_state()
246 * skip the 0xe0 and try again. in kdb_kbd_cleanup_state()
248 * If we see 0x1c, this must be a repeat ENTER or KP in kdb_kbd_cleanup_state()
249 * ENTER (and we swallowed 0xe0 before). Try again. in kdb_kbd_cleanup_state()
253 * see anything other than 0x9c, we have to try again. in kdb_kbd_cleanup_state()
258 if (scancode != 0x9c) in kdb_kbd_cleanup_state()