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