FreeBSD kernel usb device Code
ufoma.c File Reference
#include <sys/cdefs.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/sbuf.h>
#include <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usbdi_util.h>
#include <dev/usb/usb_cdc.h>
#include "usbdevs.h"
#include <dev/usb/usb_debug.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/serial/usb_serial.h>
Include dependency graph for ufoma.c:

Go to the source code of this file.

Data Structures

struct  ufoma_mobile_acm_descriptor
 
struct  ufoma_softc
 
struct  umcpc_modetostr_tab
 

Macros

#define UFOMA_HANDSFREE
 
#define USB_DEBUG_VAR   usb_debug
 
#define UISUBCLASS_MCPC   0x88
 
#define UDESC_VS_INTERFACE   0x44
 
#define UDESCSUB_MCPC_ACM   0x11
 
#define UMCPC_ACM_TYPE_AB1   0x1
 
#define UMCPC_ACM_TYPE_AB2   0x2
 
#define UMCPC_ACM_TYPE_AB5   0x5
 
#define UMCPC_ACM_TYPE_AB6   0x6
 
#define UMCPC_ACM_MODE_DEACTIVATED   0x0
 
#define UMCPC_ACM_MODE_MODEM   0x1
 
#define UMCPC_ACM_MODE_ATCOMMAND   0x2
 
#define UMCPC_ACM_MODE_OBEX   0x60
 
#define UMCPC_ACM_MODE_VENDOR1   0xc0
 
#define UMCPC_ACM_MODE_VENDOR2   0xfe
 
#define UMCPC_ACM_MODE_UNLINKED   0xff
 
#define UMCPC_CM_MOBILE_ACM   0x0
 
#define UMCPC_ACTIVATE_MODE   0x60
 
#define UMCPC_GET_MODETABLE   0x61
 
#define UMCPC_SET_LINK   0x62
 
#define UMCPC_CLEAR_LINK   0x63
 
#define UMCPC_REQUEST_ACKNOWLEDGE   0x31
 
#define UFOMA_MAX_TIMEOUT   15 /* standard says 10 seconds */
 
#define UFOMA_CMD_BUF_SIZE   64 /* bytes */
 
#define UFOMA_BULK_BUF_SIZE   1024 /* bytes */
 

Typedefs

typedef struct ufoma_mobile_acm_descriptor usb_mcpc_acm_descriptor
 

Enumerations

enum  { UFOMA_CTRL_ENDPT_INTR , UFOMA_CTRL_ENDPT_READ , UFOMA_CTRL_ENDPT_WRITE , UFOMA_CTRL_ENDPT_MAX }
 
enum  { UFOMA_BULK_ENDPT_WRITE , UFOMA_BULK_ENDPT_READ , UFOMA_BULK_ENDPT_MAX }
 

Functions

 __FBSDID ("$FreeBSD$")
 
static void ufoma_free_softc (struct ufoma_softc *)
 
static void * ufoma_get_intconf (struct usb_config_descriptor *, struct usb_interface_descriptor *, uint8_t, uint8_t)
 
static void ufoma_cfg_link_state (struct ufoma_softc *)
 
static void ufoma_cfg_activate_state (struct ufoma_softc *, uint16_t)
 
static void ufoma_free (struct ucom_softc *)
 
static void ufoma_cfg_open (struct ucom_softc *)
 
static void ufoma_cfg_close (struct ucom_softc *)
 
static void ufoma_cfg_set_break (struct ucom_softc *, uint8_t)
 
static void ufoma_cfg_get_status (struct ucom_softc *, uint8_t *, uint8_t *)
 
static void ufoma_cfg_set_dtr (struct ucom_softc *, uint8_t)
 
static void ufoma_cfg_set_rts (struct ucom_softc *, uint8_t)
 
static int ufoma_pre_param (struct ucom_softc *, struct termios *)
 
static void ufoma_cfg_param (struct ucom_softc *, struct termios *)
 
