FreeBSD kernel usb device Code
usb_busdma.c File Reference
#include <sys/stdint.h>
#include <sys/stddef.h>
#include <sys/param.h>
#include <sys/queue.h>
#include <sys/types.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/bus.h>
#include <sys/module.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/condvar.h>
#include <sys/sysctl.h>
#include <sys/sx.h>
#include <sys/unistd.h>
#include <sys/callout.h>
#include <sys/malloc.h>
#include <sys/priv.h>
#include <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usbdi_util.h>
#include <dev/usb/usb_core.h>
#include <dev/usb/usb_busdma.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/usb_transfer.h>
#include <dev/usb/usb_device.h>
#include <dev/usb/usb_util.h>
#include <dev/usb/usb_debug.h>
#include <dev/usb/usb_controller.h>
#include <dev/usb/usb_bus.h>
Include dependency graph for usb_busdma.c:

Go to the source code of this file.

Macros

#define USB_DEBUG_VAR   usb_debug
 

Functions

void usbd_get_page (struct usb_page_cache *pc, usb_frlength_t offset, struct usb_page_search *res)
 
uint8_t usb_pc_buffer_is_aligned (struct usb_page_cache *pc, usb_frlength_t offset, usb_frlength_t len, usb_frlength_t mask)
 
void usbd_copy_in (struct usb_page_cache *cache, usb_frlength_t offset, const void *ptr, usb_frlength_t len)
 
void usbd_copy_out (struct usb_page_cache *cache, usb_frlength_t offset, void *ptr, usb_frlength_t len)
 
void usbd_frame_zero (struct usb_page_cache *cache, usb_frlength_t offset, usb_frlength_t len)
 

Macro Definition Documentation

◆ USB_DEBUG_VAR

#define USB_DEBUG_VAR   usb_debug

Definition at line 55 of file usb_busdma.c.

Function Documentation

◆ usb_pc_buffer_is_aligned()

uint8_t usb_pc_buffer_is_aligned ( struct usb_page_cache pc,
usb_frlength_t  offset,
usb_frlength_t  len,
usb_frlength_t  mask 
)

Definition at line 141 of file usb_busdma.c.

References usb_page_search::buffer, len, usb_page_search::length, offset, USB_P2U, and usbd_get_page().

Referenced by dwc_otg_read_fifo(), and dwc_otg_write_fifo().

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

◆ usbd_copy_in()

void usbd_copy_in ( struct usb_page_cache cache,
usb_frlength_t  offset,
const void *  ptr,
usb_frlength_t  len 
)

Definition at line 166 of file usb_busdma.c.

References usb_page_search::buffer, len, usb_page_search::length, offset, USB_ADD_BYTES, and usbd_get_page().

Referenced by atmegadci_setup_rx(), atp_reset_callback(), aue_bulk_write_callback(), avr32dci_setup_rx(), axe_bulk_write_callback(), axge_bulk_write_callback(), cdce_intr_write_callback(), cdceem_send_data(), cdceem_send_echo(), cdceem_send_echo_response(), cp2112iic_intr_write_callback(), cue_bulk_write_callback(), dwc_otg_read_fifo(), kue_bulk_write_callback(), muge_bulk_write_callback(), musbotg_dev_ctrl_data_rx(), musbotg_dev_ctrl_setup_rx(), musbotg_dev_data_rx(), musbotg_host_ctrl_data_rx(), musbotg_host_data_rx(), rum_bulk_write_callback(), run_bulk_tx_callbackN(), smsc_bulk_write_callback(), ubser_write_callback(), ucom_get_data(), ucycom_ctrl_write_callback(), udav_bulk_write_callback(), ufoma_ctrl_read_callback(), ufoma_ctrl_write_callback(), uftdi_write_callback(), uhci_isoc_done(), uhci_non_isoc_done_sub(), uhid_read_callback(), uhid_snes_status_callback(), uhid_write_callback(), uhso_mux_read_callback(), uhso_mux_write_callback(), ukbd_set_leds_callback(), ulpt_status_callback(), umass_t_bbb_command_callback(), umass_t_bbb_reset1_callback(), umass_t_cbi_command_callback(), umass_t_cbi_reset1_callback(), ural_bulk_write_callback(), ure_bulk_write_callback(), urndis_bulk_write_callback(), usb_do_clear_stall_callback(), usb_handle_request(), usbd_clear_stall_callback(), usbd_do_request_flags(), usbhid_ctrl_callback(), usbhid_intr_out_callback(), usie_if_tx_callback(), uslcom_control_callback(), uss820dci_setup_rx(), zyd_bulk_write_callback(), and zyd_intr_write_callback().

Here is the call graph for this function:

◆ usbd_copy_out()

void usbd_copy_out ( struct usb_page_cache cache,
usb_frlength_t  offset,
void *  ptr,
usb_frlength_t  len 
)

Definition at line 283 of file usb_busdma.c.

References usb_page_search::buffer, len, usb_page_search::length, offset, USB_ADD_BYTES, and usbd_get_page().

