Lines Matching refs:entry
39 struct drm_sg_mem *entry; in drm_sg_alloc() local
48 entry = malloc(sizeof(*entry), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); in drm_sg_alloc()
51 entry->pages = OFF_TO_IDX(size); in drm_sg_alloc()
52 entry->busaddr = malloc(entry->pages * sizeof(*entry->busaddr), in drm_sg_alloc()
55 entry->vaddr = kmem_alloc_attr(kernel_arena, size, M_WAITOK | M_ZERO, in drm_sg_alloc()
57 if (entry->vaddr == 0) { in drm_sg_alloc()
58 drm_sg_cleanup(entry); in drm_sg_alloc()
62 for(pindex = 0; pindex < entry->pages; pindex++) { in drm_sg_alloc()
63 entry->busaddr[pindex] = in drm_sg_alloc()
64 vtophys(entry->vaddr + IDX_TO_OFF(pindex)); in drm_sg_alloc()
70 drm_sg_cleanup(entry); in drm_sg_alloc()
73 dev->sg = entry; in drm_sg_alloc()
76 request->handle = entry->vaddr; in drm_sg_alloc()
79 entry->pages, entry->vaddr, *(unsigned long *)entry->vaddr); in drm_sg_alloc()
96 drm_sg_cleanup(struct drm_sg_mem *entry) in drm_sg_cleanup() argument
98 if (entry == NULL) in drm_sg_cleanup()
101 if (entry->vaddr != 0) in drm_sg_cleanup()
102 kmem_free(kernel_arena, entry->vaddr, IDX_TO_OFF(entry->pages)); in drm_sg_cleanup()
104 free(entry->busaddr, DRM_MEM_SGLISTS); in drm_sg_cleanup()
105 free(entry, DRM_MEM_DRIVER); in drm_sg_cleanup()
114 struct drm_sg_mem *entry; in drm_sg_free() local
117 entry = dev->sg; in drm_sg_free()
121 if (!entry || entry->vaddr != request->handle) in drm_sg_free()
124 DRM_DEBUG("free 0x%zx\n", entry->vaddr); in drm_sg_free()
126 drm_sg_cleanup(entry); in drm_sg_free()