static int ufoma_modem_setup (device_t, struct ufoma_softc *, struct usb_attach_arg *)
 
static void ufoma_start_read (struct ucom_softc *)
 
static void ufoma_stop_read (struct ucom_softc *)
 
static void ufoma_start_write (struct ucom_softc *)
 
static void ufoma_stop_write (struct ucom_softc *)
 
static void ufoma_poll (struct ucom_softc *ucom)
 
static int ufoma_sysctl_support (SYSCTL_HANDLER_ARGS)
 
static int ufoma_sysctl_current (SYSCTL_HANDLER_ARGS)
 
static int ufoma_sysctl_open (SYSCTL_HANDLER_ARGS)
 
 DRIVER_MODULE (ufoma, uhub, ufoma_driver, ufoma_devclass, NULL, 0)
 
 MODULE_DEPEND (ufoma, ucom, 1, 1, 1)
 
 MODULE_DEPEND (ufoma, usb, 1, 1, 1)
 
 MODULE_VERSION (ufoma, 1)
 
 USB_PNP_HOST_INFO (ufoma_devs)
 
static int ufoma_probe (device_t dev)
 
static int ufoma_attach (device_t dev)
 
static int ufoma_detach (device_t dev)
 
 UCOM_UNLOAD_DRAIN (ufoma)
 
static void ufoma_ctrl_read_callback (struct usb_xfer *xfer, usb_error_t error)
 
static void ufoma_ctrl_write_callback (struct usb_xfer *xfer, usb_error_t error)
 
static void ufoma_intr_callback (struct usb_xfer *xfer, usb_error_t error)
 
static void ufoma_bulk_write_callback (struct usb_xfer *xfer, usb_error_t error)
 
static void ufoma_bulk_read_callback (struct usb_xfer *xfer, usb_error_t error)
 
static void ufoma_cfg_set_line_state (struct ufoma_softc *sc)
 
static char * ufoma_mode_to_str (int mode)
 
static int ufoma_str_to_mode (char *str)
 

Variables

static device_probe_t ufoma_probe
 
static device_attach_t ufoma_attach
 
static device_detach_t ufoma_detach
 
static usb_callback_t ufoma_ctrl_read_callback
 
static usb_callback_t ufoma_ctrl_write_callback
 
static usb_callback_t ufoma_intr_callback
 
static usb_callback_t ufoma_bulk_write_callback
 
static usb_callback_t ufoma_bulk_read_callback
 
static const struct usb_config ufoma_ctrl_config [UFOMA_CTRL_ENDPT_MAX]
 
static const struct usb_config ufoma_bulk_config [UFOMA_BULK_ENDPT_MAX]
 
static const struct ucom_callback ufoma_callback
 
static device_method_t ufoma_methods []
 
static devclass_t ufoma_devclass
 
static driver_t ufoma_driver
 
static const STRUCT_USB_HOST_ID ufoma_devs []
 
static struct umcpc_modetostr_tab umcpc_modetostr_tab []
 

Macro Definition Documentation

◆ UDESC_VS_INTERFACE

#define UDESC_VS_INTERFACE   0x44

Definition at line 121 of file ufoma.c.

◆ UDESCSUB_MCPC_ACM

#define UDESCSUB_MCPC_ACM   0x11

Definition at line 122 of file ufoma.c.

◆ UFOMA_BULK_BUF_SIZE

#define UFOMA_BULK_BUF_SIZE   1024 /* bytes */

Definition at line 149 of file ufoma.c.

◆ UFOMA_CMD_BUF_SIZE

#define UFOMA_CMD_BUF_SIZE   64 /* bytes */

Definition at line 147 of file ufoma.c.

◆ UFOMA_HANDSFREE

#define UFOMA_HANDSFREE

Definition at line 5 of file ufoma.c.

◆ UFOMA_MAX_TIMEOUT

#define UFOMA_MAX_TIMEOUT   15 /* standard says 10 seconds */

