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