Lines Matching refs:sglinfo
385 rootnex_sglinfo_t *sglinfo);
387 ddi_dma_cookie_t *sgl, rootnex_sglinfo_t *sglinfo);
415 rootnex_sglinfo_t *sglinfo);
2740 rootnex_need_bounce_seg(ddi_dma_obj_t *dmar_object, rootnex_sglinfo_t *sglinfo) in rootnex_need_bounce_seg() argument
2778 sglinfo->si_asp = NULL; in rootnex_need_bounce_seg()
2781 sglinfo->si_asp = dmar_object->dmao_obj.virt_obj.v_as; in rootnex_need_bounce_seg()
2782 if (sglinfo->si_asp == NULL) { in rootnex_need_bounce_seg()
2783 sglinfo->si_asp = &kas; in rootnex_need_bounce_seg()
2791 sglinfo->si_asp = dmar_object->dmao_obj.virt_obj.v_as; in rootnex_need_bounce_seg()
2792 if (sglinfo->si_asp == NULL) { in rootnex_need_bounce_seg()
2793 sglinfo->si_asp = &kas; in rootnex_need_bounce_seg()
2795 paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat, vaddr)); in rootnex_need_bounce_seg()
2803 if ((raddr + psize) > sglinfo->si_segmask) { in rootnex_need_bounce_seg()
2830 paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat, in rootnex_need_bounce_seg()
2837 if ((raddr + psize) > sglinfo->si_segmask) { in rootnex_need_bounce_seg()
2849 (raddr == (sglinfo->si_segmask + 1))) { in rootnex_need_bounce_seg()
2866 rootnex_sglinfo_t *sglinfo) in rootnex_get_sgl() argument
2888 maxseg = sglinfo->si_max_cookie_size; in rootnex_get_sgl()
2890 addrhi = sglinfo->si_max_addr; in rootnex_get_sgl()
2891 addrlo = sglinfo->si_min_addr; in rootnex_get_sgl()
2902 sglinfo->si_bounce_on_seg = B_FALSE; in rootnex_get_sgl()
2903 if (sglinfo->si_flags & _DDI_DMA_BOUNCE_ON_SEG) { in rootnex_get_sgl()
2904 sglinfo->si_bounce_on_seg = rootnex_need_bounce_seg( in rootnex_get_sgl()
2905 dmar_object, sglinfo); in rootnex_get_sgl()
2920 sglinfo->si_asp = NULL; in rootnex_get_sgl()
2932 sglinfo->si_asp = dmar_object->dmao_obj.virt_obj.v_as; in rootnex_get_sgl()
2933 if (sglinfo->si_asp == NULL) { in rootnex_get_sgl()
2934 sglinfo->si_asp = &kas; in rootnex_get_sgl()
2952 sglinfo->si_asp = dmar_object->dmao_obj.virt_obj.v_as; in rootnex_get_sgl()
2953 if (sglinfo->si_asp == NULL) { in rootnex_get_sgl()
2954 sglinfo->si_asp = &kas; in rootnex_get_sgl()
2957 paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat, vaddr)); in rootnex_get_sgl()
2979 sglinfo->si_buf_offset = offset; in rootnex_get_sgl()
2987 if (((sglinfo->si_bounce_on_seg) && in rootnex_get_sgl()
2988 ((raddr + psize) > sglinfo->si_segmask)) || in rootnex_get_sgl()
2998 sglinfo->si_copybuf_req += MMU_PAGESIZE; in rootnex_get_sgl()
3000 if ((cnt + 1) < sglinfo->si_max_pages) { in rootnex_get_sgl()
3032 paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat, in rootnex_get_sgl()
3046 if (((sglinfo->si_bounce_on_seg) && in rootnex_get_sgl()
3047 ((raddr + psize) > sglinfo->si_segmask)) || in rootnex_get_sgl()
3050 sglinfo->si_copybuf_req += MMU_PAGESIZE; in rootnex_get_sgl()
3074 if ((cnt + 1) < sglinfo->si_max_pages) { in rootnex_get_sgl()
3088 !(raddr & sglinfo->si_segmask) || in rootnex_get_sgl()
3125 ((cnt + 1) < sglinfo->si_max_pages)) { in rootnex_get_sgl()
3144 ASSERT(cnt < sglinfo->si_max_pages); in rootnex_get_sgl()
3145 sglinfo->si_sgl_size = cnt; in rootnex_get_sgl()
3147 sglinfo->si_sgl_size = cnt + 1; in rootnex_get_sgl()
3153 rootnex_sglinfo_t *sglinfo) in rootnex_dvma_get_sgl() argument
3168 maxseg = sglinfo->si_max_cookie_size; in rootnex_dvma_get_sgl()
3172 sglinfo->si_bounce_on_seg = B_FALSE; in rootnex_dvma_get_sgl()
3202 if (!physcontig || !(paddr & sglinfo->si_segmask) || in rootnex_dvma_get_sgl()
3225 ((cnt + 1) < sglinfo->si_max_pages)) { in rootnex_dvma_get_sgl()
3237 sglinfo->si_sgl_size = cnt; in rootnex_dvma_get_sgl()
3239 sglinfo->si_sgl_size = cnt + 1; in rootnex_dvma_get_sgl()