Definition at line 146 of file ufoma.c.

◆ UISUBCLASS_MCPC

#define UISUBCLASS_MCPC   0x88

Definition at line 119 of file ufoma.c.

◆ UMCPC_ACM_MODE_ATCOMMAND

#define UMCPC_ACM_MODE_ATCOMMAND   0x2

Definition at line 131 of file ufoma.c.

◆ UMCPC_ACM_MODE_DEACTIVATED

#define UMCPC_ACM_MODE_DEACTIVATED   0x0

Definition at line 129 of file ufoma.c.

◆ UMCPC_ACM_MODE_MODEM

#define UMCPC_ACM_MODE_MODEM   0x1

Definition at line 130 of file ufoma.c.

◆ UMCPC_ACM_MODE_OBEX

#define UMCPC_ACM_MODE_OBEX   0x60

Definition at line 132 of file ufoma.c.

◆ UMCPC_ACM_MODE_UNLINKED

#define UMCPC_ACM_MODE_UNLINKED   0xff

Definition at line 135 of file ufoma.c.

◆ UMCPC_ACM_MODE_VENDOR1

#define UMCPC_ACM_MODE_VENDOR1   0xc0

Definition at line 133 of file ufoma.c.

◆ UMCPC_ACM_MODE_VENDOR2

#define UMCPC_ACM_MODE_VENDOR2   0xfe

Definition at line 134 of file ufoma.c.

◆ UMCPC_ACM_TYPE_AB1

#define UMCPC_ACM_TYPE_AB1   0x1

Definition at line 124 of file ufoma.c.

◆ UMCPC_ACM_TYPE_AB2

#define UMCPC_ACM_TYPE_AB2   0x2

Definition at line 125 of file ufoma.c.

◆ UMCPC_ACM_TYPE_AB5

#define UMCPC_ACM_TYPE_AB5   0x5

Definition at line 126 of file ufoma.c.

◆ UMCPC_ACM_TYPE_AB6

#define UMCPC_ACM_TYPE_AB6   0x6

Definition at line 127 of file ufoma.c.

◆ UMCPC_ACTIVATE_MODE

#define UMCPC_ACTIVATE_MODE   0x60

Definition at line 139 of file ufoma.c.

◆ UMCPC_CLEAR_LINK

#define UMCPC_CLEAR_LINK   0x63

Definition at line 142 of file ufoma.c.

◆ UMCPC_CM_MOBILE_ACM

#define UMCPC_CM_MOBILE_ACM   0x0

Definition at line 137 of file ufoma.c.

◆ UMCPC_GET_MODETABLE

#define UMCPC_GET_MODETABLE   0x61

Definition at line 140 of file ufoma.c.

◆ UMCPC_REQUEST_ACKNOWLEDGE

#define UMCPC_REQUEST_ACKNOWLEDGE   0x31

Definition at line 144 of file ufoma.c.

◆ UMCPC_SET_LINK

#define UMCPC_SET_LINK   0x62

Definition at line 141 of file ufoma.c.

◆ USB_DEBUG_VAR

#define USB_DEBUG_VAR   usb_debug

Definition at line 105 of file ufoma.c.

Typedef Documentation

◆ usb_mcpc_acm_descriptor

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
UFOMA_CTRL_ENDPT_INTR 
UFOMA_CTRL_ENDPT_READ 
UFOMA_CTRL_ENDPT_WRITE 
UFOMA_CTRL_ENDPT_MAX 

Definition at line 151 of file ufoma.c.

◆ anonymous enum

anonymous enum
Enumerator
UFOMA_BULK_ENDPT_WRITE 
UFOMA_BULK_ENDPT_READ 
UFOMA_BULK_ENDPT_MAX 

Definition at line 158 of file ufoma.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ DRIVER_MODULE()

DRIVER_MODULE ( ufoma  ,
uhub  ,
ufoma_driver  ,
ufoma_devclass  ,
NULL  ,
 
)

