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);
2141 * Get the real sgl. rootnex_get_sgl will fill in cookie array while
2143 * some additional state about the sgl in the dma struct (i.e. is
2144 * the sgl clean, or do we need to do some munging; how many pages
2204 * multiple windows, and munge up a sgl to make the device happy.
2345 * If we had to allocate space to for the worse case sgl (it didn't
2866 * Called in bind fastpath to get the sgl. Most of this will be replaced
2870 rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl,
2975 sgl[cnt].dmac_laddress = raddr;
2976 sgl[cnt].dmac_size = psize;
2977 sgl[cnt].dmac_type = 0;
3004 sgl[cnt].dmac_type = ROOTNEX_USES_COPYBUF;
3007 sgl[cnt].dmac_laddress = 0;
3008 sgl[cnt].dmac_size = 0;
3009 sgl[cnt].dmac_type = 0;
3063 if (sgl[cnt].dmac_size != 0) {
3066 sgl[cnt].dmac_laddress = raddr;
3067 sgl[cnt].dmac_size = psize;
3069 sgl[cnt].dmac_type = ROOTNEX_USES_COPYBUF;
3075 sgl[cnt].dmac_type = ROOTNEX_USES_COPYBUF |
3081 sgl[cnt].dmac_laddress = 0;
3082 sgl[cnt].dmac_size = 0;
3083 sgl[cnt].dmac_type = 0;
3089 * puts us over the max cookie size, or the current sgl doesn't
3094 ((sgl[cnt].dmac_size + psize) > maxseg) ||
3095 (sgl[cnt].dmac_size == 0)) {
3100 if (sgl[cnt].dmac_size != 0) {
3105 sgl[cnt].dmac_laddress = raddr;
3106 sgl[cnt].dmac_size = psize;
3108 sgl[cnt].dmac_type = 0;
3114 sgl[cnt].dmac_type = dmar_object->dmao_size - size;
3123 sgl[cnt].dmac_size += psize;
3129 if (((sgl[cnt].dmac_size + psize) == maxseg) &&
3132 sgl[cnt].dmac_laddress = 0;
3133 sgl[cnt].dmac_size = 0;
3134 sgl[cnt].dmac_type = 0;
3147 /* we're done, save away how many cookies the sgl has */
3148 if (sgl[cnt].dmac_size == 0) {
3157 rootnex_dvma_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl,
3188 sgl[cnt].dmac_laddress = paddr;
3189 sgl[cnt].dmac_size = psize;
3190 sgl[cnt].dmac_type = 0;
3208 ((sgl[cnt].dmac_size + psize) > maxseg) ||
3209 (sgl[cnt].dmac_size == 0)) {
3214 if (sgl[cnt].dmac_size != 0) {
3219 sgl[cnt].dmac_laddress = paddr;
3220 sgl[cnt].dmac_size = psize;
3221 sgl[cnt].dmac_type = 0;
3223 sgl[cnt].dmac_size += psize;
3229 if (((sgl[cnt].dmac_size + psize) == maxseg) &&
3232 sgl[cnt].dmac_laddress = 0;
3233 sgl[cnt].dmac_size = 0;
3234 sgl[cnt].dmac_type = 0;
3240 /* we're done, save away how many cookies the sgl has */
3241 if (sgl[cnt].dmac_size == 0) {
3250 * Call in the bind path if the calling driver can't use the sgl without
3290 * if we need to trim the buffers when we munge the sgl.
3652 * left in the pre-allocted state or the dynamically allocated sgl.
3819 * Called in the bind slow path when the sgl uses the copy buffer. If any of
3820 * the sgl uses the copy buffer, we need to go through each cookie, figure
4068 * this case == since we start at 0 and sgllen starts at 1) the maximum sgl