FreeBSD kernel usb device Code
|
#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 <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usbdi_util.h>
#include "usbdevs.h"
#include <dev/usb/usb_debug.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/serial/usb_serial.h>
Go to the source code of this file.
Data Structures | |
struct | umoscom_softc |
Enumerations | |
enum | { UMOSCOM_BULK_DT_WR , UMOSCOM_BULK_DT_RD , UMOSCOM_INTR_DT_RD , UMOSCOM_N_TRANSFER } |
Functions | |
static void | umoscom_free_softc (struct umoscom_softc *) |
static void | umoscom_free (struct ucom_softc *) |
static void | umoscom_cfg_open (struct ucom_softc *) |
static void | umoscom_cfg_close (struct ucom_softc *) |
static void | umoscom_cfg_set_break (struct ucom_softc *, uint8_t) |
static void | umoscom_cfg_set_dtr (struct ucom_softc *, uint8_t) |
static void | umoscom_cfg_set_rts (struct ucom_softc *, uint8_t) |
static int | umoscom_pre_param (struct ucom_softc *, struct termios *) |
static void | umoscom_cfg_param (struct ucom_softc *, struct termios *) |
static void | umoscom_cfg_get_status (struct ucom_softc *, uint8_t *, uint8_t *) |
static void | umoscom_cfg_write (struct umoscom_softc *, uint16_t, uint16_t) |
static uint8_t | umoscom_cfg_read (struct umoscom_softc *, uint16_t) |
static void | umoscom_start_read (struct ucom_softc *) |
static void | umoscom_stop_read (struct ucom_softc *) |
static void | umoscom_start_write (struct ucom_softc *) |
static void | umoscom_stop_write (struct ucom_softc *) |
static void | umoscom_poll (struct ucom_softc *ucom) |
DRIVER_MODULE (umoscom, uhub, umoscom_driver, umoscom_devclass, NULL, 0) | |
MODULE_DEPEND (umoscom, ucom, 1, 1, 1) | |
MODULE_DEPEND (umoscom, usb, 1, 1, 1) | |
MODULE_VERSION (umoscom, 1) | |
USB_PNP_HOST_INFO (umoscom_devs) | |
static int | umoscom_probe (device_t dev) |
static int | umoscom_attach (device_t dev) |
static int | umoscom_detach (device_t dev) |
UCOM_UNLOAD_DRAIN (umoscom) | |
static void | umoscom_write_callback (struct usb_xfer *xfer, usb_error_t error) |
static void | umoscom_read_callback (struct usb_xfer *xfer, usb_error_t error) |
static void | umoscom_intr_callback (struct usb_xfer *xfer, usb_error_t error) |
Variables | |
static device_probe_t | umoscom_probe |
static device_attach_t | umoscom_attach |
static device_detach_t | umoscom_detach |
static usb_callback_t | umoscom_write_callback |
static usb_callback_t | umoscom_read_callback |
static usb_callback_t | umoscom_intr_callback |
static const struct usb_config | umoscom_config_data [UMOSCOM_N_TRANSFER] |
static const struct ucom_callback | umoscom_callback |
static device_method_t | umoscom_methods [] |
static devclass_t | umoscom_devclass |
static driver_t | umoscom_driver |
static const STRUCT_USB_HOST_ID | umoscom_devs [] |
#define UMOSCOM_LCR_STOP_BITS_2 0x04 /* 2 if 6-8 bits/char or 1.5 if 5 */ |
anonymous enum |
DRIVER_MODULE | ( | umoscom | , |
uhub | , | ||
umoscom_driver | , | ||
umoscom_devclass | , | ||
NULL | , | ||
0 | |||
) |
MODULE_DEPEND | ( | umoscom | , |
ucom | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_DEPEND | ( | umoscom | , |
usb | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_VERSION | ( | umoscom | , |
1 | |||
) |
UCOM_UNLOAD_DRAIN | ( | umoscom | ) |
|
static |
Definition at line 309 of file umoscom.c.
References dev, usb_attach_arg::device, error, umoscom_softc::sc_mcr, umoscom_softc::sc_mtx, umoscom_softc::sc_super_ucom, umoscom_softc::sc_ucom, umoscom_softc::sc_udev, umoscom_softc::sc_xfer, ucom_attach(), ucom_ref(), ucom_set_pnpinfo_usb(), UMOSCOM_BULK_DT_RD, UMOSCOM_BULK_DT_WR, umoscom_callback, umoscom_config_data, umoscom_detach, UMOSCOM_IFACE_INDEX, UMOSCOM_N_TRANSFER, usbd_errstr(), usbd_transfer_setup(), and usbd_xfer_set_stall().
|
static |
|
static |
Definition at line 523 of file umoscom.c.
References ucom_softc::sc_parent, umoscom_cfg_read(), UMOSCOM_LSR, UMOSCOM_MSR, UMOSCOM_MSR_CD, UMOSCOM_MSR_CTS, UMOSCOM_MSR_RI, and UMOSCOM_MSR_RTS.
|
static |
Definition at line 388 of file umoscom.c.
References DPRINTF, ucom_softc::sc_parent, umoscom_cfg_write(), UMOSCOM_FIFO, UMOSCOM_FIFO_DMA_BLK, UMOSCOM_FIFO_EN, UMOSCOM_FIFO_RXCLR, UMOSCOM_FIFO_RXLVL_MASK, UMOSCOM_FIFO_TXCLR, UMOSCOM_INT, and UMOSCOM_UART_REG.
|
static |
Definition at line 468 of file umoscom.c.
References data, DPRINTF, umoscom_softc::sc_lcr, ucom_softc::sc_parent, UMOSCOM_BAUD_REF, UMOSCOM_BAUDHI, UMOSCOM_BAUDLO, umoscom_cfg_write(), UMOSCOM_LCR, UMOSCOM_LCR_DBITS, UMOSCOM_LCR_DIVLATCH_EN, UMOSCOM_LCR_PARITY_EVEN, UMOSCOM_LCR_PARITY_NONE, UMOSCOM_LCR_PARITY_ODD, UMOSCOM_LCR_STOP_BITS_1, UMOSCOM_LCR_STOP_BITS_2, and UMOSCOM_UART_REG.
|
static |
Definition at line 569 of file umoscom.c.
References DPRINTF, reg, req, umoscom_softc::sc_ucom, umoscom_softc::sc_udev, ucom_cfg_do_request, UMOSCOM_READ, USETW, UT_READ_VENDOR_DEVICE, and val.
Referenced by umoscom_cfg_get_status().
|
static |
Definition at line 420 of file umoscom.c.
References umoscom_softc::sc_lcr, ucom_softc::sc_parent, umoscom_cfg_write(), UMOSCOM_LCR, UMOSCOM_LCR_BREAK, UMOSCOM_UART_REG, and val.
|
static |
Definition at line 433 of file umoscom.c.
References umoscom_softc::sc_mcr, ucom_softc::sc_parent, umoscom_cfg_write(), UMOSCOM_MCR, UMOSCOM_MCR_DTR, and UMOSCOM_UART_REG.
|
static |
Definition at line 446 of file umoscom.c.
References umoscom_softc::sc_mcr, ucom_softc::sc_parent, umoscom_cfg_write(), UMOSCOM_MCR, UMOSCOM_MCR_RTS, and UMOSCOM_UART_REG.
|
static |
Definition at line 554 of file umoscom.c.
References reg, req, umoscom_softc::sc_ucom, umoscom_softc::sc_udev, ucom_cfg_do_request, UMOSCOM_WRITE, USETW, UT_WRITE_VENDOR_DEVICE, and val.
Referenced by umoscom_cfg_open(), umoscom_cfg_param(), umoscom_cfg_set_break(), umoscom_cfg_set_dtr(), and umoscom_cfg_set_rts().
|
static |
Definition at line 356 of file umoscom.c.
References dev, umoscom_softc::sc_super_ucom, umoscom_softc::sc_ucom, umoscom_softc::sc_xfer, ucom_detach(), umoscom_free_softc(), UMOSCOM_N_TRANSFER, and usbd_transfer_unsetup().
|
static |
Definition at line 382 of file umoscom.c.
References ucom_softc::sc_parent, and umoscom_free_softc().
|
static |
Definition at line 373 of file umoscom.c.
References umoscom_softc::sc_mtx, umoscom_softc::sc_super_ucom, and ucom_unref().
Referenced by umoscom_detach(), and umoscom_free().
|
static |
Definition at line 696 of file umoscom.c.
References DPRINTF, error, umoscom_softc::sc_ucom, ucom_status_change(), USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_transfer_submit(), usbd_xfer_max_len(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), usbd_xfer_softc(), and usbd_xfer_status().
|
static |
Definition at line 729 of file umoscom.c.
References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_N_TRANSFER, and usbd_transfer_poll().
|
static |
|
static |
Definition at line 292 of file umoscom.c.
References usbd_lookup_info::bConfigIndex, usbd_lookup_info::bIfaceIndex, dev, usb_attach_arg::info, UMOSCOM_CONFIG_INDEX, umoscom_devs, UMOSCOM_IFACE_INDEX, usb_attach_arg::usb_mode, USB_MODE_HOST, and usbd_lookup_id_by_uaa().
|
static |
Definition at line 662 of file umoscom.c.
References DPRINTF, error, umoscom_softc::sc_ucom, ucom_put_data(), USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, 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 589 of file umoscom.c.
References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_BULK_DT_RD, UMOSCOM_INTR_DT_RD, and usbd_transfer_start().
|
static |
Definition at line 614 of file umoscom.c.
References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_BULK_DT_WR, and usbd_transfer_start().
|
static |
Definition at line 602 of file umoscom.c.
References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_BULK_DT_RD, UMOSCOM_INTR_DT_RD, and usbd_transfer_stop().
|
static |
Definition at line 622 of file umoscom.c.
References ucom_softc::sc_parent, umoscom_softc::sc_xfer, UMOSCOM_BULK_DT_WR, and usbd_transfer_stop().
|
static |
Definition at line 630 of file umoscom.c.
References DPRINTF, error, umoscom_softc::sc_ucom, ucom_get_data(), UMOSCOM_BUFSIZE, USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), and usbd_xfer_softc().
USB_PNP_HOST_INFO | ( | umoscom_devs | ) |
|
static |
Definition at line 246 of file umoscom.c.
Referenced by umoscom_attach().
|
static |
Definition at line 217 of file umoscom.c.
Referenced by umoscom_attach().
|
static |
Definition at line 192 of file umoscom.c.
Referenced by umoscom_attach().
|
static |
Definition at line 281 of file umoscom.c.
Referenced by umoscom_probe().
|
static |
|
static |
|
static |
|
static |
|
static |