Lines Matching defs:map

70 	drm_local_map_t		*map;
72 TAILQ_FOREACH(map, &dev->maplist, link) {
73 if ((map->type == type) && ((map->offset == offset) ||
74 (map->flags == _DRM_CONTAINS_LOCK) &&
75 (map->type == _DRM_SHM)))
76 return (map);
86 drm_local_map_t *map;
109 * map, and just hand that back if so.
111 map = drm_find_map(dev, offset, type);
112 if (map != NULL) {
117 * Allocate a new map structure, fill it in, and do any
120 map = drm_alloc(sizeof (*map), DRM_MEM_MAPS);
121 if (!map)
124 map->offset = offset;
125 map->size = size;
126 map->type = type;
127 map->flags = flags;
129 switch (map->type) {
132 retval = drm_ioremap(dev, map);
142 map->handle = ddi_umem_alloc(map->size,
143 DDI_UMEM_NOSLEEP, &map->drm_umem_cookie);
144 if (!map->handle) {
146 drm_free(map, sizeof (*map), DRM_MEM_MAPS);
154 map->offset = (uintptr_t)map->handle;
155 map->offset &= 0xffffffffUL;
156 if (map->flags & _DRM_CONTAINS_LOCK) {
159 ddi_umem_free(map->drm_umem_cookie);
160 drm_free(map, sizeof (*map), DRM_MEM_MAPS);
163 dev->lock.hw_lock = map->handle; /* Pointer to lock */
165 map->dev_addr = map->handle;
169 drm_free(map, sizeof (*map), DRM_MEM_MAPS);
172 map->offset += (uintptr_t)dev->sg->virtual;
173 map->handle = (void *)(uintptr_t)map->offset;
174 map->dev_addr = dev->sg->virtual;
175 map->dev_handle = dev->sg->dmah_sg->acc_hdl;
180 drm_free(map, sizeof (*map), DRM_MEM_MAPS);
184 map->offset += dev->agp->base;
185 kva = gfxp_map_kernel_space(map->offset, map->size,
188 drm_free(map, sizeof (*map), DRM_MEM_MAPS);
190 "drm_addmap: failed to map AGP aperture");
193 map->handle = (void *)(uintptr_t)kva;
194 map->dev_addr = kva;
198 drm_free(map, sizeof (*map), DRM_MEM_MAPS);
202 TAILQ_INSERT_TAIL(&dev->maplist, map, link);
205 /* Jumped to, with lock held, when a kernel map is found. */
206 *map_ptr = map;
216 drm_local_map_t *map;
239 request.flags, &map);
244 request.offset = map->offset;
245 request.size = map->size;
246 request.type = map->type;
247 request.flags = map->flags;
248 request.mtrr = map->mtrr;
249 request.handle = (uintptr_t)map->handle;
271 drm_rmmap(drm_device_t *dev, drm_local_map_t *map)
275 TAILQ_REMOVE(&dev->maplist, map, link);
277 switch (map->type) {
279 drm_ioremapfree(map);
283 drm_ioremapfree(map);
286 ddi_umem_free(map->drm_umem_cookie);
295 gfxp_unmap_kernel_space(map->dev_addr, map->size);
308 drm_free(map, sizeof (*map), DRM_MEM_MAPS);
312 * Remove a map private from list and deallocate resources if the
320 drm_local_map_t *map;
340 TAILQ_FOREACH(map, &dev->maplist, link) {
341 if (((uintptr_t)map->handle == (request.handle & 0xffffffff)) &&
342 (map->flags & _DRM_REMOVABLE))
347 if (map == NULL) {
352 drm_rmmap(dev, map);
829 drm_local_map_t *map = dev->agp_buffer_map;
830 if (map == NULL)
832 size = round_page(map->size);
833 foff = (uintptr_t)map->handle;