◆ MODULE_DEPEND() [1/2]

MODULE_DEPEND ( ufoma  ,
ucom  ,
,
,
 
)

◆ MODULE_DEPEND() [2/2]

MODULE_DEPEND ( ufoma  ,
usb  ,
,
,
 
)

◆ MODULE_VERSION()

MODULE_VERSION ( ufoma  ,
 
)

◆ UCOM_UNLOAD_DRAIN()

UCOM_UNLOAD_DRAIN ( ufoma  )

◆ ufoma_attach()

◆ ufoma_bulk_read_callback()

static void ufoma_bulk_read_callback ( struct usb_xfer xfer,
usb_error_t  error 
)
static

◆ ufoma_bulk_write_callback()

static void ufoma_bulk_write_callback ( struct usb_xfer xfer,
usb_error_t  error 
)
static

◆ ufoma_cfg_activate_state()

static void ufoma_cfg_activate_state ( struct ufoma_softc sc,
uint16_t  state 
)
static

◆ ufoma_cfg_close()

static void ufoma_cfg_close ( struct ucom_softc ucom)
static

Definition at line 861 of file ufoma.c.

References ucom_softc::sc_parent, ufoma_cfg_activate_state(), and UMCPC_ACM_MODE_DEACTIVATED.

Here is the call graph for this function:

◆ ufoma_cfg_get_status()

static void ufoma_cfg_get_status ( struct ucom_softc ucom,
uint8_t *  lsr,
uint8_t *  msr 
)
static

Definition at line 896 of file ufoma.c.

References ufoma_softc::sc_lsr, ufoma_softc::sc_msr, and ucom_softc::sc_parent.

◆ ufoma_cfg_link_state()

static void ufoma_cfg_link_state ( struct ufoma_softc sc)
static

◆ ufoma_cfg_open()

static void ufoma_cfg_open ( struct ucom_softc ucom)
static

◆ ufoma_cfg_param()

◆ ufoma_cfg_set_break()

◆ ufoma_cfg_set_dtr()

static void ufoma_cfg_set_dtr ( struct ucom_softc ucom,
uint8_t  onoff 
)
static

Definition at line 926 of file ufoma.c.

References ufoma_softc::sc_line, ufoma_softc::sc_nobulk, ucom_softc::sc_parent, UCDC_LINE_DTR, and ufoma_cfg_set_line_state().

Here is the call graph for this function:

◆ ufoma_cfg_set_line_state()

static void ufoma_cfg_set_line_state ( struct ufoma_softc sc)
static

◆ ufoma_cfg_set_rts()

static void ufoma_cfg_set_rts ( struct ucom_softc ucom,
uint8_t  onoff 
)
static

Definition at line 942 of file ufoma.c.

References ufoma_softc::sc_line, ufoma_softc::sc_nobulk, ucom_softc::sc_parent, UCDC_LINE_RTS, and ufoma_cfg_set_line_state().

Here is the call graph for this function:

◆ ufoma_ctrl_read_callback()

◆ ufoma_ctrl_write_callback()

◆ ufoma_detach()

◆ ufoma_free()

static void ufoma_free ( struct ucom_softc ucom)
static

Definition at line 512 of file ufoma.c.

References ucom_softc::sc_parent, and ufoma_free_softc().

Here is the call graph for this function:

◆ ufoma_free_softc()

static void ufoma_free_softc ( struct ufoma_softc sc)
static

Definition at line 503 of file ufoma.c.

References ufoma_softc::sc_mtx, ufoma_softc::sc_super_ucom, and ucom_unref().

Referenced by ufoma_detach(), and ufoma_free().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ufoma_get_intconf()

static void * ufoma_get_intconf ( struct usb_config_descriptor cd,
struct usb_interface_descriptor id,
uint8_t  type,
uint8_t  subtype 
)
static

Definition at line 518 of file ufoma.c.

References usb_endpoint_descriptor::bDescriptorType, desc, type, UDESC_INTERFACE, and usb_desc_foreach().

