Lines Matching defs:sglinfo

385     rootnex_sglinfo_t *sglinfo);
387 ddi_dma_cookie_t *sgl, rootnex_sglinfo_t *sglinfo);
415 rootnex_sglinfo_t *sglinfo);
2745 rootnex_need_bounce_seg(ddi_dma_obj_t *dmar_object, rootnex_sglinfo_t *sglinfo)
2783 sglinfo->si_asp = NULL;
2786 sglinfo->si_asp = dmar_object->dmao_obj.virt_obj.v_as;
2787 if (sglinfo->si_asp == NULL) {
2788 sglinfo->si_asp = &kas;
2796 sglinfo->si_asp = dmar_object->dmao_obj.virt_obj.v_as;
2797 if (sglinfo->si_asp == NULL) {
2798 sglinfo->si_asp = &kas;
2800 paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat, vaddr));
2808 if ((raddr + psize) > sglinfo->si_segmask) {
2835 paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat,
2842 if ((raddr + psize) > sglinfo->si_segmask) {
2854 (raddr == (sglinfo->si_segmask + 1))) {
2871 rootnex_sglinfo_t *sglinfo)
2893 maxseg = sglinfo->si_max_cookie_size;
2895 addrhi = sglinfo->si_max_addr;
2896 addrlo = sglinfo->si_min_addr;
2907 sglinfo->si_bounce_on_seg = B_FALSE;
2908 if (sglinfo->si_flags & _DDI_DMA_BOUNCE_ON_SEG) {
2909 sglinfo->si_bounce_on_seg = rootnex_need_bounce_seg(
2910 dmar_object, sglinfo);
2925 sglinfo->si_asp = NULL;
2937 sglinfo->si_asp = dmar_object->dmao_obj.virt_obj.v_as;
2938 if (sglinfo->si_asp == NULL) {
2939 sglinfo->si_asp = &kas;
2957 sglinfo->si_asp = dmar_object->dmao_obj.virt_obj.v_as;
2958 if (sglinfo->si_asp == NULL) {
2959 sglinfo->si_asp = &kas;
2962 paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat, vaddr));
2984 sglinfo->si_buf_offset = offset;
2992 if (((sglinfo->si_bounce_on_seg) &&
2993 ((raddr + psize) > sglinfo->si_segmask)) ||
3003 sglinfo->si_copybuf_req += MMU_PAGESIZE;
3005 if ((cnt + 1) < sglinfo->si_max_pages) {
3037 paddr = pfn_to_pa(hat_getpfnum(sglinfo->si_asp->a_hat,
3051 if (((sglinfo->si_bounce_on_seg) &&
3052 ((raddr + psize) > sglinfo->si_segmask)) ||
3055 sglinfo->si_copybuf_req += MMU_PAGESIZE;
3079 if ((cnt + 1) < sglinfo->si_max_pages) {
3093 !(raddr & sglinfo->si_segmask) ||
3130 ((cnt + 1) < sglinfo->si_max_pages)) {
3149 ASSERT(cnt < sglinfo->si_max_pages);
3150 sglinfo->si_sgl_size = cnt;
3152 sglinfo->si_sgl_size = cnt + 1;
3158 rootnex_sglinfo_t *sglinfo)
3173 maxseg = sglinfo->si_max_cookie_size;
3177 sglinfo->si_bounce_on_seg = B_FALSE;
3207 if (!physcontig || !(paddr & sglinfo->si_segmask) ||
3230 ((cnt + 1) < sglinfo->si_max_pages)) {
3242 sglinfo->si_sgl_size = cnt;
3244 sglinfo->si_sgl_size = cnt + 1;