FreeBSD kernel kern code
|
#include <sys/cdefs.h>
#include "opt_bus.h"
#include "opt_iommu.h"
#include <sys/param.h>
#include <sys/conf.h>
#include <sys/systm.h>
#include <sys/bio.h>
#include <sys/bus.h>
#include <sys/callout.h>
#include <sys/ktr.h>
#include <sys/lock.h>
#include <sys/mbuf.h>
#include <sys/memdesc.h>
#include <sys/mutex.h>
#include <sys/proc.h>
#include <sys/uio.h>
#include <vm/vm.h>
#include <vm/vm_page.h>
#include <vm/vm_map.h>
#include <vm/pmap.h>
#include <cam/cam.h>
#include <cam/cam_ccb.h>
#include <opencrypto/cryptodev.h>
#include <machine/bus.h>
Go to the source code of this file.
Functions | |
__FBSDID ("$FreeBSD$") | |
void | busdma_lock_mutex (void *arg, bus_dma_lock_op_t op) |
void | _busdma_dflt_lock (void *arg, bus_dma_lock_op_t op) |
static int | _bus_dmamap_load_vlist (bus_dma_tag_t dmat, bus_dmamap_t map, bus_dma_segment_t *list, int sglist_cnt, struct pmap *pmap, int *nsegs, int flags, size_t offset, size_t length) |
static int | _bus_dmamap_load_plist (bus_dma_tag_t dmat, bus_dmamap_t map, bus_dma_segment_t *list, int sglist_cnt, int *nsegs, int flags) |
static int | _bus_dmamap_load_mbuf_epg (bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m, bus_dma_segment_t *segs, int *nsegs, int flags) |
static int | _bus_dmamap_load_single_mbuf (bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m, bus_dma_segment_t *segs, int *nsegs, int flags) |
static int | _bus_dmamap_load_mbuf_sg (bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0, bus_dma_segment_t *segs, int *nsegs, int flags) |
static int | _bus_dmamap_load_bio (bus_dma_tag_t dmat, bus_dmamap_t map, struct bio *bio, int *nsegs, int flags) |
int | bus_dmamap_load_ma_triv (bus_dma_tag_t dmat, bus_dmamap_t map, struct vm_page **ma, bus_size_t tlen, int ma_offs, int flags, bus_dma_segment_t *segs, int *segp) |
static int | _bus_dmamap_load_ccb (bus_dma_tag_t dmat, bus_dmamap_t map, union ccb *ccb, int *nsegs, int flags) |
static int | _bus_dmamap_load_uio (bus_dma_tag_t dmat, bus_dmamap_t map, struct uio *uio, int *nsegs, int flags) |
int | bus_dmamap_load (bus_dma_tag_t dmat, bus_dmamap_t map, void *buf, bus_size_t buflen, bus_dmamap_callback_t *callback, void *callback_arg, int flags) |
int | bus_dmamap_load_mbuf (bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0, bus_dmamap_callback2_t *callback, void *callback_arg, int flags) |
int | bus_dmamap_load_mbuf_sg (bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0, bus_dma_segment_t *segs, int *nsegs, int flags) |
int | bus_dmamap_load_uio (bus_dma_tag_t dmat, bus_dmamap_t map, struct uio *uio, bus_dmamap_callback2_t *callback, void *callback_arg, int flags) |
int | bus_dmamap_load_ccb (bus_dma_tag_t dmat, bus_dmamap_t map, union ccb *ccb, bus_dmamap_callback_t *callback, void *callback_arg, int flags) |
int | bus_dmamap_load_bio (bus_dma_tag_t dmat, bus_dmamap_t map, struct bio *bio, bus_dmamap_callback_t *callback, void *callback_arg, int flags) |
int | bus_dmamap_load_mem (bus_dma_tag_t dmat, bus_dmamap_t map, struct memdesc *mem, bus_dmamap_callback_t *callback, void *callback_arg, int flags) |
int | bus_dmamap_load_crp_buffer (bus_dma_tag_t dmat, bus_dmamap_t map, struct crypto_buffer *cb, bus_dmamap_callback_t *callback, void *callback_arg, int flags) |
int | bus_dmamap_load_crp (bus_dma_tag_t dmat, bus_dmamap_t map, struct cryptop *crp, bus_dmamap_callback_t *callback, void *callback_arg, int flags) |
void | bus_dma_template_init (bus_dma_template_t *t, bus_dma_tag_t parent) |
int | bus_dma_template_tag (bus_dma_template_t *t, bus_dma_tag_t *dmat) |
void | bus_dma_template_fill (bus_dma_template_t *t, bus_dma_param_t *kv, u_int count) |
bool | bus_dma_iommu_set_buswide (device_t dev) |
int | bus_dma_iommu_load_ident (bus_dma_tag_t dmat, bus_dmamap_t map, vm_paddr_t start, vm_size_t length, int flags) |
__FBSDID | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 266 of file subr_bus_dma.c.
References _bus_dmamap_load_vlist(), and flags.
Referenced by _bus_dmamap_load_ccb(), bus_dmamap_load_bio(), and bus_dmamap_load_mem().
|
static |
Definition at line 311 of file subr_bus_dma.c.
References _bus_dmamap_load_bio(), _bus_dmamap_load_plist(), _bus_dmamap_load_vlist(), flags, and panic().
Referenced by bus_dmamap_load_ccb(), and bus_dmamap_load_mem().
|
static |
Definition at line 159 of file subr_bus_dma.c.
References flags.
Referenced by _bus_dmamap_load_mbuf_sg(), and _bus_dmamap_load_single_mbuf().
|
static |
Definition at line 239 of file subr_bus_dma.c.
References _bus_dmamap_load_mbuf_epg(), and flags.
Referenced by bus_dmamap_load_crp_buffer(), bus_dmamap_load_mbuf(), bus_dmamap_load_mbuf_sg(), and bus_dmamap_load_mem().
|
static |
Definition at line 139 of file subr_bus_dma.c.
References flags.
Referenced by _bus_dmamap_load_ccb(), and bus_dmamap_load_mem().
|
static |
Definition at line 218 of file subr_bus_dma.c.
References _bus_dmamap_load_mbuf_epg(), and flags.
Referenced by bus_dmamap_load_crp_buffer().
|
static |
Definition at line 399 of file subr_bus_dma.c.
Referenced by bus_dmamap_load_crp_buffer(), bus_dmamap_load_mem(), and bus_dmamap_load_uio().
|
static |
Definition at line 107 of file subr_bus_dma.c.
Referenced by _bus_dmamap_load_bio(), _bus_dmamap_load_ccb(), and bus_dmamap_load_mem().
void _busdma_dflt_lock | ( | void * | arg, |
bus_dma_lock_op_t | op | ||
) |
Definition at line 94 of file subr_bus_dma.c.
References panic().
int bus_dma_iommu_load_ident | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
vm_paddr_t | start, | ||
vm_size_t | length, | ||
int | flags | ||
) |
Definition at line 899 of file subr_bus_dma.c.
bool bus_dma_iommu_set_buswide | ( | device_t | dev | ) |
Definition at line 893 of file subr_bus_dma.c.
void bus_dma_template_fill | ( | bus_dma_template_t * | t, |
bus_dma_param_t * | kv, | ||
u_int | count | ||
) |
Definition at line 835 of file subr_bus_dma.c.
References count.
void bus_dma_template_init | ( | bus_dma_template_t * | t, |
bus_dma_tag_t | parent | ||
) |
Definition at line 804 of file subr_bus_dma.c.
References parent.
int bus_dma_template_tag | ( | bus_dma_template_t * | t, |
bus_dma_tag_t * | dmat | ||
) |
Definition at line 822 of file subr_bus_dma.c.
int bus_dmamap_load | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
void * | buf, | ||
bus_size_t | buflen, | ||
bus_dmamap_callback_t * | callback, | ||
void * | callback_arg, | ||
int | flags | ||
) |
Definition at line 441 of file subr_bus_dma.c.
int bus_dmamap_load_bio | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
struct bio * | bio, | ||
bus_dmamap_callback_t * | callback, | ||
void * | callback_arg, | ||
int | flags | ||
) |
Definition at line 615 of file subr_bus_dma.c.
References _bus_dmamap_load_bio(), callback, and flags.
int bus_dmamap_load_ccb | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
union ccb * | ccb, | ||
bus_dmamap_callback_t * | callback, | ||
void * | callback_arg, | ||
int | flags | ||
) |
Definition at line 565 of file subr_bus_dma.c.
References _bus_dmamap_load_ccb(), callback, and flags.
int bus_dmamap_load_crp | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
struct cryptop * | crp, | ||
bus_dmamap_callback_t * | callback, | ||
void * | callback_arg, | ||
int | flags | ||
) |
Definition at line 796 of file subr_bus_dma.c.
References bus_dmamap_load_crp_buffer(), callback, and flags.
int bus_dmamap_load_crp_buffer | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
struct crypto_buffer * | cb, | ||
bus_dmamap_callback_t * | callback, | ||
void * | callback_arg, | ||
int | flags | ||
) |
Definition at line 735 of file subr_bus_dma.c.
References _bus_dmamap_load_mbuf_sg(), _bus_dmamap_load_single_mbuf(), _bus_dmamap_load_uio(), callback, and flags.
Referenced by bus_dmamap_load_crp().
int bus_dmamap_load_ma_triv | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
struct vm_page ** | ma, | ||
bus_size_t | tlen, | ||
int | ma_offs, | ||
int | flags, | ||
bus_dma_segment_t * | segs, | ||
int * | segp | ||
) |
Definition at line 286 of file subr_bus_dma.c.
References flags.
int bus_dmamap_load_mbuf | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
struct mbuf * | m0, | ||
bus_dmamap_callback2_t * | callback, | ||
void * | callback_arg, | ||
int | flags | ||
) |
Definition at line 488 of file subr_bus_dma.c.
References _bus_dmamap_load_mbuf_sg(), callback, and flags.
int bus_dmamap_load_mbuf_sg | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
struct mbuf * | m0, | ||
bus_dma_segment_t * | segs, | ||
int * | nsegs, | ||
int | flags | ||
) |
Definition at line 518 of file subr_bus_dma.c.
References _bus_dmamap_load_mbuf_sg(), and flags.
int bus_dmamap_load_mem | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
struct memdesc * | mem, | ||
bus_dmamap_callback_t * | callback, | ||
void * | callback_arg, | ||
int | flags | ||
) |
Definition at line 659 of file subr_bus_dma.c.
References _bus_dmamap_load_bio(), _bus_dmamap_load_ccb(), _bus_dmamap_load_mbuf_sg(), _bus_dmamap_load_plist(), _bus_dmamap_load_uio(), _bus_dmamap_load_vlist(), callback, and flags.
Referenced by busdma_swi().
int bus_dmamap_load_uio | ( | bus_dma_tag_t | dmat, |
bus_dmamap_t | map, | ||
struct uio * | uio, | ||
bus_dmamap_callback2_t * | callback, | ||
void * | callback_arg, | ||
int | flags | ||
) |
Definition at line 537 of file subr_bus_dma.c.
References _bus_dmamap_load_uio(), callback, and flags.
void busdma_lock_mutex | ( | void * | arg, |
bus_dma_lock_op_t | op | ||
) |