Referenced by ufoma_attach(), ufoma_modem_setup(), and ufoma_probe().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ufoma_intr_callback()

◆ ufoma_mode_to_str()

static char * ufoma_mode_to_str ( int  mode)
static

Definition at line 1161 of file ufoma.c.

References umcpc_modetostr_tab::str.

Referenced by ufoma_sysctl_current(), ufoma_sysctl_open(), and ufoma_sysctl_support().

Here is the caller graph for this function:

◆ ufoma_modem_setup()

◆ ufoma_poll()

static void ufoma_poll ( struct ucom_softc ucom)
static

Definition at line 1258 of file ufoma.c.

References ufoma_softc::sc_bulk_xfer, ufoma_softc::sc_ctrl_xfer, ucom_softc::sc_parent, UFOMA_BULK_ENDPT_MAX, UFOMA_CTRL_ENDPT_MAX, and usbd_transfer_poll().

Here is the call graph for this function:

◆ ufoma_pre_param()

static int ufoma_pre_param ( struct ucom_softc ucom,
struct termios *  t 
)
static

Definition at line 958 of file ufoma.c.

◆ ufoma_probe()

◆ ufoma_start_read()

static void ufoma_start_read ( struct ucom_softc ucom)
static

◆ ufoma_start_write()

static void ufoma_start_write ( struct ucom_softc ucom)
static

◆ ufoma_stop_read()

static void ufoma_stop_read ( struct ucom_softc ucom)
static

◆ ufoma_stop_write()

static void ufoma_stop_write ( struct ucom_softc ucom)
static

◆ ufoma_str_to_mode()

static int ufoma_str_to_mode ( char *  str)
static

Definition at line 1172 of file ufoma.c.

References umcpc_modetostr_tab::mode, and umcpc_modetostr_tab::str.

Referenced by ufoma_sysctl_open().

Here is the caller graph for this function:

◆ ufoma_sysctl_current()

static int ufoma_sysctl_current ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 1208 of file ufoma.c.

References req, ufoma_softc::sc_currentmode, and ufoma_mode_to_str().

Referenced by ufoma_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ufoma_sysctl_open()

static int ufoma_sysctl_open ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 1223 of file ufoma.c.

References error, req, ufoma_softc::sc_modetable, ufoma_softc::sc_modetoactivate, ufoma_mode_to_str(), and ufoma_str_to_mode().

Referenced by ufoma_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ufoma_sysctl_support()

static int ufoma_sysctl_support ( SYSCTL_HANDLER_ARGS  )
static

Definition at line 1183 of file ufoma.c.

References req, ufoma_softc::sc_modetable, and ufoma_mode_to_str().

Referenced by ufoma_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ USB_PNP_HOST_INFO()

USB_PNP_HOST_INFO ( ufoma_devs  )

Variable Documentation

◆ ufoma_attach

device_attach_t ufoma_attach
static

Definition at line 197 of file ufoma.c.

◆ ufoma_bulk_config

const struct usb_config ufoma_bulk_config[UFOMA_BULK_ENDPT_MAX]
static
Initial value:
= {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
.bufsize = UFOMA_BULK_BUF_SIZE,
.flags = {.pipe_bof = 1,.force_short_xfer = 1,},
},
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
.bufsize = UFOMA_BULK_BUF_SIZE,
.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
},
}
#define UFOMA_BULK_BUF_SIZE
Definition: ufoma.c:149
static usb_callback_t ufoma_bulk_read_callback
Definition: ufoma.c:205
static usb_callback_t ufoma_bulk_write_callback
Definition: ufoma.c:204
@ UFOMA_BULK_ENDPT_READ
Definition: ufoma.c:160
@ UFOMA_BULK_ENDPT_WRITE
Definition: ufoma.c:159
#define UE_ADDR_ANY
Definition: usb.h:537
#define UE_BULK
Definition: usb.h:543
#define UE_DIR_IN
Definition: usb.h:531
#define UE_DIR_OUT
Definition: usb.h:532

