Format and wrap function declarations.

This commit is contained in:
thompsa 2008-12-11 23:13:02 +00:00
parent 4014de0d1b
commit f0bc2443fb
66 changed files with 1058 additions and 776 deletions

View File

@ -193,10 +193,10 @@ static usb2_callback_t ubt_bulk_write_clear_stall_callback;
static usb2_callback_t ubt_isoc_read_callback;
static usb2_callback_t ubt_isoc_write_callback;
static int ubt_modevent(module_t mod, int event, void *data);
static void ubt_intr_read_complete(node_p node, hook_p hook, void *arg1, int arg2);
static void ubt_bulk_read_complete(node_p node, hook_p hook, void *arg1, int arg2);
static void ubt_isoc_read_complete(node_p node, hook_p hook, void *arg1, int arg2);
static int ubt_modevent(module_t, int, void *);
static void ubt_intr_read_complete(node_p, hook_p, void *, int);
static void ubt_bulk_read_complete(node_p, hook_p, void *, int);
static void ubt_isoc_read_complete(node_p, hook_p, void *, int);
/* USB config */
static const struct usb2_config ubt_config_if_0[UBT_IF_0_N_TRANSFER] = {

View File

@ -99,10 +99,10 @@ static at91dci_cmd_t at91dci_setup_rx;
static at91dci_cmd_t at91dci_data_rx;
static at91dci_cmd_t at91dci_data_tx;
static at91dci_cmd_t at91dci_data_tx_sync;
static void at91dci_device_done(struct usb2_xfer *xfer, usb2_error_t error);
static void at91dci_do_poll(struct usb2_bus *bus);
static void at91dci_root_ctrl_poll(struct at91dci_softc *sc);
static void at91dci_standard_done(struct usb2_xfer *xfer);
static void at91dci_device_done(struct usb2_xfer *, usb2_error_t);
static void at91dci_do_poll(struct usb2_bus *);
static void at91dci_root_ctrl_poll(struct at91dci_softc *);
static void at91dci_standard_done(struct usb2_xfer *);
static usb2_sw_transfer_func_t at91dci_root_intr_done;
static usb2_sw_transfer_func_t at91dci_root_ctrl_done;

View File

@ -93,11 +93,11 @@ static musbotg_cmd_t musbotg_setup_data_tx;
static musbotg_cmd_t musbotg_setup_status;
static musbotg_cmd_t musbotg_data_rx;
static musbotg_cmd_t musbotg_data_tx;
static void musbotg_device_done(struct usb2_xfer *xfer, usb2_error_t error);
static void musbotg_do_poll(struct usb2_bus *bus);
static void musbotg_root_ctrl_poll(struct musbotg_softc *sc);
static void musbotg_standard_done(struct usb2_xfer *xfer);
static void musbotg_interrupt_poll(struct musbotg_softc *sc);
static void musbotg_device_done(struct usb2_xfer *, usb2_error_t);
static void musbotg_do_poll(struct usb2_bus *);
static void musbotg_root_ctrl_poll(struct musbotg_softc *);
static void musbotg_standard_done(struct usb2_xfer *);
static void musbotg_interrupt_poll(struct musbotg_softc *);
static usb2_sw_transfer_func_t musbotg_root_intr_done;
static usb2_sw_transfer_func_t musbotg_root_ctrl_done;

View File

@ -139,13 +139,13 @@ extern struct usb2_pipe_methods uhci_root_ctrl_methods;
extern struct usb2_pipe_methods uhci_root_intr_methods;
static usb2_config_td_command_t uhci_root_ctrl_task;
static void uhci_root_ctrl_poll(struct uhci_softc *sc);
static void uhci_do_poll(struct usb2_bus *bus);
static void uhci_device_done(struct usb2_xfer *xfer, usb2_error_t error);
static void uhci_transfer_intr_enqueue(struct usb2_xfer *xfer);
static void uhci_root_intr_check(void *arg);
static void uhci_timeout(void *arg);
static uint8_t uhci_check_transfer(struct usb2_xfer *xfer);
static void uhci_root_ctrl_poll(struct uhci_softc *);
static void uhci_do_poll(struct usb2_bus *);
static void uhci_device_done(struct usb2_xfer *, usb2_error_t);
static void uhci_transfer_intr_enqueue(struct usb2_xfer *);
static void uhci_root_intr_check(void *);
static void uhci_timeout(void *);
static uint8_t uhci_check_transfer(struct usb2_xfer *);
void
uhci_iterate_hw_softc(struct usb2_bus *bus, usb2_bus_mem_sub_cb_t *cb)

View File

@ -48,11 +48,17 @@ static device_probe_t usb2_probe;
static device_attach_t usb2_attach;
static device_detach_t usb2_detach;
static void usb2_attach_sub(device_t dev, struct usb2_bus *bus);
static void usb2_post_init(void *arg);
static void usb2_bus_mem_flush_all_cb(struct usb2_bus *bus, struct usb2_page_cache *pc, struct usb2_page *pg, uint32_t size, uint32_t align);
static void usb2_bus_mem_alloc_all_cb(struct usb2_bus *bus, struct usb2_page_cache *pc, struct usb2_page *pg, uint32_t size, uint32_t align);
static void usb2_bus_mem_free_all_cb(struct usb2_bus *bus, struct usb2_page_cache *pc, struct usb2_page *pg, uint32_t size, uint32_t align);
static void usb2_attach_sub(device_t, struct usb2_bus *);
static void usb2_post_init(void *);
static void usb2_bus_mem_flush_all_cb(struct usb2_bus *,
struct usb2_page_cache *, struct usb2_page *, uint32_t,
uint32_t);
static void usb2_bus_mem_alloc_all_cb(struct usb2_bus *,
struct usb2_page_cache *, struct usb2_page *, uint32_t,
uint32_t);
static void usb2_bus_mem_free_all_cb(struct usb2_bus *,
struct usb2_page_cache *, struct usb2_page *, uint32_t,
uint32_t);
/* static variables */

View File

@ -88,12 +88,13 @@ static uss820dci_cmd_t uss820dci_setup_rx;
static uss820dci_cmd_t uss820dci_data_rx;
static uss820dci_cmd_t uss820dci_data_tx;
static uss820dci_cmd_t uss820dci_data_tx_sync;
static void uss820dci_device_done(struct usb2_xfer *xfer, usb2_error_t error);
static void uss820dci_do_poll(struct usb2_bus *bus);
static void uss820dci_root_ctrl_poll(struct uss820dci_softc *sc);
static void uss820dci_standard_done(struct usb2_xfer *xfer);
static void uss820dci_intr_set(struct usb2_xfer *xfer, uint8_t set);
static void uss820dci_update_shared_1(struct uss820dci_softc *sc, uint8_t reg, uint8_t keep_mask, uint8_t set_mask);
static void uss820dci_device_done(struct usb2_xfer *, usb2_error_t);
static void uss820dci_do_poll(struct usb2_bus *);
static void uss820dci_root_ctrl_poll(struct uss820dci_softc *);
static void uss820dci_standard_done(struct usb2_xfer *);
static void uss820dci_intr_set(struct usb2_xfer *, uint8_t);
static void uss820dci_update_shared_1(struct uss820dci_softc *, uint8_t,
uint8_t, uint8_t);
static usb2_sw_transfer_func_t uss820dci_root_intr_done;
static usb2_sw_transfer_func_t uss820dci_root_ctrl_done;

View File

@ -39,22 +39,22 @@
#include <dev/usb2/controller/usb2_controller.h>
#include <dev/usb2/controller/usb2_bus.h>
static void usb2_dma_tag_create(struct usb2_dma_tag *udt, uint32_t size, uint32_t align);
static void usb2_dma_tag_destroy(struct usb2_dma_tag *udt);
static void usb2_dma_tag_create(struct usb2_dma_tag *, uint32_t, uint32_t);
static void usb2_dma_tag_destroy(struct usb2_dma_tag *);
#ifdef __FreeBSD__
static void usb2_dma_lock_cb(void *arg, bus_dma_lock_op_t op);
static int32_t usb2_m_copy_in_cb(void *arg, void *src, uint32_t count);
static void usb2_pc_alloc_mem_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error);
static void usb2_pc_load_mem_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error);
static void usb2_pc_common_mem_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error, uint8_t isload);
static void usb2_dma_lock_cb(void *, bus_dma_lock_op_t);
static int32_t usb2_m_copy_in_cb(void *, void *, uint32_t);
static void usb2_pc_alloc_mem_cb(void *, bus_dma_segment_t *, int, int);
static void usb2_pc_load_mem_cb(void *, bus_dma_segment_t *, int, int);
static void usb2_pc_common_mem_cb(void *, bus_dma_segment_t *, int, int,
uint8_t);
#endif
#ifdef __NetBSD__
static int32_t usb2_m_copy_in_cb(void *arg, caddr_t src, uint32_t count);
static void usb2_pc_common_mem_cb(struct usb2_page_cache *pc, bus_dma_segment_t *segs, int nseg, int error, uint8_t isload);
static int32_t usb2_m_copy_in_cb(void *, caddr_t, uint32_t);
static void usb2_pc_common_mem_cb(struct usb2_page_cache *,
bus_dma_segment_t *, int, int, uint8_t);
#endif
/*------------------------------------------------------------------------*

View File

@ -143,24 +143,38 @@ struct usb2_dma_tag {
/* function prototypes */
int usb2_uiomove(struct usb2_page_cache *pc, struct uio *uio, uint32_t pc_offset, uint32_t len);
struct usb2_dma_tag *usb2_dma_tag_find(struct usb2_dma_parent_tag *udpt, uint32_t size, uint32_t align);
uint8_t usb2_pc_alloc_mem(struct usb2_page_cache *pc, struct usb2_page *pg, uint32_t size, uint32_t align);
int usb2_uiomove(struct usb2_page_cache *pc, struct uio *uio,
uint32_t pc_offset, uint32_t len);
struct usb2_dma_tag *usb2_dma_tag_find(struct usb2_dma_parent_tag *udpt,
uint32_t size, uint32_t align);
uint8_t usb2_pc_alloc_mem(struct usb2_page_cache *pc, struct usb2_page *pg,
uint32_t size, uint32_t align);
uint8_t usb2_pc_dmamap_create(struct usb2_page_cache *pc, uint32_t size);
uint8_t usb2_pc_load_mem(struct usb2_page_cache *pc, uint32_t size, uint8_t sync);
uint8_t usb2_pc_load_mem(struct usb2_page_cache *pc, uint32_t size,
uint8_t sync);
void usb2_bdma_done_event(struct usb2_dma_parent_tag *udpt);
void usb2_bdma_post_sync(struct usb2_xfer *xfer);
void usb2_bdma_pre_sync(struct usb2_xfer *xfer);
void usb2_bdma_work_loop(struct usb2_xfer_queue *pq);
void usb2_bzero(struct usb2_page_cache *cache, uint32_t offset, uint32_t len);
void usb2_copy_in(struct usb2_page_cache *cache, uint32_t offset, const void *ptr, uint32_t len);
int usb2_copy_in_user(struct usb2_page_cache *cache, uint32_t offset, const void *ptr, uint32_t len);
void usb2_copy_out(struct usb2_page_cache *cache, uint32_t offset, void *ptr, uint32_t len);
int usb2_copy_out_user(struct usb2_page_cache *cache, uint32_t offset, void *ptr, uint32_t len);
void usb2_dma_tag_setup(struct usb2_dma_parent_tag *udpt, struct usb2_dma_tag *udt, bus_dma_tag_t dmat, struct mtx *mtx, usb2_dma_callback_t *func, struct usb2_xfer_root *info, uint8_t ndmabits, uint8_t nudt);
void usb2_bzero(struct usb2_page_cache *cache, uint32_t offset,
uint32_t len);
void usb2_copy_in(struct usb2_page_cache *cache, uint32_t offset,
const void *ptr, uint32_t len);
int usb2_copy_in_user(struct usb2_page_cache *cache, uint32_t offset,
const void *ptr, uint32_t len);
void usb2_copy_out(struct usb2_page_cache *cache, uint32_t offset,
void *ptr, uint32_t len);
int usb2_copy_out_user(struct usb2_page_cache *cache, uint32_t offset,
void *ptr, uint32_t len);
void usb2_dma_tag_setup(struct usb2_dma_parent_tag *udpt,
struct usb2_dma_tag *udt, bus_dma_tag_t dmat, struct mtx *mtx,
usb2_dma_callback_t *func, struct usb2_xfer_root *info,
uint8_t ndmabits, uint8_t nudt);
void usb2_dma_tag_unsetup(struct usb2_dma_parent_tag *udpt);
void usb2_get_page(struct usb2_page_cache *pc, uint32_t offset, struct usb2_page_search *res);
void usb2_m_copy_in(struct usb2_page_cache *cache, uint32_t dst_offset, struct mbuf *m, uint32_t src_offset, uint32_t src_len);
void usb2_get_page(struct usb2_page_cache *pc, uint32_t offset,
struct usb2_page_search *res);
void usb2_m_copy_in(struct usb2_page_cache *cache, uint32_t dst_offset,
struct mbuf *m, uint32_t src_offset, uint32_t src_len);
void usb2_pc_cpu_flush(struct usb2_page_cache *pc);
void usb2_pc_cpu_invalidate(struct usb2_page_cache *pc);
void usb2_pc_dmamap_destroy(struct usb2_page_cache *pc);

View File

@ -67,14 +67,17 @@ static usb2_callback_t usb_linux_non_isoc_callback;
static usb_complete_t usb_linux_wait_complete;
static uint16_t usb_max_isoc_frames(struct usb_device *dev);
static int usb_start_wait_urb(struct urb *urb, uint32_t timeout, uint16_t *p_actlen);
static const struct usb_device_id *usb_linux_lookup_id(const struct usb_device_id *id, struct usb2_attach_arg *uaa);
static struct usb_driver *usb_linux_get_usb_driver(struct usb_linux_softc *sc);
static struct usb_device *usb_linux_create_usb_device(struct usb2_device *udev, device_t dev);
static void usb_linux_cleanup_interface(struct usb_device *dev, struct usb_interface *iface);
static void usb_linux_complete(struct usb2_xfer *xfer);
static int usb_unlink_urb_sub(struct urb *urb, uint8_t drain);
static uint16_t usb_max_isoc_frames(struct usb_device *);
static int usb_start_wait_urb(struct urb *, uint32_t, uint16_t *);
static const struct usb_device_id *usb_linux_lookup_id(
const struct usb_device_id *, struct usb2_attach_arg *);
static struct usb_driver *usb_linux_get_usb_driver(struct usb_linux_softc *);
static struct usb_device *usb_linux_create_usb_device(struct usb2_device *,
device_t);
static void usb_linux_cleanup_interface(struct usb_device *,
struct usb_interface *);
static void usb_linux_complete(struct usb2_xfer *);
static int usb_unlink_urb_sub(struct urb *, uint8_t);
/*------------------------------------------------------------------------*
* FreeBSD USB interface

View File

@ -439,16 +439,23 @@ struct urb {
int usb_submit_urb(struct urb *urb, uint16_t mem_flags);
int usb_unlink_urb(struct urb *urb);
int usb_clear_halt(struct usb_device *dev, struct usb_host_endpoint *uhe);
int usb_control_msg(struct usb_device *dev, struct usb_host_endpoint *pipe, uint8_t request, uint8_t requesttype, uint16_t value, uint16_t index, void *data, uint16_t size, uint32_t timeout);
int usb_set_interface(struct usb_device *dev, uint8_t ifnum, uint8_t alternate);
int usb_setup_endpoint(struct usb_device *dev, struct usb_host_endpoint *uhe, uint32_t bufsize);
int usb_control_msg(struct usb_device *dev, struct usb_host_endpoint *pipe,
uint8_t request, uint8_t requesttype, uint16_t value,
uint16_t index, void *data, uint16_t size, uint32_t timeout);
int usb_set_interface(struct usb_device *dev, uint8_t ifnum,
uint8_t alternate);
int usb_setup_endpoint(struct usb_device *dev,
struct usb_host_endpoint *uhe, uint32_t bufsize);
struct usb_host_endpoint *usb_find_host_endpoint(struct usb_device *dev, uint8_t type, uint8_t ep);
struct usb_host_endpoint *usb_find_host_endpoint(struct usb_device *dev,
uint8_t type, uint8_t ep);
struct urb *usb_alloc_urb(uint16_t iso_packets, uint16_t mem_flags);
struct usb_host_interface *usb_altnum_to_altsetting(const struct usb_interface *intf, uint8_t alt_index);
struct usb_host_interface *usb_altnum_to_altsetting(
const struct usb_interface *intf, uint8_t alt_index);
struct usb_interface *usb_ifnum_to_if(struct usb_device *dev, uint8_t iface_no);
void *usb_buffer_alloc(struct usb_device *dev, uint32_t size, uint16_t mem_flags, uint8_t *dma_addr);
void *usb_buffer_alloc(struct usb_device *dev, uint32_t size,
uint16_t mem_flags, uint8_t *dma_addr);
void *usb_get_intfdata(struct usb_interface *intf);
void usb_buffer_free(struct usb_device *dev, uint32_t size, void *addr, uint8_t dma_addr);

View File

@ -60,10 +60,15 @@ struct usb2_config_td {
/* prototypes */
uint8_t usb2_config_td_setup(struct usb2_config_td *ctd, void *priv_sc, struct mtx *priv_mtx, usb2_config_td_end_of_commands_t *p_func_eoc, uint16_t item_size, uint16_t item_count);
uint8_t usb2_config_td_setup(struct usb2_config_td *ctd, void *priv_sc,
struct mtx *priv_mtx, usb2_config_td_end_of_commands_t *p_func_eoc,
uint16_t item_size, uint16_t item_count);
void usb2_config_td_drain(struct usb2_config_td *ctd);
void usb2_config_td_unsetup(struct usb2_config_td *ctd);
void usb2_config_td_queue_command(struct usb2_config_td *ctd, usb2_config_td_command_t *pre_func, usb2_config_td_command_t *post_func, uint16_t command_sync, uint16_t command_ref);
void usb2_config_td_queue_command(struct usb2_config_td *ctd,
usb2_config_td_command_t *pre_func,
usb2_config_td_command_t *post_func, uint16_t command_sync,
uint16_t command_ref);
uint8_t usb2_config_td_is_gone(struct usb2_config_td *ctd);
uint8_t usb2_config_td_sleep(struct usb2_config_td *ctd, uint32_t timeout);
uint8_t usb2_config_td_sync(struct usb2_config_td *ctd);

View File

