FreeBSD kernel usb device Code
|
#include <sys/cdefs.h>
#include "opt_kbd.h"
#include "opt_ukbd.h"
#include "opt_evdev.h"
#include <sys/stdint.h>
#include <sys/stddef.h>
#include <sys/param.h>
#include <sys/queue.h>
#include <sys/types.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/bus.h>
#include <sys/module.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/condvar.h>
#include <sys/sysctl.h>
#include <sys/sx.h>
#include <sys/unistd.h>
#include <sys/callout.h>
#include <sys/malloc.h>
#include <sys/priv.h>
#include <sys/proc.h>
#include <dev/hid/hid.h>
#include <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usbdi_util.h>
#include <dev/usb/usbhid.h>
#include <dev/usb/usb_debug.h>
#include <dev/usb/quirk/usb_quirk.h>
#include <sys/ioccom.h>
#include <sys/filio.h>
#include <sys/kbio.h>
#include <dev/kbd/kbdreg.h>
#include <dev/kbd/kbdtables.h>
Go to the source code of this file.
Data Structures | |
struct | ukbd_data |
struct | ukbd_softc |
Macros | |
#define | USB_DEBUG_VAR ukbd_debug |
#define | UKBD_EMULATE_ATSCANCODE 1 |
#define | UKBD_DRIVER_NAME "ukbd" |
#define | UKBD_NKEYCODE 256 /* units */ |
#define | UKBD_IN_BUF_SIZE (4 * UKBD_NKEYCODE) /* scancodes */ |
#define | UKBD_IN_BUF_FULL ((UKBD_IN_BUF_SIZE / 2) - 1) /* scancodes */ |
#define | UKBD_NFKEY (sizeof(fkey_tab)/sizeof(fkey_tab[0])) /* units */ |
#define | UKBD_BUFFER_SIZE 64 /* bytes */ |
#define | UKBD_KEY_PRESSED(map, key) |
#define | MOD_EJECT 0x01 |
#define | MOD_FN 0x02 |
#define | UKBD_FLAG_COMPOSE 0x00000001 |
#define | UKBD_FLAG_POLLING 0x00000002 |
#define | UKBD_FLAG_SET_LEDS 0x00000004 |
#define | UKBD_FLAG_ATTACHED 0x00000010 |
#define | UKBD_FLAG_GONE 0x00000020 |
#define | UKBD_FLAG_HID_MASK 0x003fffc0 |
#define | UKBD_FLAG_APPLE_EJECT 0x00000040 |
#define | UKBD_FLAG_APPLE_FN 0x00000080 |
#define | UKBD_FLAG_APPLE_SWAP 0x00000100 |
#define | UKBD_FLAG_NUMLOCK 0x00080000 |
#define | UKBD_FLAG_CAPSLOCK 0x00100000 |
#define | UKBD_FLAG_SCROLLLOCK 0x00200000 |
#define | KEY_NONE 0x00 |
#define | KEY_ERROR 0x01 |
#define | KEY_PRESS 0 |
#define | KEY_RELEASE 0x400 |
#define | KEY_INDEX(c) ((c) & 0xFF) |
#define | SCAN_PRESS 0 |
#define | SCAN_RELEASE 0x80 |
#define | SCAN_PREFIX_E0 0x100 |
#define | SCAN_PREFIX_E1 0x200 |
#define | SCAN_PREFIX_CTL 0x400 |
#define | SCAN_PREFIX_SHIFT 0x800 |
#define | SCAN_PREFIX |
#define | SCAN_CHAR(c) ((c) & 0x7f) |
#define | UKBD_LOCK() USB_MTX_LOCK(&Giant) |
#define | UKBD_UNLOCK() USB_MTX_UNLOCK(&Giant) |
#define | UKBD_LOCK_ASSERT() USB_MTX_ASSERT(&Giant, MA_OWNED) |
#define | NN 0 /* no translation */ |
Enumerations | |
enum | { UKBD_INTR_DT_0 , UKBD_INTR_DT_1 , UKBD_CTRL_LED , UKBD_N_TRANSFER } |
Functions | |
__FBSDID ("$FreeBSD$") | |
static void | ukbd_timeout (void *) |
static void | ukbd_set_leds (struct ukbd_softc *, uint8_t) |
static int | ukbd_set_typematic (keyboard_t *, int) |
static uint32_t | ukbd_atkeycode (int, const uint64_t *) |
static int | ukbd_key2scan (struct ukbd_softc *, int, const uint64_t *, int) |
static uint32_t | ukbd_read_char (keyboard_t *, int) |
static void | ukbd_clear_state (keyboard_t *) |
static int | ukbd_ioctl (keyboard_t *, u_long, caddr_t) |
static int | ukbd_enable (keyboard_t *) |
static int | ukbd_disable (keyboard_t *) |
static void | ukbd_interrupt (struct ukbd_softc *) |
static void | ukbd_event_keyinput (struct ukbd_softc *) |
static bool | ukbd_any_key_pressed (struct ukbd_softc *sc) |
static bool | ukbd_any_key_valid (struct ukbd_softc *sc) |
static bool | ukbd_is_modifier_key (uint32_t key) |
static void | ukbd_start_timer (struct ukbd_softc *sc) |
static void | ukbd_put_key (struct ukbd_softc *sc, uint32_t key) |
static void | ukbd_do_poll (struct ukbd_softc *sc, uint8_t wait) |
static int32_t | ukbd_get_key (struct ukbd_softc *sc, uint8_t wait) |
static uint32_t | ukbd_apple_fn (uint32_t keycode) |
static uint32_t | ukbd_apple_swap (uint32_t keycode) |
static void | ukbd_intr_callback (struct usb_xfer *xfer, usb_error_t error) |
static void | ukbd_set_leds_callback (struct usb_xfer *xfer, usb_error_t error) |
static int | ukbd_probe (device_t dev) |
static void | ukbd_parse_hid (struct ukbd_softc *sc, const uint8_t *ptr, uint32_t len) |
static int | ukbd_attach (device_t dev) |
static int | ukbd_detach (device_t dev) |
static int | ukbd_resume (device_t dev) |
static int | ukbd_configure (int flags) |
static int | ukbd__probe (int unit, void *arg, int flags) |
static int | ukbd_init (int unit, keyboard_t **kbdp, void *arg, int flags) |
static int | ukbd_test_if (keyboard_t *kbd) |
static int | ukbd_term (keyboard_t *kbd) |
static int | ukbd_intr (keyboard_t *kbd, void *arg) |
static int | ukbd_lock (keyboard_t *kbd, int lock) |
static int | ukbd_check (keyboard_t *kbd) |
static int | ukbd_check_char_locked (keyboard_t *kbd) |
static int | ukbd_check_char (keyboard_t *kbd) |
static int | ukbd_read (keyboard_t *kbd, int wait) |
static uint32_t | ukbd_read_char_locked (keyboard_t *kbd, int wait) |
static int | ukbd_ioctl_locked (keyboard_t *kbd, u_long cmd, caddr_t arg) |
static int | ukbd_get_state (keyboard_t *kbd, void *buf, size_t len) |
static int | ukbd_set_state (keyboard_t *kbd, void *buf, size_t len) |
static int | ukbd_poll (keyboard_t *kbd, int on) |
KEYBOARD_DRIVER (ukbd, ukbdsw, ukbd_configure) | |
static int | ukbd_driver_load (module_t mod, int what, void *arg) |
DRIVER_MODULE (ukbd, uhub, ukbd_driver, ukbd_devclass, ukbd_driver_load, 0) | |
MODULE_DEPEND (ukbd, usb, 1, 1, 1) | |
MODULE_DEPEND (ukbd, hid, 1, 1, 1) | |
MODULE_VERSION (ukbd, 1) | |
USB_PNP_HOST_INFO (ukbd_devs) | |
Variables | |
static const uint8_t | ukbd_trtab [256] |
static const uint8_t | ukbd_boot_desc [] |
static device_probe_t | ukbd_probe |
static device_attach_t | ukbd_attach |
static device_detach_t | ukbd_detach |
static device_resume_t | ukbd_resume |
static const struct usb_config | ukbd_config [UKBD_N_TRANSFER] |
static const STRUCT_USB_HOST_ID __used | ukbd_devs [] |
static keyboard_switch_t | ukbdsw |
static devclass_t | ukbd_devclass |
static device_method_t | ukbd_methods [] |
static driver_t | ukbd_driver |
#define SCAN_PREFIX |
#define UKBD_IN_BUF_FULL ((UKBD_IN_BUF_SIZE / 2) - 1) /* scancodes */ |
#define UKBD_IN_BUF_SIZE (4 * UKBD_NKEYCODE) /* scancodes */ |
#define UKBD_KEY_PRESSED | ( | map, | |
key | |||
) |
#define UKBD_LOCK | ( | ) | USB_MTX_LOCK(&Giant) |
#define UKBD_LOCK_ASSERT | ( | ) | USB_MTX_ASSERT(&Giant, MA_OWNED) |
#define UKBD_NFKEY (sizeof(fkey_tab)/sizeof(fkey_tab[0])) /* units */ |
#define UKBD_UNLOCK | ( | ) | USB_MTX_UNLOCK(&Giant) |
anonymous enum |
__FBSDID | ( | "$FreeBSD$" | ) |
DRIVER_MODULE | ( | ukbd | , |
uhub | , | ||
ukbd_driver | , | ||
ukbd_devclass | , | ||
ukbd_driver_load | , | ||
0 | |||
) |
KEYBOARD_DRIVER | ( | ukbd | , |
ukbdsw | , | ||
ukbd_configure | |||
) |
MODULE_DEPEND | ( | ukbd | , |
hid | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_DEPEND | ( | ukbd | , |
usb | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_VERSION | ( | ukbd | , |
1 | |||
) |
|
static |
|
static |
Definition at line 331 of file ukbd.c.
References ukbd_data::bitmap, ukbd_softc::sc_odata, and UKBD_NKEYCODE.
Referenced by ukbd_do_poll(), and ukbd_timeout().
|
static |
Definition at line 342 of file ukbd.c.
References ukbd_softc::sc_loc_key_valid, and UKBD_NKEYCODE.
Referenced by ukbd_attach().
|
static |
Definition at line 618 of file ukbd.c.
Referenced by ukbd_intr_callback().
|
static |
Definition at line 632 of file ukbd.c.
Referenced by ukbd_intr_callback().
|
static |
Definition at line 2017 of file ukbd.c.
References KEY_INDEX, UKBD_KEY_PRESSED, and ukbd_trtab.
Referenced by ukbd_read(), and ukbd_read_char_locked().
|
static |
Definition at line 1073 of file ukbd.c.
References usbd_lookup_info::bIfaceIndex, usbd_lookup_info::bIfaceNum, dev, usb_attach_arg::device, device_set_usb_desc(), DPRINTF, usbd_lookup_info::idProduct, usbd_lookup_info::idVendor, usb_attach_arg::iface, usb_attach_arg::info, n, ukbd_softc::sc_accmap, ukbd_softc::sc_callout, ukbd_softc::sc_fkeymap, ukbd_softc::sc_flags, ukbd_softc::sc_iface, ukbd_softc::sc_iface_index, ukbd_softc::sc_iface_no, ukbd_softc::sc_kbd, ukbd_softc::sc_keymap, ukbd_softc::sc_mode, ukbd_softc::sc_state, ukbd_softc::sc_udev, ukbd_softc::sc_xfer, ukbd_any_key_valid(), ukbd_boot_desc, ukbd_clear_state(), ukbd_config, ukbd_detach, UKBD_DRIVER_NAME, ukbd_enable(), UKBD_FLAG_ATTACHED, UKBD_FLAG_CAPSLOCK, UKBD_FLAG_NUMLOCK, UKBD_FLAG_SCROLLLOCK, UKBD_INTR_DT_0, UKBD_INTR_DT_1, ukbd_ioctl(), UKBD_LOCK_ASSERT, UKBD_N_TRANSFER, UKBD_NFKEY, ukbd_parse_hid(), UQ_KBD_BOOTPROTO, usb_callout_init_mtx, usb_get_serial(), usb_test_quirk(), usbd_errstr(), usbd_req_get_hid_desc(), usbd_req_set_idle(), usbd_req_set_protocol(), usbd_transfer_setup(), usbd_transfer_start(), and usbd_xfer_set_interval().
|
static |
Definition at line 1433 of file ukbd.c.
References ukbd_softc::sc_buffered_char, ukbd_softc::sc_flags, ukbd_softc::sc_inputs, ukbd_do_poll(), UKBD_FLAG_POLLING, and UKBD_LOCK_ASSERT.
Referenced by ukbd_check_char_locked().
|
static |
Definition at line 1475 of file ukbd.c.
References ukbd_check_char_locked(), UKBD_LOCK, and UKBD_UNLOCK.
|
static |
Definition at line 1458 of file ukbd.c.
References ukbd_softc::sc_composed_char, ukbd_softc::sc_flags, ukbd_check(), UKBD_FLAG_COMPOSE, and UKBD_LOCK_ASSERT.
Referenced by ukbd_check_char().
|
static |
Definition at line 1908 of file ukbd.c.
References ukbd_softc::sc_accents, ukbd_softc::sc_buffered_char, ukbd_softc::sc_composed_char, ukbd_softc::sc_flags, ukbd_softc::sc_ndata, ukbd_softc::sc_odata, ukbd_softc::sc_repeat_key, ukbd_softc::sc_repeat_time, ukbd_softc::sc_state, UKBD_FLAG_COMPOSE, UKBD_FLAG_POLLING, and UKBD_LOCK_ASSERT.
Referenced by ukbd_attach(), ukbd_ioctl_locked(), and ukbd_resume().
|
static |
Definition at line 1263 of file ukbd.c.
References dev, DPRINTF, error, ukbd_softc::sc_callout, ukbd_softc::sc_flags, ukbd_softc::sc_kbd, ukbd_softc::sc_ndata, ukbd_softc::sc_xfer, ukbd_disable(), UKBD_FLAG_ATTACHED, UKBD_FLAG_GONE, ukbd_interrupt(), UKBD_INTR_DT_0, UKBD_INTR_DT_1, UKBD_LOCK_ASSERT, UKBD_N_TRANSFER, usb_callout_drain, usb_callout_stop, usbd_transfer_stop(), and usbd_transfer_unsetup().
|
static |
Definition at line 1420 of file ukbd.c.
References UKBD_LOCK, and UKBD_UNLOCK.
Referenced by ukbd_detach().
|
static |
Definition at line 412 of file ukbd.c.
References ukbd_softc::sc_flags, ukbd_softc::sc_inputs, ukbd_softc::sc_time_ms, ukbd_softc::sc_xfer, ukbd_any_key_pressed(), UKBD_FLAG_POLLING, ukbd_interrupt(), UKBD_LOCK_ASSERT, UKBD_N_TRANSFER, USB_IN_POLLING_MODE_FUNC, and usbd_transfer_poll().
Referenced by ukbd_check(), and ukbd_get_key().
|
static |
|
static |
Definition at line 1408 of file ukbd.c.
References UKBD_LOCK, and UKBD_UNLOCK.
Referenced by ukbd_attach().
|
static |
Definition at line 572 of file ukbd.c.
References ukbd_softc::sc_flags, ukbd_softc::sc_inputs, ukbd_softc::sc_kbd, UKBD_FLAG_POLLING, UKBD_LOCK_ASSERT, and ukbd_read_char().
Referenced by ukbd_interrupt(), and ukbd_timeout().
|
static |
Definition at line 460 of file ukbd.c.
References ukbd_softc::sc_flags, ukbd_softc::sc_input, ukbd_softc::sc_inputhead, ukbd_softc::sc_inputs, ukbd_softc::sc_xfer, ukbd_do_poll(), UKBD_FLAG_GONE, UKBD_FLAG_POLLING, UKBD_IN_BUF_SIZE, UKBD_INTR_DT_0, UKBD_INTR_DT_1, UKBD_LOCK_ASSERT, USB_IN_POLLING_MODE_FUNC, and usbd_transfer_start().
Referenced by ukbd_read(), and ukbd_read_char_locked().
|
static |
|
static |
|
static |
Definition at line 493 of file ukbd.c.
References ukbd_data::bitmap, KEY_PRESS, KEY_RELEASE, ukbd_softc::sc_co_basetime, ukbd_softc::sc_delay, ukbd_softc::sc_kbd, ukbd_softc::sc_ndata, ukbd_softc::sc_odata, ukbd_softc::sc_repeat_key, ukbd_softc::sc_repeat_time, ukbd_softc::sc_time_ms, ukbd_event_keyinput(), ukbd_is_modifier_key(), UKBD_LOCK_ASSERT, UKBD_NKEYCODE, ukbd_put_key(), and ukbd_start_timer().
Referenced by ukbd_detach(), ukbd_do_poll(), ukbd_intr_callback(), and ukbd_timeout().
|
static |
|
static |
Definition at line 642 of file ukbd.c.
References ukbd_data::bitmap, DPRINTF, error, id, KEY_ERROR, KEY_NONE, len, MOD_EJECT, MOD_FN, offset, ukbd_softc::sc_buffer, ukbd_softc::sc_flags, ukbd_softc::sc_id_apple_eject, ukbd_softc::sc_id_apple_fn, ukbd_softc::sc_id_loc_key, ukbd_softc::sc_inputs, ukbd_softc::sc_kbd_id, ukbd_softc::sc_loc_apple_eject, ukbd_softc::sc_loc_apple_fn, ukbd_softc::sc_loc_key, ukbd_softc::sc_loc_key_valid, ukbd_softc::sc_ndata, ukbd_softc::sc_odata, ukbd_apple_fn(), ukbd_apple_swap(), UKBD_BUFFER_SIZE, UKBD_FLAG_APPLE_EJECT, UKBD_FLAG_APPLE_FN, UKBD_FLAG_APPLE_SWAP, UKBD_IN_BUF_FULL, ukbd_interrupt(), UKBD_LOCK_ASSERT, UKBD_NKEYCODE, USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_out(), usbd_errstr(), usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_max_len(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), usbd_xfer_softc(), and usbd_xfer_status().
|
static |
Definition at line 1871 of file ukbd.c.
References ukbd_ioctl_locked(), UKBD_LOCK, UKBD_UNLOCK, and USB_IN_POLLING_MODE_FUNC.
Referenced by ukbd_attach(), and ukbd_ioctl_locked().
|
static |
Definition at line 1730 of file ukbd.c.
References ukbd_softc::sc_accents, ukbd_softc::sc_flags, ukbd_softc::sc_mode, ukbd_softc::sc_state, ukbd_clear_state(), UKBD_FLAG_POLLING, ukbd_ioctl(), UKBD_LOCK_ASSERT, ukbd_set_leds(), and ukbd_set_typematic().
Referenced by ukbd_ioctl().
|
static |
Definition at line 353 of file ukbd.c.
Referenced by ukbd_interrupt().
|
static |
Definition at line 2044 of file ukbd.c.
References ukbd_softc::sc_buffered_char, SCAN_PREFIX, SCAN_PREFIX_CTL, SCAN_PREFIX_E0, SCAN_PREFIX_E1, SCAN_PREFIX_SHIFT, SCAN_PRESS, SCAN_RELEASE, and UKBD_KEY_PRESSED.
Referenced by ukbd_read(), and ukbd_read_char_locked().
|
static |
Definition at line 981 of file ukbd.c.
References len, ukbd_softc::sc_flags, ukbd_softc::sc_id_apple_eject, ukbd_softc::sc_id_apple_fn, ukbd_softc::sc_id_capslock, ukbd_softc::sc_id_loc_key, ukbd_softc::sc_id_numlock, ukbd_softc::sc_id_scrolllock, ukbd_softc::sc_kbd_id, ukbd_softc::sc_kbd_size, ukbd_softc::sc_led_size, ukbd_softc::sc_loc_apple_eject, ukbd_softc::sc_loc_apple_fn, ukbd_softc::sc_loc_capslock, ukbd_softc::sc_loc_key, ukbd_softc::sc_loc_key_valid, ukbd_softc::sc_loc_numlock, ukbd_softc::sc_loc_scrolllock, UKBD_FLAG_APPLE_EJECT, UKBD_FLAG_APPLE_FN, UKBD_FLAG_APPLE_SWAP, UKBD_FLAG_CAPSLOCK, UKBD_FLAG_NUMLOCK, UKBD_FLAG_SCROLLLOCK, and UKBD_NKEYCODE.
Referenced by ukbd_attach().
|
static |
Definition at line 1943 of file ukbd.c.
References ukbd_softc::sc_delay, ukbd_softc::sc_flags, ukbd_softc::sc_poll_thread, ukbd_softc::sc_polling, UKBD_FLAG_POLLING, UKBD_LOCK, and UKBD_UNLOCK.
|
static |
Definition at line 928 of file ukbd.c.
References usbd_lookup_info::bIfaceIndex, usbd_lookup_info::bInterfaceClass, usbd_lookup_info::bInterfaceProtocol, usbd_lookup_info::bInterfaceSubClass, dev, usb_attach_arg::device, error, usb_attach_arg::info, UICLASS_HID, UIPROTO_BOOT_KEYBOARD, UISUBCLASS_BOOT, UKBD_DRIVER_NAME, UKBD_LOCK_ASSERT, UQ_KBD_IGNORE, usb_attach_arg::usb_mode, USB_MODE_HOST, usb_test_quirk(), and usbd_req_get_hid_desc().
|
static |
Definition at line 385 of file ukbd.c.
References DPRINTF, KEY_INDEX, KEY_RELEASE, ukbd_softc::sc_input, ukbd_softc::sc_inputs, ukbd_softc::sc_inputtail, UKBD_IN_BUF_SIZE, and UKBD_LOCK_ASSERT.
Referenced by ukbd_interrupt().
|
static |
Definition at line 1489 of file ukbd.c.
References ukbd_data::bitmap, KEY_RELEASE, NN, ukbd_softc::sc_buffered_char, ukbd_softc::sc_ndata, SCAN_PREFIX, SCAN_PREFIX_E0, ukbd_atkeycode(), ukbd_get_key(), ukbd_key2scan(), and UKBD_LOCK_ASSERT.
|
static |
Definition at line 1717 of file ukbd.c.
References UKBD_LOCK, ukbd_read_char_locked(), and UKBD_UNLOCK.
Referenced by ukbd_event_keyinput().
|
static |
Definition at line 1538 of file ukbd.c.
References ukbd_data::bitmap, KEY_INDEX, KEY_RELEASE, NN, ukbd_softc::sc_accents, ukbd_softc::sc_buffered_char, ukbd_softc::sc_composed_char, ukbd_softc::sc_flags, ukbd_softc::sc_mode, ukbd_softc::sc_ndata, ukbd_softc::sc_state, SCAN_CHAR, SCAN_PREFIX, SCAN_PREFIX_E0, SCAN_RELEASE, ukbd_atkeycode(), UKBD_FLAG_COMPOSE, ukbd_get_key(), ukbd_key2scan(), UKBD_LOCK_ASSERT, and ukbd_trtab.
Referenced by ukbd_read_char().
|
static |
Definition at line 1327 of file ukbd.c.
References dev, ukbd_softc::sc_kbd, ukbd_clear_state(), and UKBD_LOCK_ASSERT.
|
static |
Definition at line 1972 of file ukbd.c.
References DPRINTF, ukbd_softc::sc_flags, ukbd_softc::sc_leds, ukbd_softc::sc_xfer, UKBD_CTRL_LED, UKBD_FLAG_SET_LEDS, UKBD_LOCK_ASSERT, and usbd_transfer_start().
Referenced by ukbd_ioctl_locked().
|
static |
Definition at line 787 of file ukbd.c.
References DPRINTF, error, id, len, req, ukbd_softc::sc_buffer, ukbd_softc::sc_flags, ukbd_softc::sc_id_capslock, ukbd_softc::sc_id_numlock, ukbd_softc::sc_id_scrolllock, ukbd_softc::sc_iface_no, ukbd_softc::sc_led_size, ukbd_softc::sc_leds, ukbd_softc::sc_loc_capslock, ukbd_softc::sc_loc_numlock, ukbd_softc::sc_loc_scrolllock, UHID_OUTPUT_REPORT, UKBD_BUFFER_SIZE, UKBD_FLAG_CAPSLOCK, UKBD_FLAG_NUMLOCK, UKBD_FLAG_SCROLLLOCK, UKBD_FLAG_SET_LEDS, UKBD_LOCK_ASSERT, UR_SET_REPORT, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_in(), usbd_errstr(), usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_set_frame_len(), usbd_xfer_set_frames(), usbd_xfer_softc(), USETW2, and UT_WRITE_CLASS_INTERFACE.
|
static |
|
static |
Definition at line 1992 of file ukbd.c.
Referenced by ukbd_ioctl_locked().
|
static |
Definition at line 360 of file ukbd.c.
References ukbd_softc::sc_callout, ukbd_softc::sc_co_basetime, ukbd_softc::sc_delay, ukbd_softc::sc_kbd, ukbd_timeout(), and usb_callout_reset_sbt.
Referenced by ukbd_interrupt(), and ukbd_timeout().
|
static |
Definition at line 598 of file ukbd.c.
References ukbd_softc::sc_delay, ukbd_softc::sc_inputs, ukbd_softc::sc_time_ms, ukbd_any_key_pressed(), ukbd_event_keyinput(), ukbd_interrupt(), UKBD_LOCK_ASSERT, and ukbd_start_timer().
Referenced by ukbd_start_timer().
USB_PNP_HOST_INFO | ( | ukbd_devs | ) |
|
static |
Definition at line 285 of file ukbd.c.
Referenced by ukbd_attach().
|
static |
Definition at line 891 of file ukbd.c.
Referenced by ukbd_attach().
|
static |
Definition at line 319 of file ukbd.c.
Referenced by ukbd_attach().
|
static |
|
static |
|
static |
|
static |
Definition at line 250 of file ukbd.c.
Referenced by ukbd_atkeycode(), and ukbd_read_char_locked().
|
static |