Definition at line 266 of file ufoma.c.

Referenced by ufoma_modem_setup().

◆ ufoma_bulk_read_callback

usb_callback_t ufoma_bulk_read_callback
static

Definition at line 205 of file ufoma.c.

◆ ufoma_bulk_write_callback

usb_callback_t ufoma_bulk_write_callback
static

Definition at line 204 of file ufoma.c.

◆ ufoma_callback

const struct ucom_callback ufoma_callback
static
Initial value:
= {
.ucom_cfg_get_status = &ufoma_cfg_get_status,
.ucom_cfg_set_dtr = &ufoma_cfg_set_dtr,
.ucom_cfg_set_rts = &ufoma_cfg_set_rts,
.ucom_cfg_set_break = &ufoma_cfg_set_break,
.ucom_cfg_param = &ufoma_cfg_param,
.ucom_cfg_open = &ufoma_cfg_open,
.ucom_cfg_close = &ufoma_cfg_close,
.ucom_pre_param = &ufoma_pre_param,
.ucom_start_read = &ufoma_start_read,
.ucom_stop_read = &ufoma_stop_read,
.ucom_start_write = &ufoma_start_write,
.ucom_stop_write = &ufoma_stop_write,
.ucom_poll = &ufoma_poll,
.ucom_free = &ufoma_free,
}
static void ufoma_cfg_set_dtr(struct ucom_softc *, uint8_t)
Definition: ufoma.c:926
static void ufoma_start_read(struct ucom_softc *)
Definition: ufoma.c:1092
static int ufoma_pre_param(struct ucom_softc *, struct termios *)
Definition: ufoma.c:958
static void ufoma_stop_read(struct ucom_softc *)
Definition: ufoma.c:1108
static void ufoma_start_write(struct ucom_softc *)
Definition: ufoma.c:1124
static void ufoma_cfg_set_break(struct ucom_softc *, uint8_t)
Definition: ufoma.c:869
static void ufoma_cfg_get_status(struct ucom_softc *, uint8_t *, uint8_t *)
Definition: ufoma.c:896
static void ufoma_cfg_close(struct ucom_softc *)
Definition: ufoma.c:861
static void ufoma_stop_write(struct ucom_softc *)
Definition: ufoma.c:1136
static void ufoma_free(struct ucom_softc *)
Definition: ufoma.c:512
static void ufoma_cfg_open(struct ucom_softc *)
Definition: ufoma.c:843
static void ufoma_cfg_set_rts(struct ucom_softc *, uint8_t)
Definition: ufoma.c:942
static void ufoma_cfg_param(struct ucom_softc *, struct termios *)
Definition: ufoma.c:964
static void ufoma_poll(struct ucom_softc *ucom)
Definition: ufoma.c:1258

Definition at line 286 of file ufoma.c.

Referenced by ufoma_attach().

◆ ufoma_ctrl_config

const struct usb_config ufoma_ctrl_config[UFOMA_CTRL_ENDPT_MAX]
static
Initial value:
= {
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
.bufsize = sizeof(struct usb_cdc_notification),
.callback = &ufoma_intr_callback,
},
.type = UE_CONTROL,
.endpoint = 0x00,
.direction = UE_DIR_ANY,
.bufsize = (sizeof(struct usb_device_request) + UFOMA_CMD_BUF_SIZE),
.flags = {.short_xfer_ok = 1,},
.timeout = 1000,
},
.type = UE_CONTROL,
.endpoint = 0x00,
.direction = UE_DIR_ANY,
.bufsize = (sizeof(struct usb_device_request) + 1),
.timeout = 1000,
},
}
#define UFOMA_CMD_BUF_SIZE
Definition: ufoma.c:147
static usb_callback_t ufoma_ctrl_read_callback
Definition: ufoma.c:201
@ UFOMA_CTRL_ENDPT_INTR
Definition: ufoma.c:152
@ UFOMA_CTRL_ENDPT_READ
Definition: ufoma.c:153
@ UFOMA_CTRL_ENDPT_WRITE
Definition: ufoma.c:154
static usb_callback_t ufoma_ctrl_write_callback
Definition: ufoma.c:202
static usb_callback_t ufoma_intr_callback
Definition: ufoma.c:203
#define UE_INTERRUPT
Definition: usb.h:544
#define UE_DIR_ANY
Definition: usb.h:535
#define UE_CONTROL
Definition: usb.h:541