Referenced by aue_bulk_read_callback(), aue_intr_callback(), axe_rx_frame(), axe_rxeof(), axge_rx_frame(), axge_rxeof(), cdce_intr_read_callback(), cdceem_bulk_read_callback(), cdceem_handle_cmd(), cdceem_handle_data(), cp2112iic_intr_read_callback(), cue_bulk_read_callback(), dwc_otg_host_setup_tx(), dwc_otg_setup_rx(), dwc_otg_write_fifo(), kue_bulk_read_callback(), mos_bulk_read_callback(), mos_intr_callback(), muge_bulk_read_callback(), musbotg_dev_ctrl_data_tx(), musbotg_dev_data_tx(), musbotg_host_ctrl_data_tx(), musbotg_host_ctrl_setup_tx(), musbotg_host_data_tx(), rue_bulk_read_callback(), rue_intr_callback(), rum_bulk_read_callback(), smsc_bulk_read_callback(), u3g_intr_callback(), uath_intr_rx_callback(), ubsa_intr_callback(), ubser_read_callback(), uchcom_intr_callback(), ucom_put_data(), ucycom_intr_read_callback(), udav_bulk_read_callback(), udbp_bulk_read_callback(), uep_intr_callback(), uether_rxbuf(), ufoma_intr_callback(), uftdi_read_callback(), ugold_intr_callback(), uhci_mem_layout_fixup(), uhid_snes_status_callback(), uhid_write_callback(), uhso_bs_intr_callback(), uhso_ifnet_read_callback(), ukbd_intr_callback(), ulpt_status_callback(), umass_t_bbb_status_callback(), umass_t_cbi_status_callback(), umcs7840_intr_callback(), umct_intr_callback_sub(), umodem_intr_read_callback(), ums_intr_callback(), uplcom_intr_callback(), ural_bulk_read_callback(), ure_bulk_read_callback(), ure_makembuf(), urndis_bulk_read_callback(), usb_handle_request(), usbd_control_transfer_did_data(), usbd_control_transfer_init(), usbd_do_request_flags(), usbhid_ctrl_callback(), usbhid_intr_in_callback(), usbpf_xfertap(), usie_if_status_callback(), usie_uc_rx_callback(), usie_uc_status_callback(), uslcom_control_callback(), uvscom_intr_callback(), wmt_intr_callback(), wsp_intr_callback(), xhci_setup_generic_chain_sub(), zyd_bulk_read_callback(), zyd_intr_read_callback(), and zyd_rx_data().

Here is the call graph for this function:

◆ usbd_frame_zero()

void usbd_frame_zero ( struct usb_page_cache cache,
usb_frlength_t  offset,
usb_frlength_t  len 
)

Definition at line 339 of file usb_busdma.c.

References usb_page_search::buffer, len, usb_page_search::length, offset, and usbd_get_page().

Referenced by ipheth_bulk_write_callback(), kue_bulk_write_callback(), rue_bulk_write_callback(), run_bulk_tx_callbackN(), and udav_bulk_write_callback().

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

◆ usbd_get_page()

void usbd_get_page ( struct usb_page_cache pc,
usb_frlength_t  offset,
struct usb_page_search res 
)

Definition at line 86 of file usb_busdma.c.

References usb_page_search::buffer, usb_page_cache::buffer, usb_page_search::length, offset, USB_ADD_BYTES, and USB_PAGE_SIZE.

Referenced by atmegadci_data_rx(), atmegadci_data_tx(), avr32dci_data_rx(), avr32dci_data_tx(), dwc_otg_read_fifo(), dwc_otg_write_fifo(), ehci_device_isoc_fs_enter(), ehci_device_isoc_hs_enter(), ehci_init(), ehci_init_sub(), ehci_setup_standard_chain_sub(), ehci_xfer_setup(), musbotg_dev_ctrl_data_rx(), musbotg_dev_ctrl_data_tx(), musbotg_dev_data_rx(), musbotg_dev_data_tx(), musbotg_host_ctrl_data_rx(), musbotg_host_ctrl_data_tx(), musbotg_host_data_rx(), musbotg_host_data_tx(), ohci_controller_init(), ohci_device_isoc_enter(), ohci_init(), ohci_init_ed(), ohci_setup_standard_chain_sub(), ohci_xfer_setup(), ucom_get_data(), ucom_put_data(), uhci_init(), uhci_init_qh(), uhci_init_td(), uhci_isoc_done(), uhci_mem_layout_fixup(), uhci_non_isoc_done_sub(), uhci_restart(), uhci_xfer_setup(), uhso_mux_intr_callback(), uhso_mux_write_callback(), usb_pc_buffer_is_aligned(), usbd_copy_in(), usbd_copy_out(), usbd_frame_zero(), usbd_transfer_setup_sub(), usbd_xfer_get_frame_buffer(), uss820dci_data_rx(), uss820dci_data_tx(), xhci_alloc_device_ext(), xhci_configure_device(), xhci_configure_endpoint(), xhci_configure_mask(), xhci_configure_reset_endpoint(), xhci_device_state_change(), xhci_do_command(), xhci_get_endpoint_ext(), xhci_get_endpoint_state(), xhci_interrupt_poll(), xhci_reset_command_queue_locked(), xhci_set_address(), xhci_set_slot_pointer(), xhci_setup_generic_chain_sub(), xhci_start_controller(), and xhci_xfer_setup().