Lines Matching defs:sgl
384 static void rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl,
387 ddi_dma_cookie_t *sgl, rootnex_sglinfo_t *sglinfo);
2136 * Get the real sgl. rootnex_get_sgl will fill in cookie array while
2138 * some additional state about the sgl in the dma struct (i.e. is
2139 * the sgl clean, or do we need to do some munging; how many pages
2199 * multiple windows, and munge up a sgl to make the device happy.
2340 * If we had to allocate space to for the worse case sgl (it didn't
2861 * Called in bind fastpath to get the sgl. Most of this will be replaced
2865 rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl,
2970 sgl[cnt].dmac_laddress = raddr;
2971 sgl[cnt].dmac_size = psize;
2972 sgl[cnt].dmac_type = 0;
2999 sgl[cnt].dmac_type = ROOTNEX_USES_COPYBUF;
3002 sgl[cnt].dmac_laddress = 0;
3003 sgl[cnt].dmac_size = 0;
3004 sgl[cnt].dmac_type = 0;
3058 if (sgl[cnt].dmac_size != 0) {
3061 sgl[cnt].dmac_laddress = raddr;
3062 sgl[cnt].dmac_size = psize;
3064 sgl[cnt].dmac_type = ROOTNEX_USES_COPYBUF;
3070 sgl[cnt].dmac_type = ROOTNEX_USES_COPYBUF |
3076 sgl[cnt].dmac_laddress = 0;
3077 sgl[cnt].dmac_size = 0;
3078 sgl[cnt].dmac_type = 0;
3084 * puts us over the max cookie size, or the current sgl doesn't
3089 ((sgl[cnt].dmac_size + psize) > maxseg) ||
3090 (sgl[cnt].dmac_size == 0)) {
3095 if (sgl[cnt].dmac_size != 0) {
3100 sgl[cnt].dmac_laddress = raddr;
3101 sgl[cnt].dmac_size = psize;
3103 sgl[cnt].dmac_type = 0;
3109 sgl[cnt].dmac_type = dmar_object->dmao_size - size;
3118 sgl[cnt].dmac_size += psize;
3124 if (((sgl[cnt].dmac_size + psize) == maxseg) &&
3127 sgl[cnt].dmac_laddress = 0;
3128 sgl[cnt].dmac_size = 0;
3129 sgl[cnt].dmac_type = 0;
3142 /* we're done, save away how many cookies the sgl has */
3143 if (sgl[cnt].dmac_size == 0) {
3152 rootnex_dvma_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl,
3183 sgl[cnt].dmac_laddress = paddr;
3184 sgl[cnt].dmac_size = psize;
3185 sgl[cnt].dmac_type = 0;
3203 ((sgl[cnt].dmac_size + psize) > maxseg) ||
3204 (sgl[cnt].dmac_size == 0)) {
3209 if (sgl[cnt].dmac_size != 0) {
3214 sgl[cnt].dmac_laddress = paddr;
3215 sgl[cnt].dmac_size = psize;
3216 sgl[cnt].dmac_type = 0;
3218 sgl[cnt].dmac_size += psize;
3224 if (((sgl[cnt].dmac_size + psize) == maxseg) &&
3227 sgl[cnt].dmac_laddress = 0;
3228 sgl[cnt].dmac_size = 0;
3229 sgl[cnt].dmac_type = 0;
3235 /* we're done, save away how many cookies the sgl has */
3236 if (sgl[cnt].dmac_size == 0) {
3245 * Call in the bind path if the calling driver can't use the sgl without
3285 * if we need to trim the buffers when we munge the sgl.
3647 * left in the pre-allocted state or the dynamically allocated sgl.
3814 * Called in the bind slow path when the sgl uses the copy buffer. If any of
3815 * the sgl uses the copy buffer, we need to go through each cookie, figure
4063 * this case == since we start at 0 and sgllen starts at 1) the maximum sgl