@ -426,17 +426,28 @@ typedef struct malloc_type *usb2_malloc_type;
/* prototypes */
const char *usb2_errstr(usb2_error_t error);
struct usb2_config_descriptor *usb2_get_config_descriptor(struct usb2_device *udev);
struct usb2_device_descriptor *usb2_get_device_descriptor(struct usb2_device *udev);
struct usb2_interface *usb2_get_iface(struct usb2_device *udev, uint8_t iface_index);
struct usb2_interface_descriptor *usb2_get_interface_descriptor(struct usb2_interface *iface);
uint8_t usb2_clear_stall_callback(struct usb2_xfer *xfer1, struct usb2_xfer *xfer2);
struct usb2_config_descriptor *usb2_get_config_descriptor(
struct usb2_device *udev);
struct usb2_device_descriptor *usb2_get_device_descriptor(
struct usb2_device *udev);
struct usb2_interface *usb2_get_iface(struct usb2_device *udev,
uint8_t iface_index);
struct usb2_interface_descriptor *usb2_get_interface_descriptor(
struct usb2_interface *iface);
uint8_t usb2_clear_stall_callback(struct usb2_xfer *xfer1,
struct usb2_xfer *xfer2);
uint8_t usb2_get_interface_altindex(struct usb2_interface *iface);
usb2_error_t usb2_set_alt_interface_index(struct usb2_device *udev, uint8_t iface_index, uint8_t alt_index);
usb2_error_t usb2_set_alt_interface_index(struct usb2_device *udev,
uint8_t iface_index, uint8_t alt_index);
uint8_t usb2_get_speed(struct usb2_device *udev);
usb2_error_t usb2_transfer_setup(struct usb2_device *udev, const uint8_t *ifaces, struct usb2_xfer **pxfer, const struct usb2_config *setup_start, uint16_t n_setup, void *priv_sc, struct mtx *priv_mtx);
void usb2_set_frame_data(struct usb2_xfer *xfer, void *ptr, uint32_t frindex);
void usb2_set_frame_offset(struct usb2_xfer *xfer, uint32_t offset, uint32_t frindex);
usb2_error_t usb2_transfer_setup(struct usb2_device *udev,
const uint8_t *ifaces, struct usb2_xfer **pxfer,
const struct usb2_config *setup_start, uint16_t n_setup,
void *priv_sc, struct mtx *priv_mtx);
void usb2_set_frame_data(struct usb2_xfer *xfer, void *ptr,
uint32_t frindex);
void usb2_set_frame_offset(struct usb2_xfer *xfer, uint32_t offset,
uint32_t frindex);
void usb2_start_hardware(struct usb2_xfer *xfer);
void usb2_transfer_clear_stall(struct usb2_xfer *xfer);
void usb2_transfer_drain(struct usb2_xfer *xfer);
@ -444,10 +455,13 @@ void usb2_transfer_set_stall(struct usb2_xfer *xfer);
void usb2_transfer_start(struct usb2_xfer *xfer);
void usb2_transfer_stop(struct usb2_xfer *xfer);
void usb2_transfer_unsetup(struct usb2_xfer **pxfer, uint16_t n_setup);
usb2_error_t usb2_ref_device(struct file *fp, struct usb2_location *ploc, uint32_t devloc);
usb2_error_t usb2_ref_device(struct file *fp, struct usb2_location *ploc,
uint32_t devloc);
void usb2_unref_device(struct usb2_location *ploc);
void usb2_set_parent_iface(struct usb2_device *udev, uint8_t iface_index, uint8_t parent_index);
void usb2_set_iface_perm(struct usb2_device *udev, uint8_t iface_index, uint32_t uid, uint32_t gid, uint16_t mode);
void usb2_set_parent_iface(struct usb2_device *udev, uint8_t iface_index,
uint8_t parent_index);
void usb2_set_iface_perm(struct usb2_device *udev, uint8_t iface_index,
uint32_t uid, uint32_t gid, uint16_t mode);
uint8_t usb2_get_bus_index(struct usb2_device *udev);
uint8_t usb2_get_device_index(struct usb2_device *udev);

View File