Definition at line 235 of file ufoma.c.

Referenced by ufoma_attach().

◆ ufoma_ctrl_read_callback

usb_callback_t ufoma_ctrl_read_callback
static

Definition at line 201 of file ufoma.c.

◆ ufoma_ctrl_write_callback

usb_callback_t ufoma_ctrl_write_callback
static

Definition at line 202 of file ufoma.c.

◆ ufoma_detach

device_detach_t ufoma_detach
static

Definition at line 198 of file ufoma.c.

Referenced by ufoma_attach().

◆ ufoma_devclass

devclass_t ufoma_devclass
static

Definition at line 311 of file ufoma.c.

◆ ufoma_devs

const STRUCT_USB_HOST_ID ufoma_devs[]
static
Initial value:
= {
}
#define UISUBCLASS_MCPC
Definition: ufoma.c:119
#define UICLASS_CDC
Definition: usb.h:434
#define USB_IFACE_SUBCLASS(isc)
Definition: usbdi.h:388
#define USB_IFACE_CLASS(ic)
Definition: usbdi.h:385

Definition at line 319 of file ufoma.c.

Referenced by ufoma_probe().

◆ ufoma_driver

driver_t ufoma_driver
static
Initial value:
= {
.name = "ufoma",
.methods = ufoma_methods,
.size = sizeof(struct ufoma_softc),
}
static device_method_t ufoma_methods[]
Definition: ufoma.c:303

Definition at line 313 of file ufoma.c.

◆ ufoma_intr_callback

usb_callback_t ufoma_intr_callback
static

Definition at line 203 of file ufoma.c.

◆ ufoma_methods

device_method_t ufoma_methods[]
static
Initial value:
= {
DEVMETHOD(device_probe, ufoma_probe),
DEVMETHOD(device_attach, ufoma_attach),
DEVMETHOD(device_detach, ufoma_detach),
DEVMETHOD_END
}
static device_probe_t ufoma_probe
Definition: ufoma.c:196
static device_detach_t ufoma_detach
Definition: ufoma.c:198
static device_attach_t ufoma_attach
Definition: ufoma.c:197

Definition at line 303 of file ufoma.c.

◆ ufoma_probe

device_probe_t ufoma_probe
static

Definition at line 196 of file ufoma.c.

◆ umcpc_modetostr_tab

Initial value:
={
{UMCPC_ACM_MODE_DEACTIVATED, "deactivated"},
{UMCPC_ACM_MODE_ATCOMMAND, "handsfree"},
{UMCPC_ACM_MODE_VENDOR1, "vendor1"},
{UMCPC_ACM_MODE_VENDOR2, "vendor2"},
{UMCPC_ACM_MODE_UNLINKED, "unlinked"},
{0, NULL}
}
#define UMCPC_ACM_MODE_UNLINKED
Definition: ufoma.c:135
#define UMCPC_ACM_MODE_VENDOR2
Definition: ufoma.c:134
#define UMCPC_ACM_MODE_MODEM
Definition: ufoma.c:130
#define UMCPC_ACM_MODE_DEACTIVATED
Definition: ufoma.c:129
#define UMCPC_ACM_MODE_VENDOR1
Definition: ufoma.c:133
#define UMCPC_ACM_MODE_OBEX
Definition: ufoma.c:132
#define UMCPC_ACM_MODE_ATCOMMAND
Definition: ufoma.c:131