Lines Matching +full:0 +full:x11d

98 static int ukbd_debug = 0;
99 static int ukbd_no_leds = 0;
100 static int ukbd_pollrate = 0;
102 static SYSCTL_NODE(_hw_usb, OID_AUTO, ukbd, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
105 &ukbd_debug, 0, "Debug level");
107 &ukbd_no_leds, 0, "Disables setting of keyboard leds");
109 &ukbd_pollrate, 0, "Force this polling rate, 1-1000Hz");
117 #define UKBD_NFKEY (sizeof(fkey_tab)/sizeof(fkey_tab[0])) /* units */
120 CTASSERT((key) >= 0 && (key) < UKBD_NKEYCODE); \
124 #define MOD_EJECT 0x01
125 #define MOD_FN 0x02
172 #define UKBD_FLAG_COMPOSE 0x00000001
173 #define UKBD_FLAG_POLLING 0x00000002
174 #define UKBD_FLAG_SET_LEDS 0x00000004
175 #define UKBD_FLAG_ATTACHED 0x00000010
176 #define UKBD_FLAG_GONE 0x00000020
179 #define UKBD_FLAG_APPLE_SWAP 0x00000040
181 #define UKBD_FLAG_APPLE_EJECT 0x00000080
182 #define UKBD_FLAG_APPLE_FN 0x00000100
183 #define UKBD_FLAG_NUMLOCK 0x00080000
184 #define UKBD_FLAG_CAPSLOCK 0x00100000
185 #define UKBD_FLAG_SCROLLLOCK 0x00200000
194 int sc_accents; /* accent key index (> 0) */
218 #define KEY_NONE 0x00
219 #define KEY_ERROR 0x01
221 #define KEY_PRESS 0
222 #define KEY_RELEASE 0x400
223 #define KEY_INDEX(c) ((c) & 0xFF)
225 #define SCAN_PRESS 0
226 #define SCAN_RELEASE 0x80
227 #define SCAN_PREFIX_E0 0x100
228 #define SCAN_PREFIX_E1 0x200
229 #define SCAN_PREFIX_CTL 0x400
230 #define SCAN_PREFIX_SHIFT 0x800
233 #define SCAN_CHAR(c) ((c) & 0x7f)
239 #define NN 0 /* no translation */
245 * 0x53: keypad NumLock/Clear
246 * 0x66: Power
247 * 0x67: keypad =
248 * 0x68: F13
249 * 0x69: F14
250 * 0x6a: F15
253 * 0x90: Kana
254 * 0x91: Eisu
257 0, 0, 0, 0, 30, 48, 46, 32, /* 00 - 07 */
258 18, 33, 34, 35, 23, 36, 37, 38, /* 08 - 0F */
292 0x05, 0x01, 0x09, 0x06, 0xa1,
293 0x01, 0x05, 0x07, 0x19, 0xe0,
294 0x29, 0xe7, 0x15, 0x00, 0x25,
295 0x01, 0x75, 0x01, 0x95, 0x08,
296 0x81, 0x02, 0x95, 0x01, 0x75,
297 0x08, 0x81, 0x01, 0x95, 0x03,
298 0x75, 0x01, 0x05, 0x08, 0x19,
299 0x01, 0x29, 0x03, 0x91, 0x02,
300 0x95, 0x05, 0x75, 0x01, 0x91,
301 0x01, 0x95, 0x06, 0x75, 0x08,
302 0x15, 0x00, 0x26, 0xff, 0x00,
303 0x05, 0x07, 0x19, 0x00, 0x2a,
304 0xff, 0x00, 0x81, 0x00, 0xc0
384 for (i = 0; i != howmany(UKBD_NKEYCODE, 64); i++) in ukbd_any_key_pressed()
385 ret |= (sc->sc_odata.bitmap[i] != 0); in ukbd_any_key_pressed()
395 for (i = 0; i != howmany(UKBD_NKEYCODE, 64); i++) in ukbd_any_key_valid()
396 ret |= (sc->sc_loc_key_valid[i] != 0); in ukbd_any_key_valid()
404 return (key >= 0xe0 && key <= 0xe7); in ukbd_is_modifier_key()
415 if (sc->sc_delay == 0) in ukbd_start_timer()
438 DPRINTF("0x%02x (%d) %s\n", key, key, in ukbd_put_key()
454 sc->sc_inputtail = 0; in ukbd_put_key()
466 KASSERT((sc->sc_flags & UKBD_FLAG_POLLING) != 0, in ukbd_do_poll()
470 if (USB_IN_POLLING_MODE_FUNC() == 0) { in ukbd_do_poll()
478 while (sc->sc_inputs == 0) { in ukbd_do_poll()
490 while (sc->sc_inputs == 0) { in ukbd_do_poll()
515 KASSERT((USB_IN_POLLING_MODE_FUNC() == 0) || in ukbd_get_key()
516 (sc->sc_flags & UKBD_FLAG_POLLING) != 0, in ukbd_get_key()
519 if (sc->sc_inputs == 0 && in ukbd_get_key()
520 (sc->sc_flags & UKBD_FLAG_GONE) == 0) { in ukbd_get_key()
529 if (sc->sc_inputs == 0) { in ukbd_get_key()
536 sc->sc_inputhead = 0; in ukbd_get_key()
551 for (key = 0xe0; key != 0xe8; key++) { in ukbd_interrupt()
566 for (key = 0; key != UKBD_NKEYCODE; key++) { in ukbd_interrupt()
572 if (mask == 1 && delta == 0) { in ukbd_interrupt()
583 sc->sc_repeat_key = 0; in ukbd_interrupt()
602 if (sc->sc_repeat_key != 0) { in ukbd_interrupt()
606 if (dtime <= 0) { in ukbd_interrupt()
630 if ((sc->sc_flags & UKBD_FLAG_POLLING) != 0) in ukbd_event_keyinput()
633 if (sc->sc_inputs == 0) in ukbd_event_keyinput()
644 c = ukbd_read_char(&sc->sc_kbd, 0); in ukbd_event_keyinput()
657 sc->sc_delay = 0; in ukbd_timeout()
664 if (ukbd_any_key_pressed(sc) || (sc->sc_inputs != 0)) { in ukbd_timeout()
673 case 0x28: return 0x49; /* RETURN -> INSERT */ in ukbd_apple_fn()
674 case 0x2a: return 0x4c; /* BACKSPACE -> DEL */ in ukbd_apple_fn()
675 case 0x50: return 0x4a; /* LEFT ARROW -> HOME */ in ukbd_apple_fn()
676 case 0x4f: return 0x4d; /* RIGHT ARROW -> END */ in ukbd_apple_fn()
677 case 0x52: return 0x4b; /* UP ARROW -> PGUP */ in ukbd_apple_fn()
678 case 0x51: return 0x4e; /* DOWN ARROW -> PGDN */ in ukbd_apple_fn()
687 case 0x35: return 0x64; in ukbd_apple_swap()
688 case 0x64: return 0x35; in ukbd_apple_swap()
707 pc = usbd_xfer_get_frame(xfer, 0); in ukbd_intr_callback()
713 if (len == 0) { in ukbd_intr_callback()
718 if (sc->sc_kbd_id != 0) { in ukbd_intr_callback()
720 usbd_copy_out(pc, 0, &id, 1); in ukbd_intr_callback()
723 if (len == 0) { in ukbd_intr_callback()
728 offset = 0; in ukbd_intr_callback()
729 id = 0; in ukbd_intr_callback()
739 memset(&sc->sc_ndata, 0, sizeof(sc->sc_ndata)); in ukbd_intr_callback()
742 modifiers = 0; in ukbd_intr_callback()
756 for (i = 0; i != UKBD_NKEYCODE; i++) { in ukbd_intr_callback()
760 if (mask == 1 && valid == 0) { in ukbd_intr_callback()
767 } else if (i == 0) { in ukbd_intr_callback()
768 struct hid_location tmp_loc = sc->sc_loc_key[0]; in ukbd_intr_callback()
805 DPRINTF("modifiers = 0x%04x\n", modifiers); in ukbd_intr_callback()
806 for (i = 0; i != UKBD_NKEYCODE; i++) { in ukbd_intr_callback()
811 DPRINTF("Key 0x%02x pressed\n", i); in ukbd_intr_callback()
819 usbd_xfer_set_frame_len(xfer, 0, usbd_xfer_max_len(xfer)); in ukbd_intr_callback()
864 USETW2(req.wValue, UHID_OUTPUT_REPORT, 0); in ukbd_set_leds_callback()
865 req.wIndex[0] = sc->sc_iface_no; in ukbd_set_leds_callback()
866 req.wIndex[1] = 0; in ukbd_set_leds_callback()
867 req.wLength[1] = 0; in ukbd_set_leds_callback()
869 memset(sc->sc_buffer, 0, UKBD_BUFFER_SIZE); in ukbd_set_leds_callback()
871 id = 0; in ukbd_set_leds_callback()
872 any = 0; in ukbd_set_leds_callback()
913 sc->sc_buffer[0] = id; in ukbd_set_leds_callback()
916 if (id != 0) { in ukbd_set_leds_callback()
918 usbd_copy_in(pc, 0, sc->sc_buffer, len); in ukbd_set_leds_callback()
920 usbd_copy_in(pc, 0, sc->sc_buffer + 1, len); in ukbd_set_leds_callback()
922 req.wLength[0] = len; in ukbd_set_leds_callback()
928 pc = usbd_xfer_get_frame(xfer, 0); in ukbd_set_leds_callback()
929 usbd_copy_in(pc, 0, &req, sizeof(req)); in ukbd_set_leds_callback()
930 usbd_xfer_set_frame_len(xfer, 0, sizeof(req)); in ukbd_set_leds_callback()
949 .bufsize = 0, /* use wMaxPacketSize */
958 .bufsize = 0, /* use wMaxPacketSize */
964 .endpoint = 0x00, /* Control pipe */
1042 memset(sc->sc_loc_key_valid, 0, sizeof(sc->sc_loc_key_valid)); in ukbd_parse_hid()
1051 hid_input, 0, &sc->sc_loc_apple_eject, &flags, in ukbd_parse_hid()
1058 HID_USAGE2(0xFFFF, 0x0003), in ukbd_parse_hid()
1059 hid_input, 0, &sc->sc_loc_apple_fn, &flags, in ukbd_parse_hid()
1068 HID_USAGE2(HUP_KEYBOARD, 0x00), in ukbd_parse_hid()
1069 hid_input, 0, &sc->sc_loc_key[0], &flags, in ukbd_parse_hid()
1070 &sc->sc_id_loc_key[0])) { in ukbd_parse_hid()
1074 sc->sc_loc_key_valid[0] |= 1; in ukbd_parse_hid()
1083 hid_input, 0, &sc->sc_loc_key[key], &flags, in ukbd_parse_hid()
1088 DPRINTFN(1, "Found key 0x%02x\n", key); in ukbd_parse_hid()
1098 HID_USAGE2(HUP_LEDS, 0x01), in ukbd_parse_hid()
1099 hid_output, 0, &sc->sc_loc_numlock, &flags, in ukbd_parse_hid()
1106 HID_USAGE2(HUP_LEDS, 0x02), in ukbd_parse_hid()
1107 hid_output, 0, &sc->sc_loc_capslock, &flags, in ukbd_parse_hid()
1114 HID_USAGE2(HUP_LEDS, 0x03), in ukbd_parse_hid()
1115 hid_output, 0, &sc->sc_loc_scrolllock, &flags, in ukbd_parse_hid()
1143 kbd_init_struct(kbd, UKBD_DRIVER_NAME, KB_OTHER, unit, 0, 0, 0); in ukbd_attach()
1155 usb_callout_init_mtx(&sc->sc_callout, &Giant, 0); in ukbd_attach()
1169 for (n = 0; n != UKBD_N_TRANSFER; n++) { in ukbd_attach()
1186 for (n = 0; n < UKBD_NFKEY; n++) { in ukbd_attach()
1193 DPRINTF("uaa vendor: 0x%04x, uaa product 0x%04x\n", uaa->info.idVendor, uaa->info.idProduct ); in ukbd_attach()
1194 if (usbd_lookup_id_by_uaa(ukbd_apple_iso_models, sizeof(ukbd_apple_iso_models), uaa) == 0) { in ukbd_attach()
1218 if (err == 0) { in ukbd_attach()
1229 (err != 0) || ukbd_any_key_valid(sc) == false) { in ukbd_attach()
1233 sc->sc_iface_index, 0); in ukbd_attach()
1235 if (err != 0) { in ukbd_attach()
1244 usbd_req_set_idle(sc->sc_udev, NULL, sc->sc_iface_index, 0, 0); in ukbd_attach()
1250 if (kbd_register(kbd) < 0) { in ukbd_attach()
1268 uaa->info.idProduct, 0); in ukbd_attach()
1278 for (i = 0x00; i <= 0xFF; i++) in ukbd_attach()
1302 if (rate > 0) { in ukbd_attach()
1317 return (0); /* success */ in ukbd_attach()
1345 memset(&sc->sc_ndata, 0, sizeof(sc->sc_ndata)); in ukbd_detach()
1376 sc->sc_kbd.kb_flags = 0; in ukbd_detach()
1385 return (0); in ukbd_detach()
1397 return (0); in ukbd_resume()
1420 return (0); in ukbd_configure()
1441 return (0); in ukbd_test_if()
1455 return (0); in ukbd_intr()
1477 return (0); in ukbd_enable()
1489 return (0); in ukbd_disable()
1502 return (0); in ukbd_check()
1505 ukbd_do_poll(sc, 0); in ukbd_check()
1508 if (sc->sc_buffered_char[0]) { in ukbd_check()
1512 if (sc->sc_inputs > 0) { in ukbd_check()
1515 return (0); in ukbd_check()
1527 return (0); in ukbd_check_char_locked()
1529 if ((sc->sc_composed_char > 0) && in ukbd_check_char_locked()
1567 if (sc->sc_buffered_char[0]) { in ukbd_read()
1568 scancode = sc->sc_buffered_char[0]; in ukbd_read()
1570 sc->sc_buffered_char[0] &= ~SCAN_PREFIX; in ukbd_read()
1571 return ((scancode & SCAN_PREFIX_E0) ? 0xe0 : 0xe1); in ukbd_read()
1573 sc->sc_buffered_char[0] = sc->sc_buffered_char[1]; in ukbd_read()
1574 sc->sc_buffered_char[1] = 0; in ukbd_read()
1580 usbcode = ukbd_get_key(sc, (wait == FALSE) ? 0 : 1); in ukbd_read()
1619 if ((sc->sc_composed_char > 0) && in ukbd_read_char_locked()
1622 sc->sc_composed_char = 0; in ukbd_read_char_locked()
1624 if (action > 0xFF) { in ukbd_read_char_locked()
1634 scancode = sc->sc_buffered_char[0]; in ukbd_read_char_locked()
1637 sc->sc_buffered_char[0] = (scancode & ~SCAN_PREFIX); in ukbd_read_char_locked()
1638 return ((scancode & SCAN_PREFIX_E0) ? 0xe0 : 0xe1); in ukbd_read_char_locked()
1640 sc->sc_buffered_char[0] = sc->sc_buffered_char[1]; in ukbd_read_char_locked()
1641 sc->sc_buffered_char[1] = 0; in ukbd_read_char_locked()
1649 usbcode = ukbd_get_key(sc, (wait == FALSE) ? 0 : 1); in ukbd_read_char_locked()
1680 case 0x38: /* left alt (compose key) */ in ukbd_read_char_locked()
1685 if (sc->sc_composed_char > 0xFF) { in ukbd_read_char_locked()
1686 sc->sc_composed_char = 0; in ukbd_read_char_locked()
1692 sc->sc_composed_char = 0; in ukbd_read_char_locked()
1709 case 0x47: in ukbd_read_char_locked()
1710 case 0x48: in ukbd_read_char_locked()
1711 case 0x49: /* keypad 7,8,9 */ in ukbd_read_char_locked()
1713 sc->sc_composed_char += keycode - 0x40; in ukbd_read_char_locked()
1716 case 0x4B: in ukbd_read_char_locked()
1717 case 0x4C: in ukbd_read_char_locked()
1718 case 0x4D: /* keypad 4,5,6 */ in ukbd_read_char_locked()
1720 sc->sc_composed_char += keycode - 0x47; in ukbd_read_char_locked()
1723 case 0x4F: in ukbd_read_char_locked()
1724 case 0x50: in ukbd_read_char_locked()
1725 case 0x51: /* keypad 1,2,3 */ in ukbd_read_char_locked()
1727 sc->sc_composed_char += keycode - 0x4E; in ukbd_read_char_locked()
1730 case 0x52: /* keypad 0 */ in ukbd_read_char_locked()
1735 case SCAN_RELEASE | 0x47: in ukbd_read_char_locked()
1736 case SCAN_RELEASE | 0x48: in ukbd_read_char_locked()
1737 case SCAN_RELEASE | 0x49: /* keypad 7,8,9 */ in ukbd_read_char_locked()
1738 case SCAN_RELEASE | 0x4B: in ukbd_read_char_locked()
1739 case SCAN_RELEASE | 0x4C: in ukbd_read_char_locked()
1740 case SCAN_RELEASE | 0x4D: /* keypad 4,5,6 */ in ukbd_read_char_locked()
1741 case SCAN_RELEASE | 0x4F: in ukbd_read_char_locked()
1742 case SCAN_RELEASE | 0x50: in ukbd_read_char_locked()
1743 case SCAN_RELEASE | 0x51: /* keypad 1,2,3 */ in ukbd_read_char_locked()
1744 case SCAN_RELEASE | 0x52: /* keypad 0 */ in ukbd_read_char_locked()
1747 case 0x38: /* left alt key */ in ukbd_read_char_locked()
1751 if (sc->sc_composed_char > 0) { in ukbd_read_char_locked()
1753 sc->sc_composed_char = 0; in ukbd_read_char_locked()
1770 if (sc->sc_composed_char <= 0xFF) { in ukbd_read_char_locked()
1827 if ((sc->sc_flags & UKBD_FLAG_POLLING) == 0) in ukbd_ioctl_locked()
1890 return (0); in ukbd_ioctl_locked()
1898 kbd->kb_delay1 = imax(((int *)arg)[0], 250); in ukbd_ioctl_locked()
1904 return (0); in ukbd_ioctl_locked()
1927 sc->sc_accents = 0; in ukbd_ioctl_locked()
1933 return (0); in ukbd_ioctl_locked()
1944 if (curthread->td_critnest != 0) in ukbd_ioctl()
1982 sc->sc_accents = 0; in ukbd_clear_state()
1983 sc->sc_composed_char = 0; in ukbd_clear_state()
1985 sc->sc_buffered_char[0] = 0; in ukbd_clear_state()
1986 sc->sc_buffered_char[1] = 0; in ukbd_clear_state()
1988 memset(&sc->sc_ndata, 0, sizeof(sc->sc_ndata)); in ukbd_clear_state()
1989 memset(&sc->sc_odata, 0, sizeof(sc->sc_odata)); in ukbd_clear_state()
1990 sc->sc_repeat_time = 0; in ukbd_clear_state()
1991 sc->sc_repeat_key = 0; in ukbd_clear_state()
1998 return (len == 0) ? 1 : -1; in ukbd_get_state()
2020 else if (sc->sc_polling > 0) in ukbd_poll()
2023 if (sc->sc_polling != 0) { in ukbd_poll()
2028 sc->sc_delay = 0; in ukbd_poll()
2032 return (0); in ukbd_poll()
2042 DPRINTF("leds=0x%02x\n", leds); in ukbd_set_leds()
2063 if (code & ~0x7f) { in ukbd_set_typematic()
2067 kbd->kb_delay2 = kbrates[code & 0x1f]; in ukbd_set_typematic()
2072 return (0); in ukbd_set_typematic()
2087 * mapped Alted PrintScreens to an unusual usbcode (0x8a). in ukbd_atkeycode()
2088 * ukbd_trtab translates this to 0x7e, and key2scan() would in ukbd_atkeycode()
2089 * translate that to 0x79 (Intl' 4). Assume that if we have in ukbd_atkeycode()
2090 * an Alted 0x7e here then it actually is an Alted PrintScreen. in ukbd_atkeycode()
2092 * The usual usbcode for all PrintScreens is 0x46. ukbd_trtab in ukbd_atkeycode()
2093 * translates this to 0x5c, so the Alt check to classify 0x5c in ukbd_atkeycode()
2096 if ((keycode == 0x5c || keycode == 0x7e) && in ukbd_atkeycode()
2097 (UKBD_KEY_PRESSED(bitmap, 0xe2 /* ALT-L */) || in ukbd_atkeycode()
2098 UKBD_KEY_PRESSED(bitmap, 0xe6 /* ALT-R */))) in ukbd_atkeycode()
2099 return (0x54); in ukbd_atkeycode()
2108 0x11c, /* Enter */ in ukbd_key2scan()
2110 0x11d, /* Ctrl-R */ in ukbd_key2scan()
2111 0x135, /* Divide */ in ukbd_key2scan()
2112 0x137, /* PrintScreen */ in ukbd_key2scan()
2113 0x138, /* Alt-R */ in ukbd_key2scan()
2114 0x147, /* Home */ in ukbd_key2scan()
2115 0x148, /* Up */ in ukbd_key2scan()
2116 0x149, /* PageUp */ in ukbd_key2scan()
2117 0x14b, /* Left */ in ukbd_key2scan()
2118 0x14d, /* Right */ in ukbd_key2scan()
2119 0x14f, /* End */ in ukbd_key2scan()
2121 0x150, /* Down */ in ukbd_key2scan()
2122 0x151, /* PageDown */ in ukbd_key2scan()
2123 0x152, /* Insert */ in ukbd_key2scan()
2124 0x153, /* Delete */ in ukbd_key2scan()
2125 0x146, /* Pause/Break */ in ukbd_key2scan()
2126 0x15b, /* Win_L(Super_L) */ in ukbd_key2scan()
2127 0x15c, /* Win_R(Super_R) */ in ukbd_key2scan()
2128 0x15d, /* Application(Menu) */ in ukbd_key2scan()
2131 0x168, /* Sun Type 6 Help */ in ukbd_key2scan()
2132 0x15e, /* Sun Type 6 Stop */ in ukbd_key2scan()
2134 0x15f, /* Sun Type 6 Again */ in ukbd_key2scan()
2135 0x160, /* Sun Type 6 Props */ in ukbd_key2scan()
2136 0x161, /* Sun Type 6 Undo */ in ukbd_key2scan()
2137 0x162, /* Sun Type 6 Front */ in ukbd_key2scan()
2138 0x163, /* Sun Type 6 Copy */ in ukbd_key2scan()
2139 0x164, /* Sun Type 6 Open */ in ukbd_key2scan()
2140 0x165, /* Sun Type 6 Paste */ in ukbd_key2scan()
2141 0x166, /* Sun Type 6 Find */ in ukbd_key2scan()
2142 0x167, /* Sun Type 6 Cut */ in ukbd_key2scan()
2143 0x125, /* Sun Type 6 Mute */ in ukbd_key2scan()
2145 0x11f, /* Sun Type 6 VolumeDown */ in ukbd_key2scan()
2146 0x11e, /* Sun Type 6 VolumeUp */ in ukbd_key2scan()
2147 0x120, /* Sun Type 6 PowerDown */ in ukbd_key2scan()
2150 0x73, /* Keyboard Intl' 1 (backslash / underscore) */ in ukbd_key2scan()
2151 0x70, /* Keyboard Intl' 2 (Katakana / Hiragana) */ in ukbd_key2scan()
2152 0x7d, /* Keyboard Intl' 3 (Yen sign) (Not using in jp106/109) */ in ukbd_key2scan()
2153 0x79, /* Keyboard Intl' 4 (Henkan) */ in ukbd_key2scan()
2154 0x7b, /* Keyboard Intl' 5 (Muhenkan) */ in ukbd_key2scan()
2155 0x5c, /* Keyboard Intl' 6 (Keypad ,) (For PC-9821 layout) */ in ukbd_key2scan()
2156 0x71, /* Apple Keyboard JIS (Kana) */ in ukbd_key2scan()
2157 0x72, /* Apple Keyboard JIS (Eisu) */ in ukbd_key2scan()
2164 if (code == 0x137 && (!( in ukbd_key2scan()
2165 UKBD_KEY_PRESSED(bitmap, 0xe0 /* CTRL-L */) || in ukbd_key2scan()
2166 UKBD_KEY_PRESSED(bitmap, 0xe4 /* CTRL-R */) || in ukbd_key2scan()
2167 UKBD_KEY_PRESSED(bitmap, 0xe1 /* SHIFT-L */) || in ukbd_key2scan()
2168 UKBD_KEY_PRESSED(bitmap, 0xe5 /* SHIFT-R */)))) { in ukbd_key2scan()
2172 if ((code == 0x146) && (!( in ukbd_key2scan()
2173 UKBD_KEY_PRESSED(bitmap, 0xe0 /* CTRL-L */) || in ukbd_key2scan()
2174 UKBD_KEY_PRESSED(bitmap, 0xe4 /* CTRL-R */)))) { in ukbd_key2scan()
2175 code = (0x45 | SCAN_PREFIX_E1 | SCAN_PREFIX_CTL); in ukbd_key2scan()
2182 sc->sc_buffered_char[0] = (0x1d | (code & SCAN_RELEASE)); in ukbd_key2scan()
2186 sc->sc_buffered_char[0] = (0x2a | (code & SCAN_RELEASE)); in ukbd_key2scan()
2189 sc->sc_buffered_char[0] = (code & ~SCAN_PREFIX); in ukbd_key2scan()
2190 sc->sc_buffered_char[1] = 0; in ukbd_key2scan()
2192 return ((code & SCAN_PREFIX_E0) ? 0xe0 : 0xe1); in ukbd_key2scan()
2233 return (0); in ukbd_driver_load()