Lines Matching refs:sgt
44 sg_alloc_table(struct sg_table *sgt, unsigned npgs, gfp_t gfp)
47 sgt->sgl->sg_pgs = kcalloc(npgs, sizeof(sgt->sgl->sg_pgs[0]), gfp);
48 if (sgt->sgl->sg_pgs == NULL)
50 sgt->sgl->sg_npgs = sgt->nents = npgs;
51 sgt->sgl->sg_dmamap = NULL;
57 __sg_alloc_table_from_pages(struct sg_table *sgt, struct page **pgs,
67 ret = sg_alloc_table(sgt, npgs, gfp);
72 sgt->sgl->sg_pgs[i] = pgs[i];
78 sg_alloc_table_from_pages(struct sg_table *sgt, struct page **pgs,
82 return __sg_alloc_table_from_pages(sgt, pgs, npgs, offset, size,
87 sg_alloc_table_from_bus_dmamem(struct sg_table *sgt, bus_dma_tag_t dmat,
109 ret = sg_alloc_table(sgt, npgs, gfp);
114 ret = -bus_dmamem_export_pages(dmat, seg, nseg, sgt->sgl->sg_pgs,
115 sgt->sgl->sg_npgs);
123 sg_free_table(sgt);
128 sg_free_table(struct sg_table *sgt)
131 if (sgt->sgl->sg_dmamap) {
132 KASSERT(sgt->sgl->sg_dmat);
133 bus_dmamap_destroy(sgt->sgl->sg_dmat, sgt->sgl->sg_dmamap);
135 kfree(sgt->sgl->sg_pgs);
136 sgt->sgl->sg_pgs = NULL;
137 sgt->sgl->sg_npgs = 0;