FreeBSD kernel usb device Code
usb_busdma.h File Reference
#include <sys/uio.h>
#include <sys/mbuf.h>
#include <machine/bus.h>
Include dependency graph for usb_busdma.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  usb_page
 
struct  usb_page_search
 
struct  usb_page_cache
 
struct  usb_dma_parent_tag
 
struct  usb_dma_tag
 

Macros

#define USB_PAGE_SIZE   PAGE_SIZE /* use system PAGE_SIZE */
 
#define USB_GET_DMA_TAG(dev)   NULL /* XXX */
 

Typedefs

typedef void() usb_dma_callback_t(struct usb_dma_parent_tag *udpt)
 

Functions

int usb_uiomove (struct usb_page_cache *pc, struct uio *uio, usb_frlength_t pc_offset, usb_frlength_t len)
 
struct usb_dma_tagusb_dma_tag_find (struct usb_dma_parent_tag *udpt, usb_size_t size, usb_size_t align)
 
uint8_t usb_pc_alloc_mem (struct usb_page_cache *pc, struct usb_page *pg, usb_size_t size, usb_size_t align)
 
uint8_t usb_pc_dmamap_create (struct usb_page_cache *pc, usb_size_t size)
 
uint8_t usb_pc_load_mem (struct usb_page_cache *pc, usb_size_t size, uint8_t sync)
 
void usb_bdma_done_event (struct usb_dma_parent_tag *udpt)
 
void usb_bdma_post_sync (struct usb_xfer *xfer)
 
void usb_bdma_pre_sync (struct usb_xfer *xfer)
 
void usb_bdma_work_loop (struct usb_xfer_queue *pq)
 
void usb_dma_tag_setup (struct usb_dma_parent_tag *udpt, struct usb_dma_tag *udt, bus_dma_tag_t dmat, struct mtx *mtx, usb_dma_callback_t *func, uint8_t ndmabits, uint8_t nudt)
 
void usb_dma_tag_unsetup (struct usb_dma_parent_tag *udpt)
 
void usb_pc_cpu_flush (struct usb_page_cache *pc)
 
void usb_pc_cpu_invalidate (struct usb_page_cache *pc)
 
void usb_pc_dmamap_destroy (struct usb_page_cache *pc)
 
void usb_pc_free_mem (struct usb_page_cache *pc)
 
uint8_t usb_pc_buffer_is_aligned (struct usb_page_cache *pc, usb_frlength_t offset, usb_frlength_t len, usb_frlength_t mask)
 

Macro Definition Documentation

◆ USB_GET_DMA_TAG

#define USB_GET_DMA_TAG (   dev)    NULL /* XXX */

Definition at line 46 of file usb_busdma.h.

◆ USB_PAGE_SIZE

#define USB_PAGE_SIZE   PAGE_SIZE /* use system PAGE_SIZE */

Definition at line 41 of file usb_busdma.h.

Typedef Documentation

◆ usb_dma_callback_t

typedef void() usb_dma_callback_t(struct usb_dma_parent_tag *udpt)

Definition at line 59 of file usb_busdma.h.

Function Documentation

◆ usb_bdma_done_event()

void usb_bdma_done_event ( struct usb_dma_parent_tag udpt)

Referenced by usbd_transfer_setup().

Here is the caller graph for this function:

◆ usb_bdma_post_sync()

void usb_bdma_post_sync ( struct usb_xfer xfer)

Referenced by uhci_isoc_done(), uhci_non_isoc_done(), and usbd_callback_wrapper().

Here is the caller graph for this function:

◆ usb_bdma_pre_sync()

void usb_bdma_pre_sync ( struct usb_xfer xfer)

◆ usb_bdma_work_loop()

void usb_bdma_work_loop ( struct usb_xfer_queue pq)

Referenced by usbd_transfer_setup().

Here is the caller graph for this function:

◆ usb_dma_tag_find()

struct usb_dma_tag * usb_dma_tag_find ( struct usb_dma_parent_tag udpt,
usb_size_t  size,
usb_size_t  align 
)

◆ usb_dma_tag_setup()

void usb_dma_tag_setup ( struct usb_dma_parent_tag udpt,
struct usb_dma_tag udt,
bus_dma_tag_t  dmat,
struct mtx *  mtx,
usb_dma_callback_t func,
uint8_t  ndmabits,
uint8_t  nudt 
)

Referenced by usb_bus_mem_alloc_all(), and usbd_transfer_setup().

Here is the caller graph for this function:

◆ usb_dma_tag_unsetup()

void usb_dma_tag_unsetup ( struct usb_dma_parent_tag udpt)

Referenced by usb_bus_mem_free_all(), and usbd_transfer_unsetup_sub().

Here is the caller graph for this function:

◆ usb_pc_alloc_mem()

uint8_t usb_pc_alloc_mem ( struct usb_page_cache pc,
struct usb_page pg,
usb_size_t  size,
usb_size_t  align 
)

Referenced by xhci_alloc_device_ext().

Here is the caller graph for this function:

◆ 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:

◆ usb_pc_cpu_flush()

◆ usb_pc_cpu_invalidate()

◆ usb_pc_dmamap_create()

uint8_t usb_pc_dmamap_create ( struct usb_page_cache pc,
usb_size_t  size 
)

Referenced by usbd_transfer_setup_sub().

Here is the caller graph for this function:

◆ usb_pc_dmamap_destroy()

void usb_pc_dmamap_destroy ( struct usb_page_cache pc)

Referenced by usbd_transfer_unsetup_sub().

Here is the caller graph for this function:

◆ usb_pc_free_mem()

void usb_pc_free_mem ( struct usb_page_cache pc)

Referenced by usbd_transfer_unsetup_sub(), and xhci_free_device_ext().

Here is the caller graph for this function:

◆ usb_pc_load_mem()

uint8_t usb_pc_load_mem ( struct usb_page_cache pc,
usb_size_t  size,
uint8_t  sync 
)

◆ usb_uiomove()

int usb_uiomove ( struct usb_page_cache pc,
struct uio *  uio,
usb_frlength_t  pc_offset,
usb_frlength_t  len 
)