@ -72,19 +72,22 @@ SYSCTL_INT(_hw_usb2_dev, OID_AUTO, debug, CTLFLAG_RW,
/* prototypes */
static uint32_t usb2_path_convert_one(const char **pp);
static uint32_t usb2_path_convert(const char *path);
static int usb2_check_access(int fflags, struct usb2_perm *puser);
static int usb2_fifo_open(struct usb2_fifo *f, struct file *fp, struct thread *td, int fflags);
static void usb2_fifo_close(struct usb2_fifo *f, struct thread *td, int fflags);
static void usb2_dev_init(void *arg);
static void usb2_dev_init_post(void *arg);
static void usb2_dev_uninit(void *arg);
static int usb2_fifo_uiomove(struct usb2_fifo *f, void *cp, int n, struct uio *uio);
static void usb2_fifo_check_methods(struct usb2_fifo_methods *pm);
static void usb2_clone(void *arg, USB_UCRED char *name, int namelen, struct cdev **dev);
static struct usb2_fifo *usb2_fifo_alloc(void);
static struct usb2_pipe *usb2_dev_get_pipe(struct usb2_device *udev, uint8_t iface_index, uint8_t ep_index, uint8_t dir);
static uint32_t usb2_path_convert_one(const char **);
static uint32_t usb2_path_convert(const char *);
static int usb2_check_access(int, struct usb2_perm *);
static int usb2_fifo_open(struct usb2_fifo *, struct file *,
struct thread *, int);
static void usb2_fifo_close(struct usb2_fifo *, struct thread *, int);
static void usb2_dev_init(void *);
static void usb2_dev_init_post(void *);
static void usb2_dev_uninit(void *);
static int usb2_fifo_uiomove(struct usb2_fifo *, void *, int,
struct uio *);
static void usb2_fifo_check_methods(struct usb2_fifo_methods *);
static void usb2_clone(void *, USB_UCRED char *, int, struct cdev **);
static struct usb2_fifo *usb2_fifo_alloc(void);
static struct usb2_pipe *usb2_dev_get_pipe(struct usb2_device *, uint8_t,
uint8_t, uint8_t);
static d_fdopen_t usb2_fdopen;
static d_close_t usb2_close;

View File

@ -130,27 +130,39 @@ struct usb2_fifo_sc {
int usb2_fifo_wait(struct usb2_fifo *fifo);
void usb2_fifo_signal(struct usb2_fifo *fifo);
int usb2_fifo_alloc_buffer(struct usb2_fifo *f, uint32_t bufsize, uint16_t nbuf);
int usb2_fifo_alloc_buffer(struct usb2_fifo *f, uint32_t bufsize,
uint16_t nbuf);
void usb2_fifo_free_buffer(struct usb2_fifo *f);
int usb2_fifo_attach(struct usb2_device *udev, void *priv_sc, struct mtx *priv_mtx, struct usb2_fifo_methods *pm, struct usb2_fifo_sc *f_sc, uint16_t unit, uint16_t subunit, uint8_t iface_index);
int usb2_fifo_attach(struct usb2_device *udev, void *priv_sc,
struct mtx *priv_mtx, struct usb2_fifo_methods *pm,
struct usb2_fifo_sc *f_sc, uint16_t unit, uint16_t subunit,
uint8_t iface_index);
void usb2_fifo_detach(struct usb2_fifo_sc *f_sc);
uint32_t usb2_fifo_put_bytes_max(struct usb2_fifo *fifo);
void usb2_fifo_put_data(struct usb2_fifo *fifo, struct usb2_page_cache *pc, uint32_t offset, uint32_t len, uint8_t what);
void usb2_fifo_put_data_linear(struct usb2_fifo *fifo, void *ptr, uint32_t len, uint8_t what);
void usb2_fifo_put_data(struct usb2_fifo *fifo, struct usb2_page_cache *pc,
uint32_t offset, uint32_t len, uint8_t what);
void usb2_fifo_put_data_linear(struct usb2_fifo *fifo, void *ptr,
uint32_t len, uint8_t what);
uint8_t usb2_fifo_put_data_buffer(struct usb2_fifo *f, void *ptr, uint32_t len);
void usb2_fifo_put_data_error(struct usb2_fifo *fifo);
uint8_t usb2_fifo_get_data(struct usb2_fifo *fifo, struct usb2_page_cache *pc, uint32_t offset, uint32_t len, uint32_t *actlen, uint8_t what);
uint8_t usb2_fifo_get_data_linear(struct usb2_fifo *fifo, void *ptr, uint32_t len, uint32_t *actlen, uint8_t what);
uint8_t usb2_fifo_get_data_buffer(struct usb2_fifo *f, void **pptr, uint32_t *plen);
uint8_t usb2_fifo_get_data(struct usb2_fifo *fifo, struct usb2_page_cache *pc,
uint32_t offset, uint32_t len, uint32_t *actlen, uint8_t what);
uint8_t usb2_fifo_get_data_linear(struct usb2_fifo *fifo, void *ptr,
uint32_t len, uint32_t *actlen, uint8_t what);
uint8_t usb2_fifo_get_data_buffer(struct usb2_fifo *f, void **pptr,
uint32_t *plen);
void usb2_fifo_get_data_error(struct usb2_fifo *fifo);
uint8_t usb2_fifo_opened(struct usb2_fifo *fifo);
void usb2_fifo_free(struct usb2_fifo *f);
void usb2_fifo_reset(struct usb2_fifo *f);
int usb2_check_thread_perm(struct usb2_device *udev, struct thread *td, int fflags, uint8_t iface_index, uint8_t ep_index);
int usb2_check_thread_perm(struct usb2_device *udev, struct thread *td,
int fflags, uint8_t iface_index, uint8_t ep_index);
void usb2_fifo_wakeup(struct usb2_fifo *f);
struct usb2_symlink *usb2_alloc_symlink(const char *target, const char *fmt,...);
struct usb2_symlink *usb2_alloc_symlink(const char *target,
const char *fmt,...);
void usb2_free_symlink(struct usb2_symlink *ps);
uint32_t usb2_lookup_symlink(const char *src_ptr, uint8_t src_len);
int usb2_read_symlink(uint8_t *user_ptr, uint32_t startentry, uint32_t user_len);
int usb2_read_symlink(uint8_t *user_ptr, uint32_t startentry,
uint32_t user_len);
#endif /* _USB2_DEV_H_ */

View File

@ -56,18 +56,24 @@
/* function prototypes */
static void usb2_fill_pipe_data(struct usb2_device *udev, uint8_t iface_index, struct usb2_endpoint_descriptor *edesc, struct usb2_pipe *pipe);
static void usb2_free_pipe_data(struct usb2_device *udev, uint8_t iface_index, uint8_t iface_mask);
static void usb2_free_iface_data(struct usb2_device *udev);
static void usb2_detach_device_sub(struct usb2_device *udev, device_t *ppdev, uint8_t free_subdev);
static uint8_t usb2_probe_and_attach_sub(struct usb2_device *udev, struct usb2_attach_arg *uaa);
static void usb2_init_attach_arg(struct usb2_device *udev, struct usb2_attach_arg *uaa);
static void usb2_suspend_resume_sub(struct usb2_device *udev, device_t dev, uint8_t do_suspend);
static void usb2_clear_stall_proc(struct usb2_proc_msg *_pm);
static void usb2_check_strings(struct usb2_device *udev);
static usb2_error_t usb2_fill_iface_data(struct usb2_device *udev, uint8_t iface_index, uint8_t alt_index);
static void usb2_notify_addq(const char *type, struct usb2_device *udev);
static void usb2_fifo_free_wrap(struct usb2_device *udev, uint8_t iface_index, uint8_t flag);
static void usb2_fill_pipe_data(struct usb2_device *, uint8_t,
struct usb2_endpoint_descriptor *, struct usb2_pipe *);
static void usb2_free_pipe_data(struct usb2_device *, uint8_t, uint8_t);
static void usb2_free_iface_data(struct usb2_device *);
static void usb2_detach_device_sub(struct usb2_device *, device_t *,
uint8_t);
static uint8_t usb2_probe_and_attach_sub(struct usb2_device *,
struct usb2_attach_arg *);
static void usb2_init_attach_arg(struct usb2_device *,
struct usb2_attach_arg *);
static void usb2_suspend_resume_sub(struct usb2_device *, device_t,
uint8_t);
static void usb2_clear_stall_proc(struct usb2_proc_msg *_pm);
static void usb2_check_strings(struct usb2_device *);
static usb2_error_t usb2_fill_iface_data(struct usb2_device *, uint8_t,
uint8_t);
static void usb2_notify_addq(const char *type, struct usb2_device *);
static void usb2_fifo_free_wrap(struct usb2_device *, uint8_t, uint8_t);
/* static structures */

View File

@ -144,19 +144,30 @@ struct usb2_device {
/* function prototypes */
struct usb2_device *usb2_alloc_device(device_t parent_dev, struct usb2_bus *bus, struct usb2_device *parent_hub, uint8_t depth, uint8_t port_index, uint8_t port_no, uint8_t speed, uint8_t usb2_mode);
struct usb2_pipe *usb2_get_pipe(struct usb2_device *udev, uint8_t iface_index, const struct usb2_config *setup);
struct usb2_device *usb2_alloc_device(device_t parent_dev, struct usb2_bus *bus,
struct usb2_device *parent_hub, uint8_t depth,
uint8_t port_index, uint8_t port_no, uint8_t speed,
uint8_t usb2_mode);
struct usb2_pipe *usb2_get_pipe(struct usb2_device *udev, uint8_t iface_index,
const struct usb2_config *setup);
struct usb2_pipe *usb2_get_pipe_by_addr(struct usb2_device *udev, uint8_t ea_val);
usb2_error_t usb2_interface_count(struct usb2_device *udev, uint8_t *count);
usb2_error_t usb2_probe_and_attach(struct usb2_device *udev, uint8_t iface_index);
usb2_error_t usb2_reset_iface_endpoints(struct usb2_device *udev, uint8_t iface_index);
usb2_error_t usb2_set_config_index(struct usb2_device *udev, uint8_t index);
usb2_error_t usb2_set_endpoint_stall(struct usb2_device *udev, struct usb2_pipe *pipe, uint8_t do_stall);
usb2_error_t usb2_suspend_resume(struct usb2_device *udev, uint8_t do_suspend);
void usb2_detach_device(struct usb2_device *udev, uint8_t iface_index, uint8_t free_subdev);
usb2_error_t usb2_interface_count(struct usb2_device *udev, uint8_t *count);
usb2_error_t usb2_probe_and_attach(struct usb2_device *udev,
uint8_t iface_index);
usb2_error_t usb2_reset_iface_endpoints(struct usb2_device *udev,
uint8_t iface_index);
usb2_error_t usb2_set_config_index(struct usb2_device *udev, uint8_t index);
usb2_error_t usb2_set_endpoint_stall(struct usb2_device *udev,
struct usb2_pipe *pipe, uint8_t do_stall);
usb2_error_t usb2_suspend_resume(struct usb2_device *udev,
uint8_t do_suspend);
void usb2_detach_device(struct usb2_device *udev, uint8_t iface_index,
uint8_t free_subdev);
void usb2_devinfo(struct usb2_device *udev, char *dst_ptr, uint16_t dst_len);
void usb2_free_device(struct usb2_device *udev);
void *usb2_find_descriptor(struct usb2_device *udev, void *id, uint8_t iface_index, uint8_t type, uint8_t type_mask, uint8_t subtype, uint8_t subtype_mask);
void *usb2_find_descriptor(struct usb2_device *udev, void *id,
uint8_t iface_index, uint8_t type, uint8_t type_mask,
uint8_t subtype, uint8_t subtype_mask);
void usb_linux_free_device(struct usb_device *dev);
#endif /* _USB2_DEVICE_H_ */

View File

@ -35,11 +35,16 @@ struct usb2_device_request;
/* typedefs */
typedef usb2_error_t (usb2_temp_setup_by_index_t)(struct usb2_device *udev, uint16_t index);
typedef uint8_t (usb2_test_quirk_t)(const struct usb2_lookup_info *info, uint16_t quirk);
typedef int (usb2_quirk_ioctl_t)(unsigned long cmd, caddr_t data, int fflag, struct thread *td);
typedef void (usb2_temp_get_desc_t)(struct usb2_device *udev, struct usb2_device_request *req, const void **pPtr, uint16_t *pLength);
typedef void (usb2_temp_unsetup_t)(struct usb2_device *udev);
typedef usb2_error_t (usb2_temp_setup_by_index_t)(struct usb2_device *udev,
uint16_t index);
typedef uint8_t (usb2_test_quirk_t)(const struct usb2_lookup_info *info,
uint16_t quirk);
typedef int (usb2_quirk_ioctl_t)(unsigned long cmd, caddr_t data,
int fflag, struct thread *td);
typedef void (usb2_temp_get_desc_t)(struct usb2_device *udev,
struct usb2_device_request *req, const void **pPtr,
uint16_t *pLength);
typedef void (usb2_temp_unsetup_t)(struct usb2_device *udev);
/* global function pointers */

View File

@ -39,6 +39,5 @@ USB_MAKE_DEBUG_TABLE(USB_ERR);
const char *
usb2_errstr(usb2_error_t err)
{
return ((err < USB_ERR_MAX) ?
USB_ERR[err] : "USB_ERR_UNKNOWN");
return ((err < USB_ERR_MAX) ? USB_ERR[err] : "USB_ERR_UNKNOWN");
}

View File

@ -72,17 +72,19 @@ static usb2_fifo_cmd_t ugen_start_read;
static usb2_fifo_cmd_t ugen_start_write;
static usb2_fifo_cmd_t ugen_stop_io;
static int ugen_transfer_setup(struct usb2_fifo *f, const struct usb2_config *setup, uint8_t n_setup);
static int ugen_open_pipe_write(struct usb2_fifo *f);
static int ugen_open_pipe_read(struct usb2_fifo *f);
static int ugen_set_config(struct usb2_fifo *f, uint8_t index);
static int ugen_set_interface(struct usb2_fifo *f, uint8_t iface_index, uint8_t alt_index);
static int ugen_get_cdesc(struct usb2_fifo *f, struct usb2_gen_descriptor *pgd);
static int ugen_get_sdesc(struct usb2_fifo *f, struct usb2_gen_descriptor *ugd);
static int usb2_gen_fill_deviceinfo(struct usb2_fifo *f, struct usb2_device_info *di);
static int ugen_re_enumerate(struct usb2_fifo *f);
static int ugen_iface_ioctl(struct usb2_fifo *f, u_long cmd, void *addr, int fflags);
static uint8_t ugen_fs_get_complete(struct usb2_fifo *f, uint8_t *pindex);
static int ugen_transfer_setup(struct usb2_fifo *,
const struct usb2_config *, uint8_t);
static int ugen_open_pipe_write(struct usb2_fifo *);
static int ugen_open_pipe_read(struct usb2_fifo *);
static int ugen_set_config(struct usb2_fifo *, uint8_t);
static int ugen_set_interface(struct usb2_fifo *, uint8_t, uint8_t);
static int ugen_get_cdesc(struct usb2_fifo *, struct usb2_gen_descriptor *);
static int ugen_get_sdesc(struct usb2_fifo *, struct usb2_gen_descriptor *);
static int usb2_gen_fill_deviceinfo(struct usb2_fifo *,
struct usb2_device_info *);
static int ugen_re_enumerate(struct usb2_fifo *);
static int ugen_iface_ioctl(struct usb2_fifo *, u_long, void *, int);
static uint8_t ugen_fs_get_complete(struct usb2_fifo *, uint8_t *);
static int ugen_fs_uninit(struct usb2_fifo *f);
/* structures */

View File

@ -52,12 +52,15 @@ enum {
/* function prototypes */
static uint8_t usb2_handle_get_stall(struct usb2_device *udev, uint8_t ea_val);
static usb2_error_t usb2_handle_remote_wakeup(struct usb2_xfer *xfer, uint8_t is_on);
static usb2_error_t usb2_handle_request(struct usb2_xfer *xfer);
static usb2_error_t usb2_handle_set_config(struct usb2_xfer *xfer, uint8_t conf_no);
static usb2_error_t usb2_handle_set_stall(struct usb2_xfer *xfer, uint8_t ep, uint8_t do_stall);
static usb2_error_t usb2_handle_iface_request(struct usb2_xfer *xfer, void **ppdata, uint16_t *plen, struct usb2_device_request req, uint16_t off, uint8_t state);
static uint8_t usb2_handle_get_stall(struct usb2_device *, uint8_t);
static usb2_error_t usb2_handle_remote_wakeup(struct usb2_xfer *, uint8_t);
static usb2_error_t usb2_handle_request(struct usb2_xfer *);
static usb2_error_t usb2_handle_set_config(struct usb2_xfer *, uint8_t);
static usb2_error_t usb2_handle_set_stall(struct usb2_xfer *, uint8_t,
uint8_t);
static usb2_error_t usb2_handle_iface_request(struct usb2_xfer *, void **,
uint16_t *, struct usb2_device_request, uint16_t,
uint8_t);
/*------------------------------------------------------------------------*
* usb2_handle_request_callback

View File

@ -80,10 +80,16 @@ struct hid_data *hid_start_parse(const void *d, int len, int kindset);
void hid_end_parse(struct hid_data *s);
int hid_get_item(struct hid_data *s, struct hid_item *h);
int hid_report_size(const void *buf, int len, enum hid_kind k, uint8_t *id);
int hid_locate(const void *desc, int size, uint32_t usage, enum hid_kind kind, struct hid_location *loc, uint32_t *flags);
uint32_t hid_get_data(const uint8_t *buf, uint32_t len, struct hid_location *loc);
int hid_locate(const void *desc, int size, uint32_t usage,
enum hid_kind kind, struct hid_location *loc, uint32_t *flags);
uint32_t hid_get_data(const uint8_t *buf, uint32_t len,
struct hid_location *loc);
int hid_is_collection(const void *desc, int size, uint32_t usage);
struct usb2_hid_descriptor *hid_get_descriptor_from_usb(struct usb2_config_descriptor *cd, struct usb2_interface_descriptor *id);
usb2_error_t usb2_req_get_hid_desc(struct usb2_device *udev, struct mtx *mtx, void **descp, uint16_t *sizep, usb2_malloc_type mem, uint8_t iface_index);
struct usb2_hid_descriptor *hid_get_descriptor_from_usb(
struct usb2_config_descriptor *cd,
struct usb2_interface_descriptor *id);
usb2_error_t usb2_req_get_hid_desc(struct usb2_device *udev, struct mtx *mtx,
void **descp, uint16_t *sizep, usb2_malloc_type mem,
uint8_t iface_index);
#endif /* _USB2_CORE_HID_H_ */

View File

@ -65,10 +65,13 @@ struct usb2_hub {
/* function prototypes */
uint8_t usb2_intr_schedule_adjust(struct usb2_device *udev, int16_t len, uint8_t slot);
uint8_t usb2_intr_schedule_adjust(struct usb2_device *udev, int16_t len,
uint8_t slot);
void usb2_fs_isoc_schedule_init_all(struct usb2_fs_isoc_schedule *fss);
void usb2_bus_port_set_device(struct usb2_bus *bus, struct usb2_port *up, struct usb2_device *udev, uint8_t device_index);
struct usb2_device *usb2_bus_port_get_device(struct usb2_bus *bus, struct usb2_port *up);
void usb2_bus_port_set_device(struct usb2_bus *bus, struct usb2_port *up,
struct usb2_device *udev, uint8_t device_index);
struct usb2_device *usb2_bus_port_get_device(struct usb2_bus *bus,
struct usb2_port *up);
void usb2_needs_explore(struct usb2_bus *bus, uint8_t do_probe);
void usb2_needs_explore_all(void);

View File

@ -113,7 +113,10 @@ struct usb2_device_id {
#define USB_GET_DRIVER_INFO(did) \
(((const uint8_t *)((did)->driver_info)) - ((const uint8_t *)0))
const struct usb2_device_id *usb2_lookup_id_by_info(const struct usb2_device_id *id, uint32_t sizeof_id, const struct usb2_lookup_info *info);
int usb2_lookup_id_by_uaa(const struct usb2_device_id *id, uint32_t sizeof_id, struct usb2_attach_arg *uaa);
const struct usb2_device_id *usb2_lookup_id_by_info(
const struct usb2_device_id *id, uint32_t sizeof_id,
const struct usb2_lookup_info *info);
int usb2_lookup_id_by_uaa(const struct usb2_device_id *id,
uint32_t sizeof_id, struct usb2_attach_arg *uaa);
#endif /* _USB2_LOOKUP_H_ */

View File

@ -95,6 +95,7 @@ struct usb2_ifqueue {
} while (0)
/* prototypes */
void *usb2_alloc_mbufs(struct malloc_type *type, struct usb2_ifqueue *ifq, uint32_t block_size, uint16_t nblocks);
void *usb2_alloc_mbufs(struct malloc_type *type, struct usb2_ifqueue *ifq,
uint32_t block_size, uint16_t nblocks);
#endif /* _USB2_MBUF_H_ */

View File

@ -27,8 +27,10 @@
#ifndef _USB2_MSCTEST_H_
#define _USB2_MSCTEST_H_
usb2_error_t usb2_test_autoinstall(struct usb2_device *udev, uint8_t iface_index, uint8_t do_eject);
usb2_error_t usb2_test_huawei(struct usb2_device *udev, struct usb2_attach_arg *uaa);
usb2_error_t usb2_test_autoinstall(struct usb2_device *udev,
uint8_t iface_index, uint8_t do_eject);
usb2_error_t usb2_test_huawei(struct usb2_device *udev,
struct usb2_attach_arg *uaa);
int usb2_lookup_huawei(struct usb2_attach_arg *uaa);
/* Huawei specific defines */

View File

@ -27,9 +27,14 @@
#ifndef _USB2_PARSE_H_
#define _USB2_PARSE_H_
struct usb2_descriptor *usb2_desc_foreach(struct usb2_config_descriptor *cd, struct usb2_descriptor *desc);
struct usb2_interface_descriptor *usb2_find_idesc(struct usb2_config_descriptor *cd, uint8_t iface_index, uint8_t alt_index);
struct usb2_endpoint_descriptor *usb2_find_edesc(struct usb2_config_descriptor *cd, uint8_t iface_index, uint8_t alt_index, uint8_t ep_index);
struct usb2_descriptor *usb2_desc_foreach(struct usb2_config_descriptor *cd,
struct usb2_descriptor *desc);
struct usb2_interface_descriptor *usb2_find_idesc(
struct usb2_config_descriptor *cd, uint8_t iface_index,
uint8_t alt_index);
struct usb2_endpoint_descriptor *usb2_find_edesc(
struct usb2_config_descriptor *cd, uint8_t iface_index,
uint8_t alt_index, uint8_t ep_index);
uint16_t usb2_get_no_endpoints(struct usb2_config_descriptor *cd);
uint16_t usb2_get_no_alts(struct usb2_config_descriptor *cd, uint8_t ifaceno);

View File

@ -79,7 +79,8 @@ struct usb2_process {
uint8_t usb2_proc_cwait(struct usb2_process *up, int timeout);
uint8_t usb2_proc_is_gone(struct usb2_process *up);
uint8_t usb2_proc_setup(struct usb2_process *up, struct mtx *p_mtx, uint8_t prio);
uint8_t usb2_proc_setup(struct usb2_process *up, struct mtx *p_mtx,
uint8_t prio);
void usb2_proc_csignal(struct usb2_process *up);
void usb2_proc_drain(struct usb2_process *up);
void usb2_proc_mwait(struct usb2_process *up, void *pm0, void *pm1);

View File

@ -27,32 +27,67 @@
#ifndef _USB2_REQUEST_H_
#define _USB2_REQUEST_H_
usb2_error_t usb2_do_request_flags(struct usb2_device *udev, struct mtx *mtx, struct usb2_device_request *req, void *data, uint32_t flags, uint16_t *actlen, uint32_t timeout);
usb2_error_t usb2_req_clear_hub_feature(struct usb2_device *udev, struct mtx *mtx, uint16_t sel);
usb2_error_t usb2_req_clear_port_feature(struct usb2_device *udev, struct mtx *mtx, uint8_t port, uint16_t sel);
usb2_error_t usb2_req_get_alt_interface_no(struct usb2_device *udev, struct mtx *mtx, uint8_t *alt_iface_no, uint8_t iface_index);
usb2_error_t usb2_req_get_config(struct usb2_device *udev, struct mtx *mtx, uint8_t *pconf);
usb2_error_t usb2_req_get_config_desc(struct usb2_device *udev, struct mtx *mtx, struct usb2_config_descriptor *d, uint8_t conf_index);
usb2_error_t usb2_req_get_config_desc_full(struct usb2_device *udev, struct mtx *mtx, struct usb2_config_descriptor **ppcd, struct malloc_type *mtype, uint8_t conf_index);
usb2_error_t usb2_req_get_desc(struct usb2_device *udev, struct mtx *mtx, void *desc, uint16_t min_len, uint16_t max_len, uint16_t id, uint8_t type, uint8_t index, uint8_t retries);
usb2_error_t usb2_req_get_device_desc(struct usb2_device *udev, struct mtx *mtx, struct usb2_device_descriptor *d);
usb2_error_t usb2_req_get_device_status(struct usb2_device *udev, struct mtx *mtx, struct usb2_status *st);
usb2_error_t usb2_req_get_hub_descriptor(struct usb2_device *udev, struct mtx *mtx, struct usb2_hub_descriptor *hd, uint8_t nports);
usb2_error_t usb2_req_get_hub_status(struct usb2_device *udev, struct mtx *mtx, struct usb2_hub_status *st);
usb2_error_t usb2_req_get_port_status(struct usb2_device *udev, struct mtx *mtx, struct usb2_port_status *ps, uint8_t port);
usb2_error_t usb2_req_get_report(struct usb2_device *udev, struct mtx *mtx, void *data, uint16_t len, uint8_t iface_index, uint8_t type, uint8_t id);
usb2_error_t usb2_req_get_report_descriptor(struct usb2_device *udev, struct mtx *mtx, void *d, uint16_t size, uint8_t iface_index);
usb2_error_t usb2_req_get_string_any(struct usb2_device *udev, struct mtx *mtx, char *buf, uint16_t len, uint8_t string_index);
usb2_error_t usb2_req_get_string_desc(struct usb2_device *udev, struct mtx *mtx, void *sdesc, uint16_t max_len, uint16_t lang_id, uint8_t string_index);
usb2_error_t usb2_req_reset_port(struct usb2_device *udev, struct mtx *mtx, uint8_t port);
usb2_error_t usb2_req_set_address(struct usb2_device *udev, struct mtx *mtx, uint16_t addr);
usb2_error_t usb2_req_set_alt_interface_no(struct usb2_device *udev, struct mtx *mtx, uint8_t iface_index, uint8_t alt_no);
usb2_error_t usb2_req_set_config(struct usb2_device *udev, struct mtx *mtx, uint8_t conf);
usb2_error_t usb2_req_set_hub_feature(struct usb2_device *udev, struct mtx *mtx, uint16_t sel);
usb2_error_t usb2_req_set_idle(struct usb2_device *udev, struct mtx *mtx, uint8_t iface_index, uint8_t duration, uint8_t id);
usb2_error_t usb2_req_set_port_feature(struct usb2_device *udev, struct mtx *mtx, uint8_t port, uint16_t sel);
usb2_error_t usb2_req_set_protocol(struct usb2_device *udev, struct mtx *mtx, uint8_t iface_index, uint16_t report);
usb2_error_t usb2_req_set_report(struct usb2_device *udev, struct mtx *mtx, void *data, uint16_t len, uint8_t iface_index, uint8_t type, uint8_t id);
usb2_error_t usb2_do_request_flags(struct usb2_device *udev, struct mtx *mtx,
struct usb2_device_request *req, void *data, uint32_t flags,
uint16_t *actlen, uint32_t timeout);
usb2_error_t usb2_req_clear_hub_feature(struct usb2_device *udev,
struct mtx *mtx, uint16_t sel);
usb2_error_t usb2_req_clear_port_feature(struct usb2_device *udev,
struct mtx *mtx, uint8_t port, uint16_t sel);
usb2_error_t usb2_req_get_alt_interface_no(struct usb2_device *udev,
struct mtx *mtx, uint8_t *alt_iface_no,
uint8_t iface_index);
usb2_error_t usb2_req_get_config(struct usb2_device *udev, struct mtx *mtx,
uint8_t *pconf);
usb2_error_t usb2_req_get_config_desc(struct usb2_device *udev, struct mtx *mtx,
struct usb2_config_descriptor *d, uint8_t conf_index);
usb2_error_t usb2_req_get_config_desc_full(struct usb2_device *udev,
struct mtx *mtx, struct usb2_config_descriptor **ppcd,
struct malloc_type *mtype, uint8_t conf_index);
usb2_error_t usb2_req_get_desc(struct usb2_device *udev, struct mtx *mtx,
void *desc, uint16_t min_len, uint16_t max_len, uint16_t id,
uint8_t type, uint8_t index, uint8_t retries);
usb2_error_t usb2_req_get_device_desc(struct usb2_device *udev, struct mtx *mtx,
struct usb2_device_descriptor *d);
usb2_error_t usb2_req_get_device_status(struct usb2_device *udev,
struct mtx *mtx, struct usb2_status *st);
usb2_error_t usb2_req_get_hub_descriptor(struct usb2_device *udev,
struct mtx *mtx, struct usb2_hub_descriptor *hd,
uint8_t nports);
usb2_error_t usb2_req_get_hub_status(struct usb2_device *udev, struct mtx *mtx,
struct usb2_hub_status *st);
usb2_error_t usb2_req_get_port_status(struct usb2_device *udev, struct mtx *mtx,
struct usb2_port_status *ps, uint8_t port);
usb2_error_t usb2_req_get_report(struct usb2_device *udev, struct mtx *mtx,
void *data, uint16_t len, uint8_t iface_index, uint8_t type,
uint8_t id);
usb2_error_t usb2_req_get_report_descriptor(struct usb2_device *udev,
struct mtx *mtx, void *d, uint16_t size,
uint8_t iface_index);
usb2_error_t usb2_req_get_string_any(struct usb2_device *udev, struct mtx *mtx,
char *buf, uint16_t len, uint8_t string_index);
usb2_error_t usb2_req_get_string_desc(struct usb2_device *udev, struct mtx *mtx,
void *sdesc, uint16_t max_len, uint16_t lang_id,
uint8_t string_index);
usb2_error_t usb2_req_reset_port(struct usb2_device *udev, struct mtx *mtx,
uint8_t port);
usb2_error_t usb2_req_set_address(struct usb2_device *udev, struct mtx *mtx,
uint16_t addr);
usb2_error_t usb2_req_set_alt_interface_no(struct usb2_device *udev,
struct mtx *mtx, uint8_t iface_index, uint8_t alt_no);
usb2_error_t usb2_req_set_config(struct usb2_device *udev, struct mtx *mtx,
uint8_t conf);
usb2_error_t usb2_req_set_hub_feature(struct usb2_device *udev, struct mtx *mtx,
uint16_t sel);
usb2_error_t usb2_req_set_idle(struct usb2_device *udev, struct mtx *mtx,
uint8_t iface_index, uint8_t duration, uint8_t id);
usb2_error_t usb2_req_set_port_feature(struct usb2_device *udev,
struct mtx *mtx, uint8_t port, uint16_t sel);
usb2_error_t usb2_req_set_protocol(struct usb2_device *udev, struct mtx *mtx,
uint8_t iface_index, uint16_t report);
usb2_error_t usb2_req_set_report(struct usb2_device *udev, struct mtx *mtx,
void *data, uint16_t len, uint8_t iface_index,
uint8_t type, uint8_t id);
usb2_error_t usb2_req_re_enumerate(struct usb2_device *udev, struct mtx *mtx);
#define usb2_do_request(u,m,r,d) \

View File

@ -56,6 +56,7 @@ struct usb2_sw_transfer {
/* prototypes */
void usb2_sw_transfer(struct usb2_sw_transfer *std, usb2_sw_transfer_func_t *func);
void usb2_sw_transfer(struct usb2_sw_transfer *std,
usb2_sw_transfer_func_t *func);
#endif /* _USB2_SW_TRANSFER_H_ */

View File

@ -119,17 +119,17 @@ static const struct usb2_config usb2_control_ep_cfg[USB_DEFAULT_XFER_MAX] = {
/* function prototypes */
static void usb2_update_max_frame_size(struct usb2_xfer *xfer);
static uint32_t usb2_get_dma_delay(struct usb2_bus *bus);
static void usb2_transfer_unsetup_sub(struct usb2_xfer_root *info, uint8_t needs_delay);
static void usb2_control_transfer_init(struct usb2_xfer *xfer);
static uint8_t usb2_start_hardware_sub(struct usb2_xfer *xfer);
static void usb2_callback_proc(struct usb2_proc_msg *_pm);
static void usb2_callback_ss_done_defer(struct usb2_xfer *xfer);
static void usb2_callback_wrapper(struct usb2_xfer_queue *pq);
static void usb2_dma_delay_done_cb(void *arg);
static void usb2_transfer_start_cb(void *arg);
static uint8_t usb2_callback_wrapper_sub(struct usb2_xfer *xfer);
static void usb2_update_max_frame_size(struct usb2_xfer *);
static uint32_t usb2_get_dma_delay(struct usb2_bus *);
static void usb2_transfer_unsetup_sub(struct usb2_xfer_root *, uint8_t);
static void usb2_control_transfer_init(struct usb2_xfer *);
static uint8_t usb2_start_hardware_sub(struct usb2_xfer *);
static void usb2_callback_proc(struct usb2_proc_msg *);
static void usb2_callback_ss_done_defer(struct usb2_xfer *);
static void usb2_callback_wrapper(struct usb2_xfer_queue *);
static void usb2_dma_delay_done_cb(void *);
static void usb2_transfer_start_cb(void *);
static uint8_t usb2_callback_wrapper_sub(struct usb2_xfer *);
/*------------------------------------------------------------------------*
* usb2_update_max_frame_size

View File

@ -103,20 +103,26 @@ struct usb2_setup_params {
/* function prototypes */
uint8_t usb2_transfer_pending(struct usb2_xfer *xfer);
uint8_t usb2_transfer_setup_sub_malloc(struct usb2_setup_params *parm, struct usb2_page_cache **ppc, uint32_t size, uint32_t align, uint32_t count);
void usb2_command_wrapper(struct usb2_xfer_queue *pq, struct usb2_xfer *xfer);
uint8_t usb2_transfer_setup_sub_malloc(struct usb2_setup_params *parm,
struct usb2_page_cache **ppc, uint32_t size, uint32_t align,
uint32_t count);
void usb2_command_wrapper(struct usb2_xfer_queue *pq,
struct usb2_xfer *xfer);
void usb2_pipe_enter(struct usb2_xfer *xfer);
void usb2_pipe_start(struct usb2_xfer_queue *pq);
void usb2_transfer_dequeue(struct usb2_xfer *xfer);
void usb2_transfer_done(struct usb2_xfer *xfer, usb2_error_t error);
void usb2_transfer_enqueue(struct usb2_xfer_queue *pq, struct usb2_xfer *xfer);
void usb2_transfer_enqueue(struct usb2_xfer_queue *pq,
struct usb2_xfer *xfer);
void usb2_transfer_setup_sub(struct usb2_setup_params *parm);
void usb2_default_transfer_setup(struct usb2_device *udev);
void usb2_clear_data_toggle(struct usb2_device *udev, struct usb2_pipe *pipe);
void usb2_clear_data_toggle(struct usb2_device *udev,
struct usb2_pipe *pipe);
void usb2_do_poll(struct usb2_xfer **ppxfer, uint16_t max);
usb2_callback_t usb2_do_request_callback;
usb2_callback_t usb2_handle_request_callback;
usb2_callback_t usb2_do_clear_stall_callback;
void usb2_transfer_timeout_ms(struct usb2_xfer *xfer, void (*cb) (void *arg), uint32_t ms);
void usb2_transfer_timeout_ms(struct usb2_xfer *xfer,
void (*cb) (void *arg), uint32_t ms);
#endif /* _USB2_TRANSFER_H_ */

View File

@ -190,13 +190,15 @@ static usb2_callback_t aue_bulk_read_callback;
static usb2_callback_t aue_bulk_write_clear_stall_callback;
static usb2_callback_t aue_bulk_write_callback;
static void aue_cfg_do_request(struct aue_softc *sc, struct usb2_device_request *req, void *data);
static uint8_t aue_cfg_csr_read_1(struct aue_softc *sc, uint16_t reg);
static uint16_t aue_cfg_csr_read_2(struct aue_softc *sc, uint16_t reg);
static void aue_cfg_csr_write_1(struct aue_softc *sc, uint16_t reg, uint8_t val);
static void aue_cfg_csr_write_2(struct aue_softc *sc, uint16_t reg, uint16_t val);
static void aue_cfg_eeprom_getword(struct aue_softc *sc, uint8_t addr, uint8_t *dest);
static void aue_cfg_read_eeprom(struct aue_softc *sc, uint8_t *dest, uint16_t off, uint16_t len);
static void aue_cfg_do_request(struct aue_softc *,
struct usb2_device_request *, void *);
static uint8_t aue_cfg_csr_read_1(struct aue_softc *, uint16_t);
static uint16_t aue_cfg_csr_read_2(struct aue_softc *, uint16_t);
static void aue_cfg_csr_write_1(struct aue_softc *, uint16_t, uint8_t);
static void aue_cfg_csr_write_2(struct aue_softc *, uint16_t, uint16_t);
static void aue_cfg_eeprom_getword(struct aue_softc *, uint8_t, uint8_t *);
static void aue_cfg_read_eeprom(struct aue_softc *, uint8_t *, uint16_t,
uint16_t);
static miibus_readreg_t aue_cfg_miibus_readreg;
static miibus_writereg_t aue_cfg_miibus_writereg;
@ -213,15 +215,15 @@ static usb2_config_td_command_t aue_cfg_ifmedia_upd;
static usb2_config_td_command_t aue_cfg_pre_stop;
static usb2_config_td_command_t aue_cfg_stop;
static void aue_cfg_reset_pegasus_II(struct aue_softc *sc);
static void aue_cfg_reset(struct aue_softc *sc);
static void aue_start_cb(struct ifnet *ifp);
static void aue_init_cb(void *arg);
static void aue_start_transfers(struct aue_softc *sc);
static int aue_ifmedia_upd_cb(struct ifnet *ifp);
static void aue_ifmedia_sts_cb(struct ifnet *ifp, struct ifmediareq *ifmr);
static int aue_ioctl_cb(struct ifnet *ifp, u_long command, caddr_t data);
static void aue_watchdog(void *arg);
static void aue_cfg_reset_pegasus_II(struct aue_softc *);
static void aue_cfg_reset(struct aue_softc *);
static void aue_start_cb(struct ifnet *);
static void aue_init_cb(void *);
static void aue_start_transfers(struct aue_softc *);
static int aue_ifmedia_upd_cb(struct ifnet *);
static void aue_ifmedia_sts_cb(struct ifnet *, struct ifmediareq *);
static int aue_ioctl_cb(struct ifnet *, u_long, caddr_t);
static void aue_watchdog(void *);
static const struct usb2_config aue_config[AUE_ENDPT_MAX] = {

View File

@ -159,8 +159,6 @@ static usb2_callback_t axe_bulk_read_callback;
static usb2_callback_t axe_bulk_write_clear_stall_callback;
static usb2_callback_t axe_bulk_write_callback;
static void axe_cfg_cmd(struct axe_softc *sc, uint16_t cmd, uint16_t index, uint16_t val, void *buf);
static miibus_readreg_t axe_cfg_miibus_readreg;
static miibus_writereg_t axe_cfg_miibus_writereg;
static miibus_statchg_t axe_cfg_miibus_statchg;
@ -176,16 +174,18 @@ static usb2_config_td_command_t axe_cfg_promisc_upd;
static usb2_config_td_command_t axe_cfg_pre_stop;
static usb2_config_td_command_t axe_cfg_stop;
static int axe_ifmedia_upd_cb(struct ifnet *ifp);
static void axe_ifmedia_sts_cb(struct ifnet *ifp, struct ifmediareq *ifmr);
static void axe_cfg_reset(struct axe_softc *sc);
static void axe_start_cb(struct ifnet *ifp);
static void axe_start_transfers(struct axe_softc *sc);
static void axe_init_cb(void *arg);
static int axe_ioctl_cb(struct ifnet *ifp, u_long command, caddr_t data);
static void axe_watchdog(void *arg);
static void axe_cfg_ax88178_init(struct axe_softc *);
static void axe_cfg_ax88772_init(struct axe_softc *);
static int axe_ifmedia_upd_cb(struct ifnet *);
static void axe_ifmedia_sts_cb(struct ifnet *, struct ifmediareq *);
static void axe_cfg_reset(struct axe_softc *);
static void axe_start_cb(struct ifnet *);
static void axe_start_transfers(struct axe_softc *);
static void axe_init_cb(void *);
static int axe_ioctl_cb(struct ifnet *, u_long, caddr_t);
static void axe_watchdog(void *);
static void axe_cfg_cmd(struct axe_softc *, uint16_t, uint16_t, uint16_t,
void *);
static void axe_cfg_ax88178_init(struct axe_softc *);
static void axe_cfg_ax88772_init(struct axe_softc *);
static const struct usb2_config axe_config[AXE_ENDPT_MAX] = {

View File

@ -81,14 +81,14 @@ static usb2_callback_t cdce_bulk_read_callback;
static usb2_callback_t cdce_intr_read_callback;
static usb2_callback_t cdce_intr_write_callback;
static void cdce_start_cb(struct ifnet *ifp);
static void cdce_start_transfers(struct cdce_softc *sc);
static uint32_t cdce_m_crc32(struct mbuf *m, uint32_t src_offset, uint32_t src_len);
static void cdce_stop(struct cdce_softc *sc);
static int cdce_ioctl_cb(struct ifnet *ifp, u_long command, caddr_t data);
static void cdce_init_cb(void *arg);
static int cdce_ifmedia_upd_cb(struct ifnet *ifp);
static void cdce_ifmedia_sts_cb(struct ifnet *const ifp, struct ifmediareq *req);
static void cdce_start_cb(struct ifnet *);
static void cdce_start_transfers(struct cdce_softc *);
static uint32_t cdce_m_crc32(struct mbuf *, uint32_t, uint32_t);
static void cdce_stop(struct cdce_softc *);
static int cdce_ioctl_cb(struct ifnet *, u_long, caddr_t);
static void cdce_init_cb(void *);
static int cdce_ifmedia_upd_cb(struct ifnet *);
static void cdce_ifmedia_sts_cb(struct ifnet *, struct ifmediareq *);
#if USB_DEBUG
static int cdce_debug = 0;

View File

@ -111,19 +111,21 @@ static usb2_config_td_command_t cue_cfg_init;
static usb2_config_td_command_t cue_cfg_pre_stop;
static usb2_config_td_command_t cue_cfg_stop;
static void cue_cfg_do_request(struct cue_softc *sc, struct usb2_device_request *req, void *data);
static uint8_t cue_cfg_csr_read_1(struct cue_softc *sc, uint16_t reg);
static uint16_t cue_cfg_csr_read_2(struct cue_softc *sc, uint8_t reg);
static void cue_cfg_csr_write_1(struct cue_softc *sc, uint16_t reg, uint16_t val);
static void cue_cfg_mem(struct cue_softc *sc, uint8_t cmd, uint16_t addr, void *buf, uint16_t len);
static void cue_cfg_getmac(struct cue_softc *sc, void *buf);
static void cue_mchash(struct usb2_config_td_cc *cc, const uint8_t *addr);
static void cue_cfg_reset(struct cue_softc *sc);
static void cue_start_cb(struct ifnet *ifp);
static void cue_start_transfers(struct cue_softc *sc);
static void cue_init_cb(void *arg);
static int cue_ioctl_cb(struct ifnet *ifp, u_long command, caddr_t data);
static void cue_watchdog(void *arg);
static void cue_cfg_do_request(struct cue_softc *,
struct usb2_device_request *, void *);
static uint8_t cue_cfg_csr_read_1(struct cue_softc *, uint16_t);
static uint16_t cue_cfg_csr_read_2(struct cue_softc *, uint8_t);
static void cue_cfg_csr_write_1(struct cue_softc *, uint16_t, uint16_t);
static void cue_cfg_mem(struct cue_softc *, uint8_t, uint16_t, void *,
uint16_t);
static void cue_cfg_getmac(struct cue_softc *, void *);
static void cue_mchash(struct usb2_config_td_cc *, const uint8_t *);
static void cue_cfg_reset(struct cue_softc *);
static void cue_start_cb(struct ifnet *);
static void cue_start_transfers(struct cue_softc *);
static void cue_init_cb(void *);
static int cue_ioctl_cb(struct ifnet *, u_long, caddr_t);
static void cue_watchdog(void *);
#if USB_DEBUG
static int cue_debug = 0;

View File

@ -154,16 +154,18 @@ static usb2_config_td_command_t kue_cfg_tick;
static usb2_config_td_command_t kue_cfg_pre_stop;
static usb2_config_td_command_t kue_cfg_stop;
static void kue_cfg_do_request(struct kue_softc *sc, struct usb2_device_request *req, void *data);
static void kue_cfg_setword(struct kue_softc *sc, uint8_t breq, uint16_t word);
static void kue_cfg_ctl(struct kue_softc *sc, uint8_t rw, uint8_t breq, uint16_t val, void *data, uint16_t len);
static void kue_cfg_load_fw(struct kue_softc *sc);
static void kue_cfg_reset(struct kue_softc *sc);
static void kue_start_cb(struct ifnet *ifp);
static void kue_start_transfers(struct kue_softc *sc);
static void kue_init_cb(void *arg);
static int kue_ioctl_cb(struct ifnet *ifp, u_long command, caddr_t data);
static void kue_watchdog(void *arg);
static void kue_cfg_do_request(struct kue_softc *,
struct usb2_device_request *, void *);
static void kue_cfg_setword(struct kue_softc *, uint8_t, uint16_t);
static void kue_cfg_ctl(struct kue_softc *, uint8_t, uint8_t, uint16_t,
void *, uint16_t);
static void kue_cfg_load_fw(struct kue_softc *);
static void kue_cfg_reset(struct kue_softc *);
static void kue_start_cb(struct ifnet *);
static void kue_start_transfers(struct kue_softc *);
static void kue_init_cb(void *);
static int kue_ioctl_cb(struct ifnet *, u_long, caddr_t);
static void kue_watchdog(void *);
#if USB_DEBUG
static int kue_debug = 0;

View File

@ -97,19 +97,22 @@ static usb2_config_td_command_t udav_cfg_stop;
static usb2_config_td_command_t udav_cfg_ifmedia_change;
static usb2_config_td_command_t udav_cfg_tick;
static void udav_cfg_do_request(struct udav_softc *sc, struct usb2_device_request *req, void *data);
static void udav_cfg_csr_read(struct udav_softc *sc, uint16_t offset, void *buf, uint16_t len);
static void udav_cfg_csr_write(struct udav_softc *sc, uint16_t offset, void *buf, uint16_t len);
static uint8_t udav_cfg_csr_read1(struct udav_softc *sc, uint16_t offset);
static void udav_cfg_csr_write1(struct udav_softc *sc, uint16_t offset, uint8_t ch);
static void udav_init_cb(void *arg);
static void udav_cfg_reset(struct udav_softc *sc);
static void udav_start_cb(struct ifnet *ifp);
static void udav_start_transfers(struct udav_softc *sc);
static int udav_ioctl_cb(struct ifnet *ifp, u_long cmd, caddr_t data);
static void udav_watchdog(void *arg);
static int udav_ifmedia_change_cb(struct ifnet *ifp);
static void udav_ifmedia_status_cb(struct ifnet *ifp, struct ifmediareq *ifmr);
static void udav_cfg_do_request(struct udav_softc *,
struct usb2_device_request *, void *);
static void udav_cfg_csr_read(struct udav_softc *, uint16_t, void *,
uint16_t);
static void udav_cfg_csr_write(struct udav_softc *, uint16_t, void *,
uint16_t);
static uint8_t udav_cfg_csr_read1(struct udav_softc *, uint16_t);
static void udav_cfg_csr_write1(struct udav_softc *, uint16_t, uint8_t);
static void udav_init_cb(void *);
static void udav_cfg_reset(struct udav_softc *);
static void udav_start_cb(struct ifnet *);
static void udav_start_transfers(struct udav_softc *);
static int udav_ioctl_cb(struct ifnet *, u_long, caddr_t);
static void udav_watchdog(void *);
static int udav_ifmedia_change_cb(struct ifnet *);
static void udav_ifmedia_status_cb(struct ifnet *, struct ifmediareq *);
static miibus_readreg_t udav_cfg_miibus_readreg;
static miibus_writereg_t udav_cfg_miibus_writereg;

View File

@ -61,7 +61,8 @@ struct usb2_ether_cc {
typedef void (usb2_ether_mchash_t)(struct usb2_ether_cc *cc, const uint8_t *ptr);
struct mbuf *usb2_ether_get_mbuf(void);
void usb2_ether_cc(struct ifnet *ifp, usb2_ether_mchash_t *fhash, struct usb2_ether_cc *cc);
struct mbuf *usb2_ether_get_mbuf(void);
void usb2_ether_cc(struct ifnet *ifp, usb2_ether_mchash_t *fhash,
struct usb2_ether_cc *cc);
#endif /* _USB2_ETHERNET_H_ */

View File

@ -240,22 +240,18 @@ static const uint8_t ukbd_trtab[256] = {
};
/* prototypes */
static void ukbd_timeout(void *arg);
static void ukbd_set_leds(struct ukbd_softc *sc, uint8_t leds);
static int ukbd_set_typematic(keyboard_t *kbd, int code);
static void ukbd_timeout(void *);
static void ukbd_set_leds(struct ukbd_softc *, uint8_t);
static int ukbd_set_typematic(keyboard_t *, int);
#ifdef UKBD_EMULATE_ATSCANCODE
static int
ukbd_key2scan(struct ukbd_softc *sc, int keycode,
int shift, int up);
static int ukbd_key2scan(struct ukbd_softc *, int, int, int);
#endif
static uint32_t ukbd_read_char(keyboard_t *kbd, int wait);
static void ukbd_clear_state(keyboard_t *kbd);
static int ukbd_ioctl(keyboard_t *kbd, u_long cmd, caddr_t arg);
static int ukbd_enable(keyboard_t *kbd);
static int ukbd_disable(keyboard_t *kbd);
static void ukbd_interrupt(struct ukbd_softc *sc);
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 device_probe_t ukbd_probe;
static device_attach_t ukbd_attach;

View File

@ -133,15 +133,15 @@ static usb2_callback_t udbp_bulk_read_clear_stall_callback;
static usb2_callback_t udbp_bulk_write_callback;
static usb2_callback_t udbp_bulk_write_clear_stall_callback;
static void udbp_bulk_read_complete(node_p node, hook_p hook, void *arg1, int arg2);
static void udbp_bulk_read_complete(node_p, hook_p, void *, int);
static ng_constructor_t ng_udbp_constructor;
static ng_rcvmsg_t ng_udbp_rcvmsg;
static ng_shutdown_t ng_udbp_rmnode;
static ng_newhook_t ng_udbp_newhook;
static ng_connect_t ng_udbp_connect;
static ng_rcvdata_t ng_udbp_rcvdata;
static ng_disconnect_t ng_udbp_disconnect;
static ng_constructor_t ng_udbp_constructor;
static ng_rcvmsg_t ng_udbp_rcvmsg;
static ng_shutdown_t ng_udbp_rmnode;
static ng_newhook_t ng_udbp_newhook;
static ng_connect_t ng_udbp_connect;
static ng_rcvdata_t ng_udbp_rcvdata;
static ng_disconnect_t ng_udbp_disconnect;
/* Parse type for struct ngudbpstat */
static const struct ng_parse_struct_field

View File

@ -82,12 +82,13 @@ static struct usb2_fifo_methods ufm_fifo_methods = {
.basename[0] = "ufm",
};
static int ufm_do_req(struct ufm_softc *sc, uint8_t request, uint16_t value, uint16_t index, uint8_t *retbuf);
static int ufm_set_freq(struct ufm_softc *sc, void *addr);
static int ufm_get_freq(struct ufm_softc *sc, void *addr);
static int ufm_start(struct ufm_softc *sc, void *addr);
static int ufm_stop(struct ufm_softc *sc, void *addr);
static int ufm_get_stat(struct ufm_softc *sc, void *addr);
static int ufm_do_req(struct ufm_softc *, uint8_t, uint16_t, uint16_t,
uint8_t *);
static int ufm_set_freq(struct ufm_softc *, void *);
static int ufm_get_freq(struct ufm_softc *, void *);
static int ufm_start(struct ufm_softc *, void *);
static int ufm_stop(struct ufm_softc *, void *);
static int ufm_get_stat(struct ufm_softc *, void *);
static devclass_t ufm_devclass;

View File

@ -89,16 +89,16 @@ static usb2_callback_t uark_bulk_write_clear_stall_callback;
static usb2_callback_t uark_bulk_read_callback;
static usb2_callback_t uark_bulk_read_clear_stall_callback;
static void uark_start_read(struct usb2_com_softc *ucom);
static void uark_stop_read(struct usb2_com_softc *ucom);
static void uark_start_write(struct usb2_com_softc *ucom);
static void uark_stop_write(struct usb2_com_softc *ucom);
static int uark_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void uark_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static void uark_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static void uark_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static void uark_cfg_write(struct uark_softc *sc, uint16_t index, uint16_t value);
static void uark_start_read(struct usb2_com_softc *);
static void uark_stop_read(struct usb2_com_softc *);
static void uark_start_write(struct usb2_com_softc *);
static void uark_stop_write(struct usb2_com_softc *);
static int uark_pre_param(struct usb2_com_softc *, struct termios *);
static void uark_cfg_param(struct usb2_com_softc *, struct termios *);
static void uark_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static void uark_cfg_set_break(struct usb2_com_softc *, uint8_t);
static void uark_cfg_write(struct uark_softc *, uint16_t, uint16_t);
static const struct usb2_config
uark_xfer_config[UARK_N_TRANSFER] = {

View File

@ -171,17 +171,18 @@ static usb2_callback_t ubsa_read_clear_stall_callback;
static usb2_callback_t ubsa_intr_callback;
static usb2_callback_t ubsa_intr_clear_stall_callback;
static void ubsa_cfg_request(struct ubsa_softc *sc, uint8_t index, uint16_t value);
static void ubsa_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void ubsa_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static void ubsa_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static int ubsa_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void ubsa_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static void ubsa_start_read(struct usb2_com_softc *ucom);
static void ubsa_stop_read(struct usb2_com_softc *ucom);
static void ubsa_start_write(struct usb2_com_softc *ucom);
static void ubsa_stop_write(struct usb2_com_softc *ucom);
static void ubsa_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static void ubsa_cfg_request(struct ubsa_softc *, uint8_t, uint16_t);
static void ubsa_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void ubsa_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static void ubsa_cfg_set_break(struct usb2_com_softc *, uint8_t);
static int ubsa_pre_param(struct usb2_com_softc *, struct termios *);
static void ubsa_cfg_param(struct usb2_com_softc *, struct termios *);
static void ubsa_start_read(struct usb2_com_softc *);
static void ubsa_stop_read(struct usb2_com_softc *);
static void ubsa_start_write(struct usb2_com_softc *);
static void ubsa_stop_write(struct usb2_com_softc *);
static void ubsa_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static const struct usb2_config ubsa_config[UBSA_N_TRANSFER] = {

View File

@ -148,13 +148,14 @@ static usb2_callback_t ubser_write_callback;
static usb2_callback_t ubser_read_clear_stall_callback;
static usb2_callback_t ubser_read_callback;
static int ubser_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void ubser_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static void ubser_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static void ubser_start_read(struct usb2_com_softc *ucom);
static void ubser_stop_read(struct usb2_com_softc *ucom);
static void ubser_start_write(struct usb2_com_softc *ucom);
static void ubser_stop_write(struct usb2_com_softc *ucom);
static int ubser_pre_param(struct usb2_com_softc *, struct termios *);
static void ubser_cfg_set_break(struct usb2_com_softc *, uint8_t);
static void ubser_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static void ubser_start_read(struct usb2_com_softc *);
static void ubser_stop_read(struct usb2_com_softc *);
static void ubser_start_write(struct usb2_com_softc *);
static void ubser_stop_write(struct usb2_com_softc *);
static const struct usb2_config ubser_config[UBSER_TR_MAX] = {

View File

@ -196,27 +196,28 @@ static const struct usb2_device_id uchcom_devs[] = {
/* protypes */
static int uchcom_ioctl(struct usb2_com_softc *ucom, uint32_t cmd, caddr_t data, int flag, struct thread *td);
static int uchcom_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void uchcom_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static void uchcom_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static void uchcom_cfg_set_break(struct usb2_com_softc *sc, uint8_t onoff);
static void uchcom_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void uchcom_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static void uchcom_start_read(struct usb2_com_softc *ucom);
static void uchcom_start_write(struct usb2_com_softc *ucom);
static void uchcom_stop_read(struct usb2_com_softc *ucom);
static void uchcom_stop_write(struct usb2_com_softc *ucom);
static void uchcom_update_version(struct uchcom_softc *sc);
static void uchcom_convert_status(struct uchcom_softc *sc, uint8_t cur);
static void uchcom_update_status(struct uchcom_softc *sc);
static void uchcom_set_dtrrts(struct uchcom_softc *sc);
static int uchcom_calc_divider_settings(struct uchcom_divider *dp, uint32_t rate);
static void uchcom_set_dte_rate(struct uchcom_softc *sc, uint32_t rate);
static void uchcom_set_line_control(struct uchcom_softc *sc, tcflag_t cflag);
static void uchcom_clear_chip(struct uchcom_softc *sc);
static void uchcom_reset_chip(struct uchcom_softc *sc);
static int uchcom_ioctl(struct usb2_com_softc *, uint32_t, caddr_t, int,
struct thread *);
static int uchcom_pre_param(struct usb2_com_softc *, struct termios *);
static void uchcom_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static void uchcom_cfg_param(struct usb2_com_softc *, struct termios *);
static void uchcom_cfg_set_break(struct usb2_com_softc *, uint8_t);
static void uchcom_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void uchcom_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static void uchcom_start_read(struct usb2_com_softc *);
static void uchcom_start_write(struct usb2_com_softc *);
static void uchcom_stop_read(struct usb2_com_softc *);
static void uchcom_stop_write(struct usb2_com_softc *);
static void uchcom_update_version(struct uchcom_softc *);
static void uchcom_convert_status(struct uchcom_softc *, uint8_t);
static void uchcom_update_status(struct uchcom_softc *);
static void uchcom_set_dtrrts(struct uchcom_softc *);
static int uchcom_calc_divider_settings(struct uchcom_divider *, uint32_t);
static void uchcom_set_dte_rate(struct uchcom_softc *, uint32_t);
static void uchcom_set_line_control(struct uchcom_softc *, tcflag_t);
static void uchcom_clear_chip(struct uchcom_softc *);
static void uchcom_reset_chip(struct uchcom_softc *);
static device_probe_t uchcom_probe;
static device_attach_t uchcom_attach;

View File

@ -103,14 +103,14 @@ static usb2_callback_t ucycom_ctrl_write_callback;
static usb2_callback_t ucycom_intr_read_clear_stall_callback;
static usb2_callback_t ucycom_intr_read_callback;
static void ucycom_cfg_open(struct usb2_com_softc *ucom);
static void ucycom_start_read(struct usb2_com_softc *ucom);
static void ucycom_stop_read(struct usb2_com_softc *ucom);
static void ucycom_start_write(struct usb2_com_softc *ucom);
static void ucycom_stop_write(struct usb2_com_softc *ucom);
static void ucycom_cfg_write(struct ucycom_softc *sc, uint32_t baud, uint8_t cfg);
static int ucycom_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void ucycom_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static void ucycom_cfg_open(struct usb2_com_softc *);
static void ucycom_start_read(struct usb2_com_softc *);
static void ucycom_stop_read(struct usb2_com_softc *);
static void ucycom_start_write(struct usb2_com_softc *);
static void ucycom_stop_write(struct usb2_com_softc *);
static void ucycom_cfg_write(struct ucycom_softc *, uint32_t, uint8_t);
static int ucycom_pre_param(struct usb2_com_softc *, struct termios *);
static void ucycom_cfg_param(struct usb2_com_softc *, struct termios *);
static const struct usb2_config ucycom_config[UCYCOM_ENDPT_MAX] = {

View File

@ -195,23 +195,27 @@ static usb2_callback_t ufoma_bulk_write_clear_stall_callback;
static usb2_callback_t ufoma_bulk_read_callback;
static usb2_callback_t ufoma_bulk_read_clear_stall_callback;
static void ufoma_cfg_do_request(struct ufoma_softc *sc, struct usb2_device_request *req, void *data);
static void *ufoma_get_intconf(struct usb2_config_descriptor *cd, struct usb2_interface_descriptor *id, uint8_t type, uint8_t subtype);
static void ufoma_cfg_link_state(struct ufoma_softc *sc);
static void ufoma_cfg_activate_state(struct ufoma_softc *sc, uint16_t state);
static void ufoma_cfg_open(struct usb2_com_softc *ucom);
static void ufoma_cfg_close(struct usb2_com_softc *ucom);
static void ufoma_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static void ufoma_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static void ufoma_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void ufoma_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static int ufoma_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void ufoma_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static int ufoma_modem_setup(device_t dev, struct ufoma_softc *sc, struct usb2_attach_arg *uaa);
static void ufoma_start_read(struct usb2_com_softc *ucom);
static void ufoma_stop_read(struct usb2_com_softc *ucom);
static void ufoma_start_write(struct usb2_com_softc *ucom);
static void ufoma_stop_write(struct usb2_com_softc *ucom);
static void ufoma_cfg_do_request(struct ufoma_softc *,
struct usb2_device_request *, void *);
static void *ufoma_get_intconf(struct usb2_config_descriptor *,
struct usb2_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_cfg_open(struct usb2_com_softc *);
static void ufoma_cfg_close(struct usb2_com_softc *);
static void ufoma_cfg_set_break(struct usb2_com_softc *, uint8_t);
static void ufoma_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static void ufoma_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void ufoma_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static int ufoma_pre_param(struct usb2_com_softc *, struct termios *);
static void ufoma_cfg_param(struct usb2_com_softc *, struct termios *);
static int ufoma_modem_setup(device_t, struct ufoma_softc *,
struct usb2_attach_arg *);
static void ufoma_start_read(struct usb2_com_softc *);
static void ufoma_stop_read(struct usb2_com_softc *);
static void ufoma_start_write(struct usb2_com_softc *);
static void ufoma_stop_write(struct usb2_com_softc *);
static const struct usb2_config
ufoma_ctrl_config[UFOMA_CTRL_ENDPT_MAX] = {

View File

@ -130,20 +130,23 @@ static usb2_callback_t uftdi_write_clear_stall_callback;
static usb2_callback_t uftdi_read_callback;
static usb2_callback_t uftdi_read_clear_stall_callback;
static void uftdi_cfg_do_request(struct uftdi_softc *sc, struct usb2_device_request *req, void *data);
static void uftdi_cfg_open(struct usb2_com_softc *ucom);
static void uftdi_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void uftdi_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static void uftdi_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static int uftdi_set_parm_soft(struct termios *t, struct uftdi_param_config *cfg, uint8_t type);
static int uftdi_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void uftdi_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static void uftdi_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static void uftdi_start_read(struct usb2_com_softc *ucom);
static void uftdi_stop_read(struct usb2_com_softc *ucom);
static void uftdi_start_write(struct usb2_com_softc *ucom);
static void uftdi_stop_write(struct usb2_com_softc *ucom);
static uint8_t uftdi_8u232am_getrate(uint32_t speed, uint16_t *rate);
static void uftdi_cfg_do_request(struct uftdi_softc *,
struct usb2_device_request *, void *);
static void uftdi_cfg_open(struct usb2_com_softc *);
static void uftdi_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void uftdi_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static void uftdi_cfg_set_break(struct usb2_com_softc *, uint8_t);
static int uftdi_set_parm_soft(struct termios *,
struct uftdi_param_config *, uint8_t);
static int uftdi_pre_param(struct usb2_com_softc *, struct termios *);
static void uftdi_cfg_param(struct usb2_com_softc *, struct termios *);
static void uftdi_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static void uftdi_start_read(struct usb2_com_softc *);
static void uftdi_stop_read(struct usb2_com_softc *);
static void uftdi_start_write(struct usb2_com_softc *);
static void uftdi_stop_write(struct usb2_com_softc *);
static uint8_t uftdi_8u232am_getrate(uint32_t, uint16_t *);
static const struct usb2_config uftdi_config[UFTDI_ENDPT_MAX] = {

View File

@ -97,10 +97,10 @@ static usb2_callback_t ugensa_bulk_write_clear_stall_callback;
static usb2_callback_t ugensa_bulk_read_callback;
static usb2_callback_t ugensa_bulk_read_clear_stall_callback;
static void ugensa_start_read(struct usb2_com_softc *ucom);
static void ugensa_stop_read(struct usb2_com_softc *ucom);
static void ugensa_start_write(struct usb2_com_softc *ucom);
static void ugensa_stop_write(struct usb2_com_softc *ucom);
static void ugensa_start_read(struct usb2_com_softc *);
static void ugensa_stop_read(struct usb2_com_softc *);
static void ugensa_start_write(struct usb2_com_softc *);
static void ugensa_stop_write(struct usb2_com_softc *);
static const struct usb2_config
ugensa_xfer_config[UGENSA_N_TRANSFER] = {

View File

@ -102,14 +102,15 @@ static usb2_callback_t uipaq_read_callback;
static usb2_callback_t uipaq_write_clear_stall_callback;
static usb2_callback_t uipaq_read_clear_stall_callback;
static void uipaq_start_read(struct usb2_com_softc *ucom);
static void uipaq_stop_read(struct usb2_com_softc *ucom);
static void uipaq_start_write(struct usb2_com_softc *ucom);
static void uipaq_stop_write(struct usb2_com_softc *ucom);
static void uipaq_cfg_do_request(struct uipaq_softc *sc, struct usb2_device_request *req, void *data);
static void uipaq_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void uipaq_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static void uipaq_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static void uipaq_start_read(struct usb2_com_softc *);
static void uipaq_stop_read(struct usb2_com_softc *);
static void uipaq_start_write(struct usb2_com_softc *);
static void uipaq_stop_write(struct usb2_com_softc *);
static void uipaq_cfg_do_request(struct uipaq_softc *,
struct usb2_device_request *, void *);
static void uipaq_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void uipaq_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static void uipaq_cfg_set_break(struct usb2_com_softc *, uint8_t);
static const struct usb2_config uipaq_config_data[UIPAQ_N_DATA_TRANSFER] = {

View File

@ -124,8 +124,8 @@ static usb2_callback_t ulpt_read_callback;
static usb2_callback_t ulpt_read_clear_stall_callback;
static usb2_callback_t ulpt_status_callback;
static void ulpt_reset(struct ulpt_softc *sc);
static void ulpt_watchdog(void *arg);
static void ulpt_reset(struct ulpt_softc *);
static void ulpt_watchdog(void *);
static usb2_fifo_close_t ulpt_close;
static usb2_fifo_cmd_t ulpt_start_read;

View File

@ -120,18 +120,20 @@ static usb2_callback_t umct_write_clear_stall_callback;
static usb2_callback_t umct_read_callback;
static usb2_callback_t umct_read_clear_stall_callback;
static void umct_cfg_do_request(struct umct_softc *sc, uint8_t request, uint16_t len, uint32_t value);
static void umct_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static void umct_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static void umct_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void umct_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static uint8_t umct_calc_baud(uint32_t baud);
static int umct_pre_param(struct usb2_com_softc *ucom, struct termios *ti);
static void umct_cfg_param(struct usb2_com_softc *ucom, struct termios *ti);
static void umct_start_read(struct usb2_com_softc *ucom);
static void umct_stop_read(struct usb2_com_softc *ucom);
static void umct_start_write(struct usb2_com_softc *ucom);
static void umct_stop_write(struct usb2_com_softc *ucom);
static void umct_cfg_do_request(struct umct_softc *, uint8_t, uint16_t,
uint32_t);
static void umct_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static void umct_cfg_set_break(struct usb2_com_softc *, uint8_t);
static void umct_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void umct_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static uint8_t umct_calc_baud(uint32_t);
static int umct_pre_param(struct usb2_com_softc *, struct termios *);
static void umct_cfg_param(struct usb2_com_softc *, struct termios *);
static void umct_start_read(struct usb2_com_softc *);
static void umct_stop_read(struct usb2_com_softc *);
static void umct_start_write(struct usb2_com_softc *);
static void umct_stop_write(struct usb2_com_softc *);
static const struct usb2_config umct_config[UMCT_ENDPT_MAX] = {

View File

@ -168,21 +168,25 @@ static usb2_callback_t umodem_read_callback;
static usb2_callback_t umodem_write_clear_stall_callback;
static usb2_callback_t umodem_read_clear_stall_callback;
static void umodem_start_read(struct usb2_com_softc *ucom);
static void umodem_stop_read(struct usb2_com_softc *ucom);
static void umodem_start_write(struct usb2_com_softc *ucom);
static void umodem_stop_write(struct usb2_com_softc *ucom);
static void umodem_get_caps(struct usb2_attach_arg *uaa, uint8_t *cm, uint8_t *acm);
static void umodem_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static int umodem_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void umodem_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static int umodem_ioctl(struct usb2_com_softc *ucom, uint32_t cmd, caddr_t data, int flag, struct thread *td);
static void umodem_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void umodem_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static void umodem_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static void *umodem_get_desc(struct usb2_attach_arg *uaa, uint8_t type, uint8_t subtype);
static usb2_error_t umodem_set_comm_feature(struct usb2_device *udev, uint8_t iface_no, uint16_t feature, uint16_t state);
static void umodem_cfg_do_request(struct umodem_softc *sc, struct usb2_device_request *req, void *data);
static void umodem_start_read(struct usb2_com_softc *);
static void umodem_stop_read(struct usb2_com_softc *);
static void umodem_start_write(struct usb2_com_softc *);
static void umodem_stop_write(struct usb2_com_softc *);
static void umodem_get_caps(struct usb2_attach_arg *, uint8_t *, uint8_t *);
static void umodem_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static int umodem_pre_param(struct usb2_com_softc *, struct termios *);
static void umodem_cfg_param(struct usb2_com_softc *, struct termios *);
static int umodem_ioctl(struct usb2_com_softc *, uint32_t, caddr_t, int,
struct thread *);
static void umodem_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void umodem_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static void umodem_cfg_set_break(struct usb2_com_softc *, uint8_t);
static void *umodem_get_desc(struct usb2_attach_arg *, uint8_t, uint8_t);
static usb2_error_t umodem_set_comm_feature(struct usb2_device *, uint8_t,
uint16_t, uint16_t);
static void umodem_cfg_do_request(struct umodem_softc *,
struct usb2_device_request *, void *);
static const struct usb2_config umodem_config_data[UMODEM_N_DATA_TRANSFER] = {

View File

@ -183,22 +183,23 @@ static usb2_callback_t umoscom_read_clear_stall_callback;
static usb2_callback_t umoscom_intr_callback;
static usb2_callback_t umoscom_intr_clear_stall_callback;
static void umoscom_cfg_open(struct usb2_com_softc *ucom);
static void umoscom_cfg_close(struct usb2_com_softc *ucom);
static void umoscom_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static void umoscom_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void umoscom_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static int umoscom_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void umoscom_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static void umoscom_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static void umoscom_cfg_write(struct umoscom_softc *sc, uint16_t reg, uint16_t val);
static uint8_t umoscom_cfg_read(struct umoscom_softc *sc, uint16_t reg);
static void umoscom_cfg_do_request(struct umoscom_softc *sc, struct usb2_device_request *req, void *data);
static void umoscom_start_read(struct usb2_com_softc *ucom);
static void umoscom_stop_read(struct usb2_com_softc *ucom);
static void umoscom_start_write(struct usb2_com_softc *ucom);
static void umoscom_stop_write(struct usb2_com_softc *ucom);
static void umoscom_cfg_open(struct usb2_com_softc *);
static void umoscom_cfg_close(struct usb2_com_softc *);
static void umoscom_cfg_set_break(struct usb2_com_softc *, uint8_t);
static void umoscom_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void umoscom_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static int umoscom_pre_param(struct usb2_com_softc *, struct termios *);
static void umoscom_cfg_param(struct usb2_com_softc *, struct termios *);
static void umoscom_cfg_get_status(struct usb2_com_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_cfg_do_request(struct umoscom_softc *,
struct usb2_device_request *, void *);
static void umoscom_start_read(struct usb2_com_softc *);
static void umoscom_stop_read(struct usb2_com_softc *);
static void umoscom_start_write(struct usb2_com_softc *);
static void umoscom_stop_write(struct usb2_com_softc *);
static const struct usb2_config umoscom_config_data[UMOSCOM_N_DATA_TRANSFER] = {

View File

@ -158,20 +158,23 @@ struct uplcom_softc {
/* prototypes */
static usb2_error_t uplcom_reset(struct uplcom_softc *sc, struct usb2_device *udev);
static int uplcom_pl2303x_init(struct usb2_device *udev);
static void uplcom_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void uplcom_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static void uplcom_cfg_set_break(struct usb2_com_softc *sc, uint8_t onoff);
static int uplcom_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void uplcom_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static void uplcom_start_read(struct usb2_com_softc *ucom);
static void uplcom_stop_read(struct usb2_com_softc *ucom);
static void uplcom_start_write(struct usb2_com_softc *ucom);
static void uplcom_stop_write(struct usb2_com_softc *ucom);
static void uplcom_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static int uplcom_ioctl(struct usb2_com_softc *ucom, uint32_t cmd, caddr_t data, int flag, struct thread *td);
static void uplcom_cfg_do_request(struct uplcom_softc *sc, struct usb2_device_request *req, void *data);
static usb2_error_t uplcom_reset(struct uplcom_softc *, struct usb2_device *);
static int uplcom_pl2303x_init(struct usb2_device *);
static void uplcom_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void uplcom_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static void uplcom_cfg_set_break(struct usb2_com_softc *, uint8_t);
static int uplcom_pre_param(struct usb2_com_softc *, struct termios *);
static void uplcom_cfg_param(struct usb2_com_softc *, struct termios *);
static void uplcom_start_read(struct usb2_com_softc *);
static void uplcom_stop_read(struct usb2_com_softc *);
static void uplcom_start_write(struct usb2_com_softc *);
static void uplcom_stop_write(struct usb2_com_softc *);
static void uplcom_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static int uplcom_ioctl(struct usb2_com_softc *, uint32_t, caddr_t, int,
struct thread *);
static void uplcom_cfg_do_request(struct uplcom_softc *,
struct usb2_device_request *, void *);
static device_probe_t uplcom_probe;
static device_attach_t uplcom_attach;

View File

@ -117,16 +117,17 @@ static usb2_config_td_command_t usb2_com_cfg_rts;
static usb2_config_td_command_t usb2_com_cfg_status_change;
static usb2_config_td_command_t usb2_com_cfg_param;
static uint8_t usb2_com_units_alloc(uint32_t sub_units, uint32_t *p_root_unit);
static void usb2_com_units_free(uint32_t root_unit, uint32_t sub_units);
static int usb2_com_attach_sub(struct usb2_com_softc *sc);
static void usb2_com_detach_sub(struct usb2_com_softc *sc);
static void usb2_com_queue_command(struct usb2_com_softc *sc, usb2_config_td_command_t *cmd, int flag);
static void usb2_com_shutdown(struct usb2_com_softc *sc);
static void usb2_com_start_transfers(struct usb2_com_softc *sc);
static void usb2_com_break(struct usb2_com_softc *sc, uint8_t onoff);
static void usb2_com_dtr(struct usb2_com_softc *sc, uint8_t onoff);
static void usb2_com_rts(struct usb2_com_softc *sc, uint8_t onoff);
static uint8_t usb2_com_units_alloc(uint32_t, uint32_t *);
static void usb2_com_units_free(uint32_t, uint32_t);
static int usb2_com_attach_sub(struct usb2_com_softc *);
static void usb2_com_detach_sub(struct usb2_com_softc *);
static void usb2_com_queue_command(struct usb2_com_softc *,
usb2_config_td_command_t *, int);
static void usb2_com_shutdown(struct usb2_com_softc *);
static void usb2_com_start_transfers(struct usb2_com_softc *);
static void usb2_com_break(struct usb2_com_softc *, uint8_t);
static void usb2_com_dtr(struct usb2_com_softc *, uint8_t);
static void usb2_com_rts(struct usb2_com_softc *, uint8_t);
static tsw_open_t usb2_com_open;
static tsw_close_t usb2_com_close;

View File

@ -148,11 +148,16 @@ struct usb2_com_softc {
uint8_t sc_ttyfreed; /* set when TTY has been freed */
};
int usb2_com_attach(struct usb2_com_super_softc *ssc, struct usb2_com_softc *sc, uint32_t sub_units, void *parent, const struct usb2_com_callback *callback, struct mtx *p_mtx);
void usb2_com_detach(struct usb2_com_super_softc *ssc, struct usb2_com_softc *sc, uint32_t sub_units);
int usb2_com_attach(struct usb2_com_super_softc *ssc,
struct usb2_com_softc *sc, uint32_t sub_units, void *parent,
const struct usb2_com_callback *callback, struct mtx *p_mtx);
void usb2_com_detach(struct usb2_com_super_softc *ssc,
struct usb2_com_softc *sc, uint32_t sub_units);
void usb2_com_status_change(struct usb2_com_softc *);
uint8_t usb2_com_get_data(struct usb2_com_softc *sc, struct usb2_page_cache *pc, uint32_t offset, uint32_t len, uint32_t *actlen);
void usb2_com_put_data(struct usb2_com_softc *sc, struct usb2_page_cache *pc, uint32_t offset, uint32_t len);
uint8_t usb2_com_get_data(struct usb2_com_softc *sc, struct usb2_page_cache *pc,
uint32_t offset, uint32_t len, uint32_t *actlen);
void usb2_com_put_data(struct usb2_com_softc *sc, struct usb2_page_cache *pc,
uint32_t offset, uint32_t len);
uint8_t usb2_com_cfg_sleep(struct usb2_com_softc *sc, uint32_t timeout);
uint8_t usb2_com_cfg_is_gone(struct usb2_com_softc *sc);

View File

@ -180,13 +180,14 @@ static usb2_callback_t uvisor_write_clear_stall_callback;
static usb2_callback_t uvisor_read_callback;
static usb2_callback_t uvisor_read_clear_stall_callback;
static usb2_error_t uvisor_init(struct uvisor_softc *sc, struct usb2_device *udev, struct usb2_config *config);
static void uvisor_cfg_open(struct usb2_com_softc *ucom);
static void uvisor_cfg_close(struct usb2_com_softc *ucom);
static void uvisor_start_read(struct usb2_com_softc *ucom);
static void uvisor_stop_read(struct usb2_com_softc *ucom);
static void uvisor_start_write(struct usb2_com_softc *ucom);
static void uvisor_stop_write(struct usb2_com_softc *ucom);
static usb2_error_t uvisor_init(struct uvisor_softc *, struct usb2_device *,
struct usb2_config *);
static void uvisor_cfg_open(struct usb2_com_softc *);
static void uvisor_cfg_close(struct usb2_com_softc *);
static void uvisor_start_read(struct usb2_com_softc *);
static void uvisor_stop_read(struct usb2_com_softc *);
static void uvisor_start_write(struct usb2_com_softc *);
static void uvisor_stop_write(struct usb2_com_softc *);
static const struct usb2_config uvisor_config[UVISOR_N_TRANSFER] = {

View File

@ -158,22 +158,24 @@ static usb2_callback_t uvscom_read_clear_stall_callback;
static usb2_callback_t uvscom_intr_callback;
static usb2_callback_t uvscom_intr_clear_stall_callback;
static void uvscom_cfg_set_dtr(struct usb2_com_softc *ucom, uint8_t onoff);
static void uvscom_cfg_set_rts(struct usb2_com_softc *ucom, uint8_t onoff);
static void uvscom_cfg_set_break(struct usb2_com_softc *ucom, uint8_t onoff);
static int uvscom_pre_param(struct usb2_com_softc *ucom, struct termios *t);
static void uvscom_cfg_param(struct usb2_com_softc *ucom, struct termios *t);
static int uvscom_pre_open(struct usb2_com_softc *ucom);
static void uvscom_cfg_open(struct usb2_com_softc *ucom);
static void uvscom_cfg_close(struct usb2_com_softc *ucom);
static void uvscom_start_read(struct usb2_com_softc *ucom);
static void uvscom_stop_read(struct usb2_com_softc *ucom);
static void uvscom_start_write(struct usb2_com_softc *ucom);
static void uvscom_stop_write(struct usb2_com_softc *ucom);
static void uvscom_cfg_get_status(struct usb2_com_softc *ucom, uint8_t *lsr, uint8_t *msr);
static int uvscom_ioctl(struct usb2_com_softc *ucom, uint32_t cmd, caddr_t data, int fflag, struct thread *td);
static void uvscom_cfg_write(struct uvscom_softc *sc, uint8_t index, uint16_t value);
static uint16_t uvscom_cfg_read_status(struct uvscom_softc *sc);
static void uvscom_cfg_set_dtr(struct usb2_com_softc *, uint8_t);
static void uvscom_cfg_set_rts(struct usb2_com_softc *, uint8_t);
static void uvscom_cfg_set_break(struct usb2_com_softc *, uint8_t);
static int uvscom_pre_param(struct usb2_com_softc *, struct termios *);
static void uvscom_cfg_param(struct usb2_com_softc *, struct termios *);
static int uvscom_pre_open(struct usb2_com_softc *);
static void uvscom_cfg_open(struct usb2_com_softc *);
static void uvscom_cfg_close(struct usb2_com_softc *);
static void uvscom_start_read(struct usb2_com_softc *);
static void uvscom_stop_read(struct usb2_com_softc *);
static void uvscom_start_write(struct usb2_com_softc *);
static void uvscom_stop_write(struct usb2_com_softc *);
static void uvscom_cfg_get_status(struct usb2_com_softc *, uint8_t *,
uint8_t *);
static int uvscom_ioctl(struct usb2_com_softc *, uint32_t, caddr_t, int,
struct thread *);
static void uvscom_cfg_write(struct uvscom_softc *, uint8_t, uint16_t);
static uint16_t uvscom_cfg_read_status(struct uvscom_softc *);
static const struct usb2_config uvscom_config[UVSCOM_N_TRANSFER] = {

View File

@ -316,65 +316,78 @@ static usb2_callback_t umidi_bulk_read_callback;
static usb2_callback_t umidi_write_clear_stall_callback;
static usb2_callback_t umidi_bulk_write_callback;
#if USB_DEBUG
static void uaudio_chan_dump_ep_desc(const usb2_endpoint_descriptor_audio_t *ed);
#endif
static void uaudio_chan_fill_info_sub(struct uaudio_softc *sc, struct usb2_device *udev, uint32_t rate, uint16_t fps, uint8_t channels, uint8_t bit_resolution);
static void uaudio_chan_fill_info(struct uaudio_softc *sc, struct usb2_device *udev);
static void uaudio_mixer_add_ctl_sub(struct uaudio_softc *sc, struct uaudio_mixer_node *mc);
static void uaudio_mixer_add_ctl(struct uaudio_softc *sc, struct uaudio_mixer_node *mc);
static void uaudio_mixer_add_input(struct uaudio_softc *sc, const struct uaudio_terminal_node *iot, int id);
static void uaudio_mixer_add_output(struct uaudio_softc *sc, const struct uaudio_terminal_node *iot, int id);
static void uaudio_mixer_add_mixer(struct uaudio_softc *sc, const struct uaudio_terminal_node *iot, int id);
static void uaudio_mixer_add_selector(struct uaudio_softc *sc, const struct uaudio_terminal_node *iot, int id);
static uint32_t uaudio_mixer_feature_get_bmaControls(const struct usb2_audio_feature_unit *d, uint8_t index);
static void uaudio_mixer_add_feature(struct uaudio_softc *sc, const struct uaudio_terminal_node *iot, int id);
static void uaudio_mixer_add_processing_updown(struct uaudio_softc *sc, const struct uaudio_terminal_node *iot, int id);
static void uaudio_mixer_add_processing(struct uaudio_softc *sc, const struct uaudio_terminal_node *iot, int id);
static void uaudio_mixer_add_extension(struct uaudio_softc *sc, const struct uaudio_terminal_node *iot, int id);
static const void *uaudio_mixer_verify_desc(const void *arg, uint32_t len);
static void uaudio_chan_fill_info_sub(struct uaudio_softc *,
struct usb2_device *, uint32_t, uint16_t, uint8_t, uint8_t);
static void uaudio_chan_fill_info(struct uaudio_softc *,
struct usb2_device *);
static void uaudio_mixer_add_ctl_sub(struct uaudio_softc *,
struct uaudio_mixer_node *);
static void uaudio_mixer_add_ctl(struct uaudio_softc *,
struct uaudio_mixer_node *);
static void uaudio_mixer_add_input(struct uaudio_softc *,
const struct uaudio_terminal_node *, int);
static void uaudio_mixer_add_output(struct uaudio_softc *,
const struct uaudio_terminal_node *, int);
static void uaudio_mixer_add_mixer(struct uaudio_softc *,
const struct uaudio_terminal_node *, int);
static void uaudio_mixer_add_selector(struct uaudio_softc *,
const struct uaudio_terminal_node *, int);
static uint32_t uaudio_mixer_feature_get_bmaControls(
const struct usb2_audio_feature_unit *, uint8_t);
static void uaudio_mixer_add_feature(struct uaudio_softc *,
const struct uaudio_terminal_node *, int);
static void uaudio_mixer_add_processing_updown(struct uaudio_softc *,
const struct uaudio_terminal_node *, int);
static void uaudio_mixer_add_processing(struct uaudio_softc *,
const struct uaudio_terminal_node *, int);
static void uaudio_mixer_add_extension(struct uaudio_softc *,
const struct uaudio_terminal_node *, int);
static struct usb2_audio_cluster uaudio_mixer_get_cluster(uint8_t,
const struct uaudio_terminal_node *);
static uint16_t uaudio_mixer_determine_class(const struct uaudio_terminal_node *,
struct uaudio_mixer_node *);
static uint16_t uaudio_mixer_feature_name(const struct uaudio_terminal_node *,
struct uaudio_mixer_node *);
static const struct uaudio_terminal_node *uaudio_mixer_get_input(
const struct uaudio_terminal_node *, uint8_t);
static const struct uaudio_terminal_node *uaudio_mixer_get_output(
const struct uaudio_terminal_node *, uint8_t);
static void uaudio_mixer_find_inputs_sub(struct uaudio_terminal_node *,
const uint8_t *, uint8_t, struct uaudio_search_result *);
static void uaudio_mixer_find_outputs_sub(struct uaudio_terminal_node *,
uint8_t, uint8_t, struct uaudio_search_result *);
static void uaudio_mixer_fill_info(struct uaudio_softc *,
struct usb2_device *, void *);
static uint16_t uaudio_mixer_get(struct usb2_device *, uint8_t,
struct uaudio_mixer_node *);
static void uaudio_mixer_ctl_set(struct uaudio_softc *,
struct uaudio_mixer_node *, uint8_t, int32_t val);
static usb2_error_t uaudio_set_speed(struct usb2_device *, uint8_t, uint32_t);
static int uaudio_mixer_signext(uint8_t, int);
static int uaudio_mixer_bsd2value(struct uaudio_mixer_node *, int32_t val);
static const void *uaudio_mixer_verify_desc(const void *, uint32_t);
static void uaudio_mixer_init(struct uaudio_softc *);
static uint8_t umidi_convert_to_usb(struct umidi_sub_chan *, uint8_t, uint8_t);
static struct umidi_sub_chan *umidi_sub_by_fifo(struct usb2_fifo *);
static void umidi_start_read(struct usb2_fifo *);
static void umidi_stop_read(struct usb2_fifo *);
static void umidi_start_write(struct usb2_fifo *);
static void umidi_stop_write(struct usb2_fifo *);
static int umidi_open(struct usb2_fifo *, int, struct thread *);
static int umidi_ioctl(struct usb2_fifo *, u_long cmd, void *, int, struct thread *);
static void umidi_close(struct usb2_fifo *, int, struct thread *);
static void umidi_init(device_t dev);
static int32_t umidi_probe(device_t dev);
static int32_t umidi_detach(device_t dev);
#if USB_DEBUG
static void uaudio_mixer_dump_cluster(uint8_t id, const struct uaudio_terminal_node *iot);
static void uaudio_chan_dump_ep_desc(
const usb2_endpoint_descriptor_audio_t *);
static void uaudio_mixer_dump_cluster(uint8_t,
const struct uaudio_terminal_node *);
static const char *uaudio_mixer_get_terminal_name(uint16_t);
#endif
static struct usb2_audio_cluster uaudio_mixer_get_cluster(uint8_t id, const struct uaudio_terminal_node *iot);
#if USB_DEBUG
static const char *uaudio_mixer_get_terminal_name(uint16_t terminal_type);
#endif
static uint16_t uaudio_mixer_determine_class(const struct uaudio_terminal_node *iot, struct uaudio_mixer_node *mix);
static uint16_t uaudio_mixer_feature_name(const struct uaudio_terminal_node *iot, struct uaudio_mixer_node *mix);
static const struct uaudio_terminal_node *uaudio_mixer_get_input(const struct uaudio_terminal_node *iot, uint8_t index);
static const struct uaudio_terminal_node *uaudio_mixer_get_output(const struct uaudio_terminal_node *iot, uint8_t index);
static void uaudio_mixer_find_inputs_sub(struct uaudio_terminal_node *root, const uint8_t *p_id, uint8_t n_id, struct uaudio_search_result *info);
static void uaudio_mixer_find_outputs_sub(struct uaudio_terminal_node *root, uint8_t id, uint8_t n_id, struct uaudio_search_result *info);
static void uaudio_mixer_fill_info(struct uaudio_softc *sc, struct usb2_device *udev, void *desc);
static uint16_t uaudio_mixer_get(struct usb2_device *udev, uint8_t what, struct uaudio_mixer_node *mc);
static usb2_error_t uaudio_set_speed(struct usb2_device *udev, uint8_t endpt, uint32_t speed);
static int uaudio_mixer_signext(uint8_t type, int val);
static int uaudio_mixer_bsd2value(struct uaudio_mixer_node *mc, int32_t val);
static void uaudio_mixer_ctl_set(struct uaudio_softc *sc, struct uaudio_mixer_node *mc, uint8_t chan, int32_t val);
static void uaudio_mixer_init(struct uaudio_softc *sc);
static uint8_t umidi_convert_to_usb(struct umidi_sub_chan *sub, uint8_t cn, uint8_t b);
static struct umidi_sub_chan *umidi_sub_by_fifo(struct usb2_fifo *fifo);
static void umidi_start_read(struct usb2_fifo *fifo);
static void umidi_stop_read(struct usb2_fifo *fifo);
static void umidi_start_write(struct usb2_fifo *fifo);
static void umidi_stop_write(struct usb2_fifo *fifo);
static int umidi_open(struct usb2_fifo *fifo, int fflags, struct thread *td);
static int umidi_ioctl(struct usb2_fifo *fifo, u_long cmd, void *data, int fflags, struct thread *td);
static void umidi_close(struct usb2_fifo *fifo, int fflags, struct thread *td);
static void umidi_init(device_t dev);
static int32_t umidi_probe(device_t dev);
static int32_t umidi_detach(device_t dev);
static const struct usb2_config
uaudio_cfg_record_full_speed[UAUDIO_NCHANBUFS] = {
[0] = {

View File

@ -33,22 +33,30 @@ struct snd_dbuf;
struct snd_mixer;
struct pcm_channel;
extern int uaudio_attach_sub(device_t dev, kobj_class_t mixer_class, kobj_class_t chan_class);
extern int uaudio_detach_sub(device_t dev);
extern void *uaudio_chan_init(struct uaudio_softc *sc, struct snd_dbuf *b, struct pcm_channel *c, int dir);
extern int uaudio_chan_free(struct uaudio_chan *ch);
extern int uaudio_chan_set_param_blocksize(struct uaudio_chan *ch, uint32_t blocksize);
extern int uaudio_chan_set_param_fragments(struct uaudio_chan *ch, uint32_t blocksize, uint32_t blockcount);
extern int uaudio_chan_set_param_speed(struct uaudio_chan *ch, uint32_t speed);
extern int uaudio_chan_getptr(struct uaudio_chan *ch);
extern struct pcmchan_caps *uaudio_chan_getcaps(struct uaudio_chan *ch);
extern int uaudio_chan_set_param_format(struct uaudio_chan *ch, uint32_t format);
extern int uaudio_chan_start(struct uaudio_chan *ch);
extern int uaudio_chan_stop(struct uaudio_chan *ch);
extern int uaudio_mixer_init_sub(struct uaudio_softc *sc, struct snd_mixer *m);
extern int uaudio_mixer_uninit_sub(struct uaudio_softc *sc);
extern void uaudio_mixer_set(struct uaudio_softc *sc, unsigned type, unsigned left, unsigned right);
extern uint32_t uaudio_mixer_setrecsrc(struct uaudio_softc *sc, uint32_t src);
extern int uaudio_attach_sub(device_t dev, kobj_class_t mixer_class,
kobj_class_t chan_class);
extern int uaudio_detach_sub(device_t dev);
extern void *uaudio_chan_init(struct uaudio_softc *sc, struct snd_dbuf *b,
struct pcm_channel *c, int dir);
extern int uaudio_chan_free(struct uaudio_chan *ch);
extern int uaudio_chan_set_param_blocksize(struct uaudio_chan *ch,
uint32_t blocksize);
extern int uaudio_chan_set_param_fragments(struct uaudio_chan *ch,
uint32_t blocksize, uint32_t blockcount);
extern int uaudio_chan_set_param_speed(struct uaudio_chan *ch,
uint32_t speed);
extern int uaudio_chan_getptr(struct uaudio_chan *ch);
extern struct pcmchan_caps *uaudio_chan_getcaps(struct uaudio_chan *ch);
extern int uaudio_chan_set_param_format(struct uaudio_chan *ch,
uint32_t format);
extern int uaudio_chan_start(struct uaudio_chan *ch);
extern int uaudio_chan_stop(struct uaudio_chan *ch);
extern int uaudio_mixer_init_sub(struct uaudio_softc *sc,
struct snd_mixer *m);
extern int uaudio_mixer_uninit_sub(struct uaudio_softc *sc);
extern void uaudio_mixer_set(struct uaudio_softc *sc, unsigned type,
unsigned left, unsigned right);
extern uint32_t uaudio_mixer_setrecsrc(struct uaudio_softc *sc, uint32_t src);
int uaudio_get_vendor(device_t dev);
int uaudio_get_product(device_t dev);

View File

@ -1000,38 +1000,46 @@ static usb2_callback_t umass_t_cbi_data_write_callback;
static usb2_callback_t umass_t_cbi_data_wr_cs_callback;
static usb2_callback_t umass_t_cbi_status_callback;
static void umass_cancel_ccb(struct umass_softc *sc);
static void umass_init_shuttle(struct umass_softc *sc);
static void umass_reset(struct umass_softc *sc);
static void umass_t_bbb_data_clear_stall_callback(struct usb2_xfer *xfer, uint8_t next_xfer, uint8_t stall_xfer);
static void umass_command_start(struct umass_softc *sc, uint8_t dir, void *data_ptr, uint32_t data_len, uint32_t data_timeout, umass_callback_t *callback, union ccb *ccb);
static uint8_t umass_bbb_get_max_lun(struct umass_softc *sc);
static void umass_cbi_start_status(struct umass_softc *sc);
static void umass_t_cbi_data_clear_stall_callback(struct usb2_xfer *xfer, uint8_t next_xfer, uint8_t stall_xfer);
static int umass_cam_attach_sim(struct umass_softc *sc);
static void umass_cam_rescan_callback(struct cam_periph *periph, union ccb *ccb);
static void umass_cam_rescan(struct umass_softc *sc);
static void umass_cam_attach(struct umass_softc *sc);
static void umass_cam_detach_sim(struct umass_softc *sc);
static void umass_cam_action(struct cam_sim *sim, union ccb *ccb);
static void umass_cam_poll(struct cam_sim *sim);
static void umass_cam_cb(struct umass_softc *sc, union ccb *ccb, uint32_t residue, uint8_t status);
static void umass_cam_sense_cb(struct umass_softc *sc, union ccb *ccb, uint32_t residue, uint8_t status);
static void umass_cam_quirk_cb(struct umass_softc *sc, union ccb *ccb, uint32_t residue, uint8_t status);
static uint8_t umass_scsi_transform(struct umass_softc *sc, uint8_t *cmd_ptr, uint8_t cmd_len);
static uint8_t umass_rbc_transform(struct umass_softc *sc, uint8_t *cmd_ptr, uint8_t cmd_len);
static uint8_t umass_ufi_transform(struct umass_softc *sc, uint8_t *cmd_ptr, uint8_t cmd_len);
static uint8_t umass_atapi_transform(struct umass_softc *sc, uint8_t *cmd_ptr, uint8_t cmd_len);
static uint8_t umass_no_transform(struct umass_softc *sc, uint8_t *cmd, uint8_t cmdlen);
static uint8_t umass_std_transform(struct umass_softc *sc, union ccb *ccb, uint8_t *cmd, uint8_t cmdlen);
static int umass_driver_loaded(struct module *mod, int what, void *arg);
static void umass_cancel_ccb(struct umass_softc *);
static void umass_init_shuttle(struct umass_softc *);
static void umass_reset(struct umass_softc *);
static void umass_t_bbb_data_clear_stall_callback(struct usb2_xfer *,
uint8_t, uint8_t);
static void umass_command_start(struct umass_softc *, uint8_t, void *,
uint32_t, uint32_t, umass_callback_t *, union ccb *);
static uint8_t umass_bbb_get_max_lun(struct umass_softc *);
static void umass_cbi_start_status(struct umass_softc *);
static void umass_t_cbi_data_clear_stall_callback(struct usb2_xfer *,
uint8_t, uint8_t);
static int umass_cam_attach_sim(struct umass_softc *);
static void umass_cam_rescan_callback(struct cam_periph *, union ccb *);
static void umass_cam_rescan(struct umass_softc *);
static void umass_cam_attach(struct umass_softc *);
static void umass_cam_detach_sim(struct umass_softc *);
static void umass_cam_action(struct cam_sim *, union ccb *);
static void umass_cam_poll(struct cam_sim *);
static void umass_cam_cb(struct umass_softc *, union ccb *, uint32_t,
uint8_t);
static void umass_cam_sense_cb(struct umass_softc *, union ccb *, uint32_t,
uint8_t);
static void umass_cam_quirk_cb(struct umass_softc *, union ccb *, uint32_t,
uint8_t);
static uint8_t umass_scsi_transform(struct umass_softc *, uint8_t *, uint8_t);
static uint8_t umass_rbc_transform(struct umass_softc *, uint8_t *, uint8_t);
static uint8_t umass_ufi_transform(struct umass_softc *, uint8_t *, uint8_t);
static uint8_t umass_atapi_transform(struct umass_softc *, uint8_t *,
uint8_t);
static uint8_t umass_no_transform(struct umass_softc *, uint8_t *, uint8_t);
static uint8_t umass_std_transform(struct umass_softc *, union ccb *, uint8_t
*, uint8_t);
static int umass_driver_loaded(struct module *, int what, void *);
#if USB_DEBUG
static void umass_bbb_dump_cbw(struct umass_softc *sc, umass_bbb_cbw_t *cbw);
static void umass_bbb_dump_csw(struct umass_softc *sc, umass_bbb_csw_t *csw);
static void umass_cbi_dump_cmd(struct umass_softc *sc, void *cmd, uint8_t cmdlen);
static void umass_dump_buffer(struct umass_softc *sc, uint8_t *buffer, uint32_t buflen, uint32_t printlen);
static void umass_bbb_dump_cbw(struct umass_softc *, umass_bbb_cbw_t *);
static void umass_bbb_dump_csw(struct umass_softc *, umass_bbb_csw_t *);
static void umass_cbi_dump_cmd(struct umass_softc *, void *, uint8_t);
static void umass_dump_buffer(struct umass_softc *, uint8_t *, uint32_t,
uint32_t);
#endif
struct usb2_config umass_bbb_config[UMASS_T_BBB_MAX] = {

View File

@ -55,27 +55,41 @@ MODULE_VERSION(usb2_template, 1);
/* function prototypes */
static void usb2_make_raw_desc(struct usb2_temp_setup *temp, const uint8_t *raw);
static void usb2_make_endpoint_desc(struct usb2_temp_setup *temp, const struct usb2_temp_endpoint_desc *ted);
static void usb2_make_interface_desc(struct usb2_temp_setup *temp, const struct usb2_temp_interface_desc *tid);
static void usb2_make_config_desc(struct usb2_temp_setup *temp, const struct usb2_temp_config_desc *tcd);
static void usb2_make_device_desc(struct usb2_temp_setup *temp, const struct usb2_temp_device_desc *tdd);
static uint8_t usb2_hw_ep_match(const struct usb2_hw_ep_profile *pf, uint8_t ep_type, uint8_t ep_dir_in);
static uint8_t usb2_hw_ep_find_match(struct usb2_hw_ep_scratch *ues, struct usb2_hw_ep_scratch_sub *ep, uint8_t is_simplex);
static uint8_t usb2_hw_ep_get_needs(struct usb2_hw_ep_scratch *ues, uint8_t ep_type, uint8_t is_complete);
static usb2_error_t usb2_hw_ep_resolve(struct usb2_device *udev, struct usb2_descriptor *desc);
static const struct usb2_temp_device_desc *usb2_temp_get_tdd(struct usb2_device *udev);
static void *usb2_temp_get_device_desc(struct usb2_device *udev);
static void *usb2_temp_get_qualifier_desc(struct usb2_device *udev);
static void *usb2_temp_get_config_desc(struct usb2_device *udev, uint16_t *pLength, uint8_t index);
static const void *usb2_temp_get_string_desc(struct usb2_device *udev, uint16_t lang_id, uint8_t string_index);
static const void *usb2_temp_get_vendor_desc(struct usb2_device *udev, const struct usb2_device_request *req);
static const void *usb2_temp_get_hub_desc(struct usb2_device *udev);
static void usb2_temp_get_desc(struct usb2_device *udev, struct usb2_device_request *req, const void **pPtr, uint16_t *pLength);
static usb2_error_t usb2_temp_setup(struct usb2_device *udev, const struct usb2_temp_device_desc *tdd);
static void usb2_temp_unsetup(struct usb2_device *udev);
static usb2_error_t usb2_temp_setup_by_index(struct usb2_device *udev, uint16_t index);
static void usb2_temp_init(void *arg);
static void usb2_make_raw_desc(struct usb2_temp_setup *, const uint8_t *);
static void usb2_make_endpoint_desc(struct usb2_temp_setup *,
const struct usb2_temp_endpoint_desc *);
static void usb2_make_interface_desc(struct usb2_temp_setup *,
const struct usb2_temp_interface_desc *);
static void usb2_make_config_desc(struct usb2_temp_setup *,
const struct usb2_temp_config_desc *);
static void usb2_make_device_desc(struct usb2_temp_setup *,
const struct usb2_temp_device_desc *);
static uint8_t usb2_hw_ep_match(const struct usb2_hw_ep_profile *, uint8_t,
uint8_t);
static uint8_t usb2_hw_ep_find_match(struct usb2_hw_ep_scratch *,
struct usb2_hw_ep_scratch_sub *, uint8_t);
static uint8_t usb2_hw_ep_get_needs(struct usb2_hw_ep_scratch *, uint8_t,
uint8_t);
static usb2_error_t usb2_hw_ep_resolve(struct usb2_device *,
struct usb2_descriptor *);
static const struct usb2_temp_device_desc *usb2_temp_get_tdd(struct usb2_device *);
static void *usb2_temp_get_device_desc(struct usb2_device *);
static void *usb2_temp_get_qualifier_desc(struct usb2_device *);
static void *usb2_temp_get_config_desc(struct usb2_device *, uint16_t *,
uint8_t);
static const void *usb2_temp_get_string_desc(struct usb2_device *, uint16_t,
uint8_t);
static const void *usb2_temp_get_vendor_desc(struct usb2_device *,
const struct usb2_device_request *);
static const void *usb2_temp_get_hub_desc(struct usb2_device *);
static void usb2_temp_get_desc(struct usb2_device *,
struct usb2_device_request *, const void **, uint16_t *);
static usb2_error_t usb2_temp_setup(struct usb2_device *,
const struct usb2_temp_device_desc *);
static void usb2_temp_unsetup(struct usb2_device *);
static usb2_error_t usb2_temp_setup_by_index(struct usb2_device *,
uint16_t index);
static void usb2_temp_init(void *);
/*------------------------------------------------------------------------*
* usb2_make_raw_desc

View File

@ -92,53 +92,69 @@ static usb2_config_td_command_t rum_cfg_amrr_timeout;
static usb2_config_td_command_t rum_cfg_prepare_beacon;
static usb2_config_td_command_t rum_cfg_newstate;
static const char *rum_get_rf(uint32_t rev);
static int rum_ioctl_cb(struct ifnet *ifp, u_long cmd, caddr_t data);
static void rum_std_command(struct ieee80211com *ic, usb2_config_td_command_t *func);
static void rum_scan_start_cb(struct ieee80211com *);
static void rum_scan_end_cb(struct ieee80211com *);
static void rum_set_channel_cb(struct ieee80211com *);
static uint16_t rum_cfg_eeprom_read_2(struct rum_softc *sc, uint16_t addr);
static uint32_t rum_cfg_bbp_disbusy(struct rum_softc *sc);
static uint32_t rum_cfg_read(struct rum_softc *sc, uint16_t reg);
static uint8_t rum_cfg_bbp_init(struct rum_softc *sc);
static uint8_t rum_cfg_bbp_read(struct rum_softc *sc, uint8_t reg);
static void rum_cfg_amrr_start(struct rum_softc *sc);
static void rum_cfg_bbp_write(struct rum_softc *sc, uint8_t reg, uint8_t val);
static void rum_cfg_do_request(struct rum_softc *sc, struct usb2_device_request *req, void *data);
static void rum_cfg_eeprom_read(struct rum_softc *sc, uint16_t addr, void *buf, uint16_t len);
static void rum_cfg_load_microcode(struct rum_softc *sc, const uint8_t *ucode, uint16_t size);
static void rum_cfg_read_eeprom(struct rum_softc *sc);
static void rum_cfg_read_multi(struct rum_softc *sc, uint16_t reg, void *buf, uint16_t len);
static void rum_cfg_rf_write(struct rum_softc *sc, uint8_t reg, uint32_t val);
static void rum_cfg_set_bssid(struct rum_softc *sc, uint8_t *bssid);
static void rum_cfg_set_macaddr(struct rum_softc *sc, uint8_t *addr);
static void rum_cfg_write(struct rum_softc *sc, uint16_t reg, uint32_t val);
static void rum_cfg_write_multi(struct rum_softc *sc, uint16_t reg, void *buf, uint16_t len);
static void rum_end_of_commands(struct rum_softc *sc);
static void rum_init_cb(void *arg);
static void rum_start_cb(struct ifnet *ifp);
static void rum_watchdog(void *arg);
static uint8_t rum_get_rssi(struct rum_softc *sc, uint8_t raw);
static struct ieee80211vap *rum_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]);
static void rum_vap_delete(struct ieee80211vap *);
static struct ieee80211_node *rum_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]);
static void rum_newassoc(struct ieee80211_node *, int);
static void rum_cfg_disable_tsf_sync(struct rum_softc *sc);
static void rum_cfg_set_run(struct rum_softc *sc, struct rum_config_copy *cc);
static void rum_fill_write_queue(struct rum_softc *sc);
static void rum_tx_clean_queue(struct rum_softc *sc);
static void rum_tx_freem(struct mbuf *m);
static void rum_tx_mgt(struct rum_softc *sc, struct mbuf *m, struct ieee80211_node *ni);
static struct ieee80211vap *rum_get_vap(struct rum_softc *sc);
static void rum_tx_data(struct rum_softc *sc, struct mbuf *m, struct ieee80211_node *ni);
static void rum_tx_prot(struct rum_softc *sc, const struct mbuf *m, struct ieee80211_node *ni, uint8_t prot, uint16_t rate);
static void rum_tx_raw(struct rum_softc *sc, struct mbuf *m, struct ieee80211_node *ni, const struct ieee80211_bpf_params *params);
static int rum_raw_xmit_cb(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_bpf_params *params);
static void rum_setup_desc_and_tx(struct rum_softc *sc, struct mbuf *m, uint32_t flags, uint16_t xflags, uint16_t rate);
static int rum_newstate_cb(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg);
static void rum_update_mcast_cb(struct ifnet *ifp);
static void rum_update_promisc_cb(struct ifnet *ifp);
static const char *rum_get_rf(uint32_t);
static int rum_ioctl_cb(struct ifnet *, u_long, caddr_t);
static void rum_std_command(struct ieee80211com *, usb2_config_td_command_t *);
static void rum_scan_start_cb(struct ieee80211com *);
static void rum_scan_end_cb(struct ieee80211com *);
static void rum_set_channel_cb(struct ieee80211com *);
static uint16_t rum_cfg_eeprom_read_2(struct rum_softc *, uint16_t);
static uint32_t rum_cfg_bbp_disbusy(struct rum_softc *);
static uint32_t rum_cfg_read(struct rum_softc *, uint16_t);
static uint8_t rum_cfg_bbp_init(struct rum_softc *);
static uint8_t rum_cfg_bbp_read(struct rum_softc *, uint8_t);
static void rum_cfg_amrr_start(struct rum_softc *);
static void rum_cfg_bbp_write(struct rum_softc *, uint8_t, uint8_t);
static void rum_cfg_do_request(struct rum_softc *,
struct usb2_device_request *, void *);
static void rum_cfg_eeprom_read(struct rum_softc *, uint16_t, void *,
uint16_t);
static void rum_cfg_load_microcode(struct rum_softc *, const uint8_t *,
uint16_t);
static void rum_cfg_read_eeprom(struct rum_softc *);
static void rum_cfg_read_multi(struct rum_softc *, uint16_t, void *,
uint16_t);
static void rum_cfg_rf_write(struct rum_softc *, uint8_t, uint32_t);
static void rum_cfg_set_bssid(struct rum_softc *, uint8_t *);
static void rum_cfg_set_macaddr(struct rum_softc *, uint8_t *);
static void rum_cfg_write(struct rum_softc *, uint16_t, uint32_t);
static void rum_cfg_write_multi(struct rum_softc *, uint16_t, void *,
uint16_t);
static void rum_end_of_commands(struct rum_softc *);
static void rum_init_cb(void *);
static void rum_start_cb(struct ifnet *);
static void rum_watchdog(void *);
static uint8_t rum_get_rssi(struct rum_softc *, uint8_t);
static struct ieee80211vap *rum_vap_create(struct ieee80211com *,
const char[], int, int, int, const uint8_t[],
const uint8_t[]);
static void rum_vap_delete(struct ieee80211vap *);
static struct ieee80211_node *rum_node_alloc(struct ieee80211vap *,
const uint8_t[]);
static void rum_newassoc(struct ieee80211_node *, int);
static void rum_cfg_disable_tsf_sync(struct rum_softc *);
static void rum_cfg_set_run(struct rum_softc *, struct rum_config_copy *);
static void rum_fill_write_queue(struct rum_softc *);
static void rum_tx_clean_queue(struct rum_softc *);
static void rum_tx_freem(struct mbuf *);
static void rum_tx_mgt(struct rum_softc *, struct mbuf *,
struct ieee80211_node *);
static struct ieee80211vap *rum_get_vap(struct rum_softc *);
static void rum_tx_data(struct rum_softc *, struct mbuf *,
struct ieee80211_node *);
static void rum_tx_prot(struct rum_softc *, const struct mbuf *,
struct ieee80211_node *, uint8_t, uint16_t);
static void rum_tx_raw(struct rum_softc *, struct mbuf *,
struct ieee80211_node *,
const struct ieee80211_bpf_params *);
static int rum_raw_xmit_cb(struct ieee80211_node *, struct mbuf *,
const struct ieee80211_bpf_params *);
static void rum_setup_desc_and_tx(struct rum_softc *, struct mbuf *,
uint32_t, uint16_t, uint16_t);
static int rum_newstate_cb(struct ieee80211vap *,
enum ieee80211_state nstate, int arg);
static void rum_update_mcast_cb(struct ifnet *);
static void rum_update_promisc_cb(struct ifnet *);
/* various supported device vendors/products */
static const struct usb2_device_id rum_devs[] = {

View File

@ -97,54 +97,72 @@ static usb2_config_td_command_t ural_cfg_stop;
static usb2_config_td_command_t ural_cfg_amrr_timeout;
static usb2_config_td_command_t ural_cfg_newstate;
static void ural_cfg_do_request(struct ural_softc *sc, struct usb2_device_request *req, void *data);
static void ural_cfg_set_testmode(struct ural_softc *sc);
static void ural_cfg_eeprom_read(struct ural_softc *sc, uint16_t addr, void *buf, uint16_t len);
static uint16_t ural_cfg_read(struct ural_softc *sc, uint16_t reg);
static void ural_cfg_read_multi(struct ural_softc *sc, uint16_t reg, void *buf, uint16_t len);
static void ural_cfg_write(struct ural_softc *sc, uint16_t reg, uint16_t val);
static void ural_cfg_write_multi(struct ural_softc *sc, uint16_t reg, void *buf, uint16_t len);
static void ural_cfg_bbp_write(struct ural_softc *sc, uint8_t reg, uint8_t val);
static uint8_t ural_cfg_bbp_read(struct ural_softc *sc, uint8_t reg);
static void ural_cfg_rf_write(struct ural_softc *sc, uint8_t reg, uint32_t val);
static void ural_end_of_commands(struct ural_softc *sc);
static void ural_cfg_do_request(struct ural_softc *,
struct usb2_device_request *, void *);
static void ural_cfg_set_testmode(struct ural_softc *);
static void ural_cfg_eeprom_read(struct ural_softc *, uint16_t, void *,
uint16_t);
static uint16_t ural_cfg_read(struct ural_softc *, uint16_t);
static void ural_cfg_read_multi(struct ural_softc *, uint16_t, void *,
uint16_t);
static void ural_cfg_write(struct ural_softc *, uint16_t, uint16_t);
static void ural_cfg_write_multi(struct ural_softc *, uint16_t, void *,
uint16_t);
static void ural_cfg_bbp_write(struct ural_softc *, uint8_t, uint8_t);
static uint8_t ural_cfg_bbp_read(struct ural_softc *, uint8_t);
static void ural_cfg_rf_write(struct ural_softc *, uint8_t, uint32_t);
static void ural_end_of_commands(struct ural_softc *);
static const char *ural_get_rf(int rev);
static void ural_watchdog(void *arg);
static void ural_init_cb(void *arg);
static int ural_ioctl_cb(struct ifnet *ifp, u_long cmd, caddr_t data);
static void ural_start_cb(struct ifnet *ifp);
static int ural_newstate_cb(struct ieee80211vap *ic, enum ieee80211_state nstate, int arg);
static void ural_std_command(struct ieee80211com *ic, usb2_config_td_command_t *func);
static void ural_scan_start_cb(struct ieee80211com *);
static void ural_scan_end_cb(struct ieee80211com *);
static void ural_set_channel_cb(struct ieee80211com *);
static void ural_cfg_disable_rf_tune(struct ural_softc *sc);
static void ural_cfg_set_bssid(struct ural_softc *sc, uint8_t *bssid);
static void ural_cfg_set_macaddr(struct ural_softc *sc, uint8_t *addr);
static void ural_cfg_set_txantenna(struct ural_softc *sc, uint8_t antenna);
static void ural_cfg_set_rxantenna(struct ural_softc *sc, uint8_t antenna);
static void ural_cfg_read_eeprom(struct ural_softc *sc);
static uint8_t ural_cfg_bbp_init(struct ural_softc *sc);
static void ural_cfg_amrr_start(struct ural_softc *sc);
static struct ieee80211vap *ural_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]);
static void ural_vap_delete(struct ieee80211vap *);
static struct ieee80211_node *ural_node_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]);
static void ural_newassoc(struct ieee80211_node *, int);
static void ural_cfg_disable_tsf_sync(struct ural_softc *sc);
static void ural_cfg_set_run(struct ural_softc *sc, struct usb2_config_td_cc *cc);
static void ural_fill_write_queue(struct ural_softc *sc);
static void ural_tx_clean_queue(struct ural_softc *sc);
static void ural_tx_freem(struct mbuf *m);
static void ural_tx_mgt(struct ural_softc *sc, struct mbuf *m, struct ieee80211_node *ni);
static struct ieee80211vap *ural_get_vap(struct ural_softc *sc);
static void ural_tx_bcn(struct ural_softc *sc);
static void ural_tx_data(struct ural_softc *sc, struct mbuf *m, struct ieee80211_node *ni);
static void ural_tx_prot(struct ural_softc *sc, const struct mbuf *m, struct ieee80211_node *ni, uint8_t prot, uint16_t rate);
static void ural_tx_raw(struct ural_softc *sc, struct mbuf *m, struct ieee80211_node *ni, const struct ieee80211_bpf_params *params);
static int ural_raw_xmit_cb(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_bpf_params *params);
static void ural_setup_desc_and_tx(struct ural_softc *sc, struct mbuf *m, uint32_t flags, uint16_t rate);
static void ural_update_mcast_cb(struct ifnet *ifp);
static void ural_update_promisc_cb(struct ifnet *ifp);
static void ural_watchdog(void *);
static void ural_init_cb(void *);
static int ural_ioctl_cb(struct ifnet *, u_long cmd, caddr_t data);
static void ural_start_cb(struct ifnet *);
static int ural_newstate_cb(struct ieee80211vap *,
enum ieee80211_state, int);
static void ural_std_command(struct ieee80211com *,
usb2_config_td_command_t *);
static void ural_scan_start_cb(struct ieee80211com *);
static void ural_scan_end_cb(struct ieee80211com *);
static void ural_set_channel_cb(struct ieee80211com *);
static void ural_cfg_disable_rf_tune(struct ural_softc *);
static void ural_cfg_set_bssid(struct ural_softc *, uint8_t *);
static void ural_cfg_set_macaddr(struct ural_softc *, uint8_t *);
static void ural_cfg_set_txantenna(struct ural_softc *, uint8_t);
static void ural_cfg_set_rxantenna(struct ural_softc *, uint8_t);
static void ural_cfg_read_eeprom(struct ural_softc *);
static uint8_t ural_cfg_bbp_init(struct ural_softc *);
static void ural_cfg_amrr_start(struct ural_softc *);
static struct ieee80211vap *ural_vap_create(struct ieee80211com *,
const char name[IFNAMSIZ], int unit, int opmode, int flags,
const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t
mac[IEEE80211_ADDR_LEN]);
static void ural_vap_delete(struct ieee80211vap *);
static struct ieee80211_node *ural_node_alloc(struct ieee80211vap *,
const uint8_t mac[IEEE80211_ADDR_LEN]);
static void ural_newassoc(struct ieee80211_node *, int);
static void ural_cfg_disable_tsf_sync(struct ural_softc *);
static void ural_cfg_set_run(struct ural_softc *,
struct usb2_config_td_cc *);
static void ural_fill_write_queue(struct ural_softc *);
static void ural_tx_clean_queue(struct ural_softc *);
static void ural_tx_freem(struct mbuf *);
static void ural_tx_mgt(struct ural_softc *, struct mbuf *,
struct ieee80211_node *);
static struct ieee80211vap *ural_get_vap(struct ural_softc *);
static void ural_tx_bcn(struct ural_softc *);
static void ural_tx_data(struct ural_softc *, struct mbuf *,
struct ieee80211_node *);
static void ural_tx_prot(struct ural_softc *, const struct mbuf *,
struct ieee80211_node *, uint8_t, uint16_t);
static void ural_tx_raw(struct ural_softc *, struct mbuf *,
struct ieee80211_node *,
const struct ieee80211_bpf_params *);
static int ural_raw_xmit_cb(struct ieee80211_node *, struct mbuf *,
const struct ieee80211_bpf_params *);
static void ural_setup_desc_and_tx(struct ural_softc *, struct mbuf *,
uint32_t, uint16_t);
static void ural_update_mcast_cb(struct ifnet *);
static void ural_update_promisc_cb(struct ifnet *);
/* various supported device vendors/products */
static const struct usb2_device_id ural_devs[] = {

View File

@ -89,58 +89,72 @@ static usb2_config_td_command_t zyd_cfg_scan_end;
static usb2_config_td_command_t zyd_cfg_set_rxfilter;
static usb2_config_td_command_t zyd_cfg_amrr_timeout;
static uint8_t zyd_plcp2ieee(uint8_t signal, uint8_t isofdm);
static void zyd_cfg_usbrequest(struct zyd_softc *sc, struct usb2_device_request *req, uint8_t *data);
static void zyd_cfg_usb2_intr_read(struct zyd_softc *sc, void *data, uint32_t size);
static void zyd_cfg_usb2_intr_write(struct zyd_softc *sc, const void *data, uint16_t code, uint32_t size);
static void zyd_cfg_read16(struct zyd_softc *sc, uint16_t addr, uint16_t *value);
static void zyd_cfg_read32(struct zyd_softc *sc, uint16_t addr, uint32_t *value);
static void zyd_cfg_write16(struct zyd_softc *sc, uint16_t addr, uint16_t value);
static void zyd_cfg_write32(struct zyd_softc *sc, uint16_t addr, uint32_t value);
static void zyd_cfg_rfwrite(struct zyd_softc *sc, uint32_t value);
static uint8_t zyd_cfg_uploadfirmware(struct zyd_softc *sc, const uint8_t *fw_ptr, uint32_t fw_len);
static void zyd_cfg_lock_phy(struct zyd_softc *sc);
static void zyd_cfg_unlock_phy(struct zyd_softc *sc);
static void zyd_cfg_set_beacon_interval(struct zyd_softc *sc, uint32_t interval);
static const char *zyd_rf_name(uint8_t type);
static void zyd_cfg_rf_rfmd_init(struct zyd_softc *sc, struct zyd_rf *rf);
static void zyd_cfg_rf_rfmd_switch_radio(struct zyd_softc *sc, uint8_t onoff);
static void zyd_cfg_rf_rfmd_set_channel(struct zyd_softc *sc, struct zyd_rf *rf, uint8_t channel);
static void zyd_cfg_rf_al2230_switch_radio(struct zyd_softc *sc, uint8_t onoff);
static void zyd_cfg_rf_al2230_init(struct zyd_softc *sc, struct zyd_rf *rf);
static void zyd_cfg_rf_al2230_init_b(struct zyd_softc *sc, struct zyd_rf *rf);
static void zyd_cfg_rf_al2230_set_channel(struct zyd_softc *sc, struct zyd_rf *rf, uint8_t channel);
static uint8_t zyd_cfg_rf_init_hw(struct zyd_softc *sc, struct zyd_rf *rf);
static uint8_t zyd_cfg_hw_init(struct zyd_softc *sc);
static void zyd_cfg_set_mac_addr(struct zyd_softc *sc, const uint8_t *addr);
static void zyd_cfg_switch_radio(struct zyd_softc *sc, uint8_t onoff);
static void zyd_cfg_set_bssid(struct zyd_softc *sc, uint8_t *addr);
static void zyd_start_cb(struct ifnet *ifp);
static void zyd_init_cb(void *arg);
static int zyd_ioctl_cb(struct ifnet *ifp, u_long command, caddr_t data);
static void zyd_watchdog(void *arg);
static void zyd_end_of_commands(struct zyd_softc *sc);
static void zyd_newassoc_cb(struct ieee80211_node *ni, int isnew);
static void zyd_scan_start_cb(struct ieee80211com *ic);
static void zyd_scan_end_cb(struct ieee80211com *ic);
static void zyd_set_channel_cb(struct ieee80211com *ic);
static void zyd_cfg_set_led(struct zyd_softc *sc, uint32_t which, uint8_t on);
static struct ieee80211vap *zyd_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]);
static void zyd_vap_delete(struct ieee80211vap *);
static struct ieee80211_node *zyd_node_alloc_cb(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]);
static void zyd_cfg_set_run(struct zyd_softc *sc, struct usb2_config_td_cc *cc);
static void zyd_fill_write_queue(struct zyd_softc *sc);
static void zyd_tx_clean_queue(struct zyd_softc *sc);
static void zyd_tx_freem(struct mbuf *m);
static void zyd_tx_mgt(struct zyd_softc *sc, struct mbuf *m, struct ieee80211_node *ni);
static struct ieee80211vap *zyd_get_vap(struct zyd_softc *sc);
static void zyd_tx_data(struct zyd_softc *sc, struct mbuf *m, struct ieee80211_node *ni);
static int zyd_raw_xmit_cb(struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_bpf_params *params);
static void zyd_setup_desc_and_tx(struct zyd_softc *sc, struct mbuf *m, uint16_t rate);
static int zyd_newstate_cb(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg);
static void zyd_cfg_amrr_start(struct zyd_softc *sc);
static void zyd_update_mcast_cb(struct ifnet *ifp);
static void zyd_update_promisc_cb(struct ifnet *ifp);
static uint8_t zyd_plcp2ieee(uint8_t, uint8_t);
static void zyd_cfg_usbrequest(struct zyd_softc *,
struct usb2_device_request *, uint8_t *);
static void zyd_cfg_usb2_intr_read(struct zyd_softc *, void *, uint32_t);
static void zyd_cfg_usb2_intr_write(struct zyd_softc *, const void *,
uint16_t, uint32_t);
static void zyd_cfg_read16(struct zyd_softc *, uint16_t, uint16_t *);
static void zyd_cfg_read32(struct zyd_softc *, uint16_t, uint32_t *);
static void zyd_cfg_write16(struct zyd_softc *, uint16_t, uint16_t);
static void zyd_cfg_write32(struct zyd_softc *, uint16_t, uint32_t);
static void zyd_cfg_rfwrite(struct zyd_softc *, uint32_t);
static uint8_t zyd_cfg_uploadfirmware(struct zyd_softc *, const uint8_t *,
uint32_t);
static void zyd_cfg_lock_phy(struct zyd_softc *);
static void zyd_cfg_unlock_phy(struct zyd_softc *);
static void zyd_cfg_set_beacon_interval(struct zyd_softc *, uint32_t);
static const char *zyd_rf_name(uint8_t);
static void zyd_cfg_rf_rfmd_init(struct zyd_softc *, struct zyd_rf *);
static void zyd_cfg_rf_rfmd_switch_radio(struct zyd_softc *, uint8_t);
static void zyd_cfg_rf_rfmd_set_channel(struct zyd_softc *,
struct zyd_rf *, uint8_t);
static void zyd_cfg_rf_al2230_switch_radio(struct zyd_softc *, uint8_t);
static void zyd_cfg_rf_al2230_init(struct zyd_softc *, struct zyd_rf *);
static void zyd_cfg_rf_al2230_init_b(struct zyd_softc *, struct zyd_rf *);
static void zyd_cfg_rf_al2230_set_channel(struct zyd_softc *,
struct zyd_rf *, uint8_t);
static uint8_t zyd_cfg_rf_init_hw(struct zyd_softc *, struct zyd_rf *);
static uint8_t zyd_cfg_hw_init(struct zyd_softc *);
static void zyd_cfg_set_mac_addr(struct zyd_softc *, const uint8_t *);
static void zyd_cfg_switch_radio(struct zyd_softc *, uint8_t);
static void zyd_cfg_set_bssid(struct zyd_softc *, uint8_t *);
static void zyd_start_cb(struct ifnet *);
static void zyd_init_cb(void *);
static int zyd_ioctl_cb(struct ifnet *, u_long command, caddr_t data);
static void zyd_watchdog(void *);
static void zyd_end_of_commands(struct zyd_softc *);
static void zyd_newassoc_cb(struct ieee80211_node *, int isnew);
static void zyd_scan_start_cb(struct ieee80211com *);
static void zyd_scan_end_cb(struct ieee80211com *);
static void zyd_set_channel_cb(struct ieee80211com *);
static void zyd_cfg_set_led(struct zyd_softc *, uint32_t, uint8_t);
static struct ieee80211vap *zyd_vap_create(struct ieee80211com *,
const char name[IFNAMSIZ], int unit, int opmode, int flags,
const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t
mac[IEEE80211_ADDR_LEN]);
static void zyd_vap_delete(struct ieee80211vap *);
static struct ieee80211_node *zyd_node_alloc_cb(struct ieee80211vap *,
const uint8_t mac[IEEE80211_ADDR_LEN]);
static void zyd_cfg_set_run(struct zyd_softc *, struct usb2_config_td_cc *);
static void zyd_fill_write_queue(struct zyd_softc *);
static void zyd_tx_clean_queue(struct zyd_softc *);
static void zyd_tx_freem(struct mbuf *);
static void zyd_tx_mgt(struct zyd_softc *, struct mbuf *,
struct ieee80211_node *);
static struct ieee80211vap *zyd_get_vap(struct zyd_softc *);
static void zyd_tx_data(struct zyd_softc *, struct mbuf *,
struct ieee80211_node *);
static int zyd_raw_xmit_cb(struct ieee80211_node *, struct mbuf *,
const struct ieee80211_bpf_params *);
static void zyd_setup_desc_and_tx(struct zyd_softc *, struct mbuf *,
uint16_t);
static int zyd_newstate_cb(struct ieee80211vap *,
enum ieee80211_state nstate, int arg);
static void zyd_cfg_amrr_start(struct zyd_softc *);
static void zyd_update_mcast_cb(struct ifnet *);
static void zyd_update_promisc_cb(struct ifnet *);
static const struct zyd_phy_pair zyd_def_phy[] = ZYD_DEF_PHY;
static const struct zyd_phy_pair zyd_def_phyB[] = ZYD_DEF_PHYB;