/illumos-gate/usr/src/uts/sun4/io/efcode/ |
H A D | fc_ddi.c | 61 struct ddi_dma_req dmareq; local 70 dmareq.dmar_flags = flags; 71 dmareq.dmar_fp = waitfp; 72 dmareq.dmar_arg = arg; 73 dmareq.dmar_object.dmao_size = (uint_t)bp->b_bcount; 76 dmareq.dmar_object.dmao_type = DMA_OTYP_PAGES; 77 dmareq.dmar_object.dmao_obj.pp_obj.pp_pp = bp->b_pages; 78 dmareq.dmar_object.dmao_obj.pp_obj.pp_offset = 81 dmareq.dmar_object.dmao_obj.virt_obj.v_addr = bp->b_un.b_addr; 83 dmareq [all...] |
/illumos-gate/usr/src/uts/sun4/io/px/ |
H A D | px_fdvma.c | 132 ddi_dma_req_t *dmareq, ddi_dma_handle_t *handlep) 139 ddi_dma_lim_t *lim_p = dmareq->dmar_limits; 159 npages = dmareq->dmar_object.dmao_size; 179 dmareq->dmar_fp == DDI_DMA_SLEEP ? VM_SLEEP : VM_NOSLEEP)); 200 mp->dmai_burstsizes = dmareq->dmar_limits->dlim_burstsizes; 131 px_fdvma_reserve(dev_info_t *dip, dev_info_t *rdip, px_t *px_p, ddi_dma_req_t *dmareq, ddi_dma_handle_t *handlep) argument
|
H A D | px.c | 839 px_dma_setup(dev_info_t *dip, dev_info_t *rdip, ddi_dma_req_t *dmareq, argument 851 if (!(mp = px_dma_lmts2hdl(dip, rdip, mmu_p, dmareq))) 855 if (ret = px_dma_type(px_p, dmareq, mp)) 857 if (ret = px_dma_pfn(px_p, dmareq, mp)) 862 if ((ret = px_dvma_win(px_p, dmareq, mp)) || !handlep) 873 if (ret = px_dvma_map(mp, dmareq, mmu_p)) 877 if ((ret = px_dma_physwin(px_p, dmareq, mp)) || !handlep) 963 ddi_dma_handle_t handle, ddi_dma_req_t *dmareq, 971 DBG(DBG_DMA_BINDH, dip, "rdip=%s%d mp=%p dmareq=%p\n", 972 ddi_driver_name(rdip), ddi_get_instance(rdip), mp, dmareq); 962 px_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, ddi_dma_req_t *dmareq, ddi_dma_cookie_t *cookiep, uint_t *ccountp) argument [all...] |
H A D | px_dma.c | 157 * and convert dmareq->dmar_limits to mp->dmai_attr 173 * The dlim_dmaspeed member of dmareq->dmar_limits is ignored. 177 ddi_dma_req_t *dmareq) 184 ddi_dma_lim_t *lim_p = dmareq->dmar_limits; 195 if (!(mp = px_dma_allocmp(dip, rdip, dmareq->dmar_fp, 196 dmareq->dmar_arg))) 378 * mp->dmai_object - dmareq->dmar_object 379 * mp->dmai_rflags - consistent?, nosync?, dmareq->dmar_flags 386 px_dma_type(px_t *px_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp) argument 389 ddi_dma_obj_t *dobj_p = &dmareq 176 px_dma_lmts2hdl(dev_info_t *dip, dev_info_t *rdip, px_mmu_t *mmu_p, ddi_dma_req_t *dmareq) argument 550 px_dma_pfn(px_t *px_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp) argument 630 px_dvma_win(px_t *px_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp) argument 779 px_dvma_map(ddi_dma_impl_t *mp, ddi_dma_req_t *dmareq, px_mmu_t *mmu_p) argument 952 px_dma_newwin(dev_info_t *dip, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp, uint32_t cookie_no, uint32_t start_idx, uint32_t end_idx, px_dma_win_t **win_pp, uint64_t count_max, uint64_t bypass) argument 1047 px_dma_adjust(ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp, px_dma_win_t *win_p) argument 1126 px_dma_physwin(px_t *px_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp) argument [all...] |
/illumos-gate/usr/src/uts/sun4/os/ |
H A D | dvma.c | 60 struct ddi_dma_req dmareq; local 70 bzero(&dmareq, sizeof (dmareq)); 71 dmareq.dmar_fp = DDI_DMA_DONTWAIT; 72 dmareq.dmar_flags = DDI_DMA_RDWR | DDI_DMA_STREAMING; 73 dmareq.dmar_limits = &dma_lim; 74 dmareq.dmar_object.dmao_size = pages; 84 ret = ddi_dma_mctl(dip, dip, reqhdl, DDI_DMA_RESERVE, (off_t *)&dmareq,
|
/illumos-gate/usr/src/uts/sun4u/io/pci/ |
H A D | pci_fdvma.c | 179 ddi_dma_req_t *dmareq, ddi_dma_handle_t *handlep) 186 ddi_dma_lim_t *lim_p = dmareq->dmar_limits; 206 npages = dmareq->dmar_object.dmao_size; 227 dmareq->dmar_fp == DDI_DMA_SLEEP ? VM_SLEEP : VM_NOSLEEP)); 250 pci_dma_consist_check(dmareq->dmar_flags, pci_p->pci_pbm_p); 251 if (!(dmareq->dmar_flags & DDI_DMA_RDWR)) 255 mp->dmai_minxfer = dmareq->dmar_limits->dlim_minxfer; 256 mp->dmai_burstsizes = dmareq->dmar_limits->dlim_burstsizes; 178 pci_fdvma_reserve(dev_info_t *dip, dev_info_t *rdip, pci_t *pci_p, ddi_dma_req_t *dmareq, ddi_dma_handle_t *handlep) argument
|
H A D | pci.c | 569 pci_dma_setup(dev_info_t *dip, dev_info_t *rdip, ddi_dma_req_t *dmareq, argument 581 if (!(mp = pci_dma_lmts2hdl(dip, rdip, iommu_p, dmareq))) 585 if (ret = pci_dma_type(pci_p, dmareq, mp)) 587 if (ret = pci_dma_pfn(pci_p, dmareq, mp)) 592 if ((ret = pci_dvma_win(pci_p, dmareq, mp)) || !handlep) 603 if (ret = pci_dvma_map(mp, dmareq, iommu_p)) 607 if ((ret = pci_dma_physwin(pci_p, dmareq, mp)) || !handlep) 693 ddi_dma_handle_t handle, ddi_dma_req_t *dmareq, 701 DEBUG4(DBG_DMA_BINDH, dip, "rdip=%s%d mp=%p dmareq=%p\n", 702 ddi_driver_name(rdip), ddi_get_instance(rdip), mp, dmareq); 692 pci_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, ddi_dma_req_t *dmareq, ddi_dma_cookie_t *cookiep, uint_t *ccountp) argument [all...] |
H A D | pci_dma.c | 338 * and convert dmareq->dmar_limits to mp->dmai_attr 354 * The dlim_dmaspeed member of dmareq->dmar_limits is ignored. 358 ddi_dma_req_t *dmareq) 365 ddi_dma_lim_t *lim_p = dmareq->dmar_limits; 376 if (!(mp = pci_dma_allocmp(dip, rdip, dmareq->dmar_fp, 377 dmareq->dmar_arg))) 541 * mp->dmai_object - dmareq->dmar_object 542 * mp->dmai_rflags - consistent?, nosync?, dmareq->dmar_flags 550 pci_dma_type(pci_t *pci_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp) argument 553 ddi_dma_obj_t *dobj_p = &dmareq 357 pci_dma_lmts2hdl(dev_info_t *dip, dev_info_t *rdip, iommu_t *iommu_p, ddi_dma_req_t *dmareq) argument 699 pci_dma_vapfn(pci_t *pci_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp, uint_t npages) argument 761 pci_dma_pfn(pci_t *pci_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp) argument 838 pci_dvma_win(pci_t *pci_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp) argument 985 pci_dvma_map(ddi_dma_impl_t *mp, ddi_dma_req_t *dmareq, iommu_t *iommu_p) argument 1173 pci_dma_newwin(ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp, uint32_t cookie_no, uint32_t start_idx, uint32_t end_idx, pci_dma_win_t **win_pp, uint64_t count_max, uint64_t bypass_prefix) argument 1248 pci_dma_adjust(ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp, pci_dma_win_t *win_p) argument 1327 pci_dma_physwin(pci_t *pci_p, ddi_dma_req_t *dmareq, ddi_dma_impl_t *mp) argument [all...] |
/illumos-gate/usr/src/uts/sun4v/io/niumx/ |
H A D | niumx.c | 68 ddi_dma_handle_t handle, ddi_dma_req_t *dmareq, 713 * mp->dmai_object - dmareq->dmar_object 714 * mp->dmai_rflags - dmareq->dmar_flags 723 ddi_dma_handle_t handle, ddi_dma_req_t *dmareq, 726 int (*waitfp)(caddr_t) = dmareq->dmar_fp; 728 ddi_dma_obj_t *dobj_p = &dmareq->dmar_object; 733 DBG(NIUMX_DBG_DMA_BINDH, dip, "rdip=%s%d mp=%p dmareq=%p\n", 734 NIUMX_NAMEINST(rdip), mp, dmareq); 737 mp->dmai_rflags = dmareq->dmar_flags & DMP_DDIFLAGS | DMP_NOSYNC; 722 niumx_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, ddi_dma_req_t *dmareq, ddi_dma_cookie_t *cookiep, uint_t *ccountp) argument
|
/illumos-gate/usr/src/uts/intel/io/ |
H A D | iommulib.c | 674 ddi_dma_handle_t dma_handle, struct ddi_dma_req *dmareq, 684 dmareq, cookiep, ccountp)); 733 ddi_dma_handle_t dma_handle, struct ddi_dma_req *dmareq, 740 dma_handle, dmareq, dmao)); 780 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 786 return (nexops->nops_dma_bindhdl(dip, rdip, handle, dmareq, 673 iommulib_nexdma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t dma_handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookiep, uint_t *ccountp) argument 732 iommulib_nexdma_mapobject(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t dma_handle, struct ddi_dma_req *dmareq, ddi_dma_obj_t *dmao) argument 779 iommulib_iommu_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookiep, uint_t *ccountp) argument
|
/illumos-gate/usr/src/uts/i86pc/io/amd_iommu/ |
H A D | amd_iommu_impl.c | 51 struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookiep, 64 struct ddi_dma_req *dmareq, ddi_dma_obj_t *dmao); 1495 struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookie_array, uint_t ccount, 1523 if ((error = amd_iommu_map_pa2va(iommu, rdip, attrp, dmareq, 1617 struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookiep, 1634 dmareq, cookiep, ccountp); 1669 error = map_current_window(iommu, rdip, attrp, dmareq, 1895 struct ddi_dma_req *dmareq, ddi_dma_obj_t *dmao) 1494 map_current_window(amd_iommu_t *iommu, dev_info_t *rdip, ddi_dma_attr_t *attrp, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookie_array, uint_t ccount, int km_flags) argument 1615 amd_iommu_bindhdl(iommulib_handle_t handle, dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t dma_handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookiep, uint_t *ccountp) argument 1893 amd_iommu_mapobject(iommulib_handle_t handle, dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t dma_handle, struct ddi_dma_req *dmareq, ddi_dma_obj_t *dmao) argument
|
H A D | amd_iommu_page_tables.c | 1000 struct ddi_dma_req *dmareq) 1019 if (R == 0 && ((dmareq->dmar_flags & DDI_DMA_WRITE) || 1020 (dmareq->dmar_flags & DDI_DMA_RDWR))) { 1023 if (W == 0 && ((dmareq->dmar_flags & DDI_DMA_READ) || 1024 (dmareq->dmar_flags & DDI_DMA_RDWR))) { 1042 if (dmareq->dmar_flags & DDI_DMA_RDWR) { 1046 if (dmareq->dmar_flags & DDI_DMA_WRITE) { 1049 if (dmareq->dmar_flags & DDI_DMA_READ) { 1092 struct ddi_dma_req *dmareq, 1146 error = init_pte(pt, pa, AMD_IOMMU_VA_BITS(va, level), dmareq); 999 init_pte(amd_iommu_page_table_t *pt, uint64_t pa, uint16_t index, struct ddi_dma_req *dmareq) argument 1091 amd_iommu_setup_1_pgtable(amd_iommu_t *iommu, dev_info_t *rdip, struct ddi_dma_req *dmareq, domain_id_t domainid, amd_iommu_domain_t *dp, amd_iommu_page_table_t *ppt, uint16_t index, int level, uint64_t va, uint64_t pa, amd_iommu_page_table_t **ptp, uint16_t *next_idxp, const char *path, int km_flags) argument 1209 amd_iommu_create_pgtables(amd_iommu_t *iommu, dev_info_t *rdip, struct ddi_dma_req *dmareq, uint64_t va, uint64_t pa, uint16_t deviceid, domain_id_t domainid, amd_iommu_domain_t *dp, const char *path, int km_flags) argument 1434 amd_iommu_map_pa2va(amd_iommu_t *iommu, dev_info_t *rdip, ddi_dma_attr_t *attrp, struct ddi_dma_req *dmareq, uint64_t start_pa, uint64_t pa_sz, map_type_t type, uint64_t *start_vap, int km_flags) argument [all...] |
/illumos-gate/usr/src/uts/sun4u/io/ |
H A D | iommu.c | 344 #define OBJSIZE dmareq->dmar_object.dmao_size 821 check_dma_attr(struct ddi_dma_req *dmareq, ddi_dma_attr_t *dma_attr, argument 832 if ((dmareq->dmar_flags & DDI_DMA_PARTIAL) == 0) 839 if (!((addrlow + dmareq->dmar_object.dmao_size == 0) && 841 if ((dmareq->dmar_flags & DDI_DMA_PARTIAL) == 0) 851 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 876 size = (uint32_t)dmareq->dmar_object.dmao_size; 878 rval = check_dma_attr(dmareq, dma_attr, &size); 884 mp->dmai_rflags = (dmareq->dmar_flags & DMP_DDIFLAGS) | 887 switch (dmareq 850 iommu_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cp, uint_t *ccountp) argument 1329 struct ddi_dma_req *dmareq = (struct ddi_dma_req *)offp; local [all...] |
/illumos-gate/usr/src/uts/common/io/cardbus/ |
H A D | cardbus.c | 101 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 1950 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 1968 rdip, handle, dmareq, cp, ccountp)); 1949 cardbus_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cp, uint_t *ccountp) argument
|
/illumos-gate/usr/src/uts/i86pc/io/ |
H A D | immu_dvma.c | 108 struct ddi_dma_req *dmareq, ddi_dma_obj_t *dmao); 378 dma_to_immu_flags(struct ddi_dma_req *dmareq) argument 382 if (dmareq->dmar_fp == DDI_DMA_SLEEP) { 398 if (dmareq->dmar_flags & DDI_DMA_READ) 401 if (dmareq->dmar_flags & DDI_DMA_WRITE) 408 if ((dmareq->dmar_flags & (DDI_DMA_READ | DDI_DMA_WRITE)) == 0) { 2551 immu_hdl_priv_t *ihp, struct ddi_dma_req *dmareq, 2572 immu_flags = dma_to_immu_flags(dmareq); 2576 dmar_object = &dmareq->dmar_object; 2589 /* retrieve paddr, psize, offset from dmareq */ 2550 immu_map_dvmaseg(dev_info_t *rdip, ddi_dma_handle_t handle, immu_hdl_priv_t *ihp, struct ddi_dma_req *dmareq, ddi_dma_obj_t *dma_out) argument 3157 immu_mapobject(iommulib_handle_t handle, dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t dma_handle, struct ddi_dma_req *dmareq, ddi_dma_obj_t *dmao) argument [all...] |
H A D | rootnex.c | 204 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 232 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 382 static int rootnex_valid_bind_parms(ddi_dma_req_t *dmareq, 388 static int rootnex_bind_slowpath(ddi_dma_impl_t *hp, struct ddi_dma_req *dmareq, 390 static int rootnex_setup_copybuf(ddi_dma_impl_t *hp, struct ddi_dma_req *dmareq, 1966 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 1989 if (dmareq->dmar_fp == DDI_DMA_SLEEP) { 1995 hp->dmai_rflags = dmareq->dmar_flags & DMP_DDIFLAGS; 2023 e = rootnex_valid_bind_parms(dmareq, attr); 2032 dma->dp_dma = dmareq 1965 rootnex_coredma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookiep, uint_t *ccountp) argument 2279 rootnex_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cookiep, uint_t *ccountp) argument 2724 rootnex_valid_bind_parms(ddi_dma_req_t *dmareq, ddi_dma_attr_t *attr) argument 3255 rootnex_bind_slowpath(ddi_dma_impl_t *hp, struct ddi_dma_req *dmareq, rootnex_dma_t *dma, ddi_dma_attr_t *attr, ddi_dma_obj_t *dmao, int kmflag) argument 3469 rootnex_setup_copybuf(ddi_dma_impl_t *hp, struct ddi_dma_req *dmareq, rootnex_dma_t *dma, ddi_dma_attr_t *attr) argument [all...] |
/illumos-gate/usr/src/uts/common/io/ |
H A D | bofi.c | 364 * support routine - map dmareq into kernel virtual if not already 3511 auto struct ddi_dma_req dmareq; local 3575 dmareq = *dmareqp; 3576 dmareq.dmar_object.dmao_size = hp->len; 3577 dmareq.dmar_object.dmao_type = DMA_OTYP_VADDR; 3578 dmareq.dmar_object.dmao_obj.virt_obj.v_as = &kas; 3579 dmareq.dmar_object.dmao_obj.virt_obj.v_addr = hp->addr; 3580 dmareq.dmar_object.dmao_obj.virt_obj.v_priv = NULL; 3581 dmareqp = &dmareq;
|
/illumos-gate/usr/src/uts/common/os/ |
H A D | sunddi.c | 794 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 804 return ((*funcp)(dip, rdip, handle, dmareq, cp, ccountp)); 5237 ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, 5240 _NOTE(ARGUNUSED(dip, rdip, handle, dmareq, cp, ccountp)) 7074 struct ddi_dma_req dmareq; local 7077 dmareq.dmar_flags = flags; 7078 dmareq.dmar_fp = waitfp; 7079 dmareq.dmar_arg = arg; 7080 dmareq.dmar_object.dmao_size = (uint_t)bp->b_bcount; 7083 dmareq 793 ddi_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cp, uint_t *ccountp) argument 5236 ddi_no_dma_bindhdl(dev_info_t *dip, dev_info_t *rdip, ddi_dma_handle_t handle, struct ddi_dma_req *dmareq, ddi_dma_cookie_t *cp, uint_t *ccountp) argument 7130 struct ddi_dma_req dmareq; local [all...] |