From fa6b1d129e7bf8acf41e66c9c665ae9f9c1d5b0d Mon Sep 17 00:00:00 2001 From: Jon Smirl Date: Mon, 27 Sep 2004 19:51:38 +0000 Subject: First check in for DRM that splits core from personality modules --- linux-core/drm_vm.c | 120 ++++++++++++++++++++++++++-------------------------- 1 file changed, 61 insertions(+), 59 deletions(-) (limited to 'linux-core/drm_vm.c') diff --git a/linux-core/drm_vm.c b/linux-core/drm_vm.c index 30b0e73e..0895a5bc 100644 --- a/linux-core/drm_vm.c +++ b/linux-core/drm_vm.c @@ -47,7 +47,7 @@ * map, get the page, increment the use count and return it. */ #if __OS_HAS_AGP -static __inline__ struct page *DRM(do_vm_nopage)(struct vm_area_struct *vma, +static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma, unsigned long address) { drm_file_t *priv = vma->vm_file->private_data; @@ -115,7 +115,7 @@ vm_nopage_error: return NOPAGE_SIGBUS; /* Disallow mremap */ } #else /* __OS_HAS_AGP */ -static __inline__ struct page *DRM(do_vm_nopage)(struct vm_area_struct *vma, +static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma, unsigned long address) { return NOPAGE_SIGBUS; @@ -132,7 +132,7 @@ static __inline__ struct page *DRM(do_vm_nopage)(struct vm_area_struct *vma, * Get the the mapping, find the real physical page to map, get the page, and * return it. */ -static __inline__ struct page *DRM(do_vm_shm_nopage)(struct vm_area_struct *vma, +static __inline__ struct page *drm_do_vm_shm_nopage(struct vm_area_struct *vma, unsigned long address) { drm_map_t *map = (drm_map_t *)vma->vm_private_data; @@ -163,7 +163,7 @@ static __inline__ struct page *DRM(do_vm_shm_nopage)(struct vm_area_struct *vma, * Deletes map information if we are the last * person to close a mapping and it's not in the global maplist. */ -void DRM(vm_shm_close)(struct vm_area_struct *vma) +void drm_vm_shm_close(struct vm_area_struct *vma) { drm_file_t *priv = vma->vm_file->private_data; drm_device_t *dev = priv->dev; @@ -189,7 +189,7 @@ void DRM(vm_shm_close)(struct vm_area_struct *vma) } else { dev->vmalist = pt->next; } - DRM(free)(pt, sizeof(*pt), DRM_MEM_VMAS); + drm_free(pt, sizeof(*pt), DRM_MEM_VMAS); } else { prev = pt; } @@ -218,7 +218,7 @@ void DRM(vm_shm_close)(struct vm_area_struct *vma) map->size); DRM_DEBUG("mtrr_del = %d\n", retcode); } - DRM(ioremapfree)(map->handle, map->size, dev); + drm_ioremapfree(map->handle, map->size, dev); break; case _DRM_SHM: vfree(map->handle); @@ -227,7 +227,7 @@ void DRM(vm_shm_close)(struct vm_area_struct *vma) case _DRM_SCATTER_GATHER: break; } - DRM(free)(map, sizeof(*map), DRM_MEM_MAPS); + drm_free(map, sizeof(*map), DRM_MEM_MAPS); } } up(&dev->struct_sem); @@ -242,7 +242,7 @@ void DRM(vm_shm_close)(struct vm_area_struct *vma) * * Determine the page number from the page offset and get it from drm_device_dma::pagelist. */ -static __inline__ struct page *DRM(do_vm_dma_nopage)(struct vm_area_struct *vma, +static __inline__ struct page *drm_do_vm_dma_nopage(struct vm_area_struct *vma, unsigned long address) { drm_file_t *priv = vma->vm_file->private_data; @@ -276,7 +276,7 @@ static __inline__ struct page *DRM(do_vm_dma_nopage)(struct vm_area_struct *vma, * * Determine the map offset from the page offset and get it from drm_sg_mem::pagelist. */ -static __inline__ struct page *DRM(do_vm_sg_nopage)(struct vm_area_struct *vma, +static __inline__ struct page *drm_do_vm_sg_nopage(struct vm_area_struct *vma, unsigned long address) { drm_map_t *map = (drm_map_t *)vma->vm_private_data; @@ -305,89 +305,89 @@ static __inline__ struct page *DRM(do_vm_sg_nopage)(struct vm_area_struct *vma, #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) -static struct page *DRM(vm_nopage)(struct vm_area_struct *vma, +static struct page *drm_vm_nopage(struct vm_area_struct *vma, unsigned long address, int *type) { if (type) *type = VM_FAULT_MINOR; - return DRM(do_vm_nopage)(vma, address); + return drm_do_vm_nopage(vma, address); } -static struct page *DRM(vm_shm_nopage)(struct vm_area_struct *vma, +static struct page *drm_vm_shm_nopage(struct vm_area_struct *vma, unsigned long address, int *type) { if (type) *type = VM_FAULT_MINOR; - return DRM(do_vm_shm_nopage)(vma, address); + return drm_do_vm_shm_nopage(vma, address); } -static struct page *DRM(vm_dma_nopage)(struct vm_area_struct *vma, +static struct page *drm_vm_dma_nopage(struct vm_area_struct *vma, unsigned long address, int *type) { if (type) *type = VM_FAULT_MINOR; - return DRM(do_vm_dma_nopage)(vma, address); + return drm_do_vm_dma_nopage(vma, address); } -static struct page *DRM(vm_sg_nopage)(struct vm_area_struct *vma, +static struct page *drm_vm_sg_nopage(struct vm_area_struct *vma, unsigned long address, int *type) { if (type) *type = VM_FAULT_MINOR; - return DRM(do_vm_sg_nopage)(vma, address); + return drm_do_vm_sg_nopage(vma, address); } #else /* LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,0) */ -static struct page *DRM(vm_nopage)(struct vm_area_struct *vma, +static struct page *drm_vm_nopage(struct vm_area_struct *vma, unsigned long address, int unused) { - return DRM(do_vm_nopage)(vma, address); + return drm_do_vm_nopage(vma, address); } -static struct page *DRM(vm_shm_nopage)(struct vm_area_struct *vma, +static struct page *drm_vm_shm_nopage(struct vm_area_struct *vma, unsigned long address, int unused) { - return DRM(do_vm_shm_nopage)(vma, address); + return drm_do_vm_shm_nopage(vma, address); } -static struct page *DRM(vm_dma_nopage)(struct vm_area_struct *vma, +static struct page *drm_vm_dma_nopage(struct vm_area_struct *vma, unsigned long address, int unused) { - return DRM(do_vm_dma_nopage)(vma, address); + return drm_do_vm_dma_nopage(vma, address); } -static struct page *DRM(vm_sg_nopage)(struct vm_area_struct *vma, +static struct page *drm_vm_sg_nopage(struct vm_area_struct *vma, unsigned long address, int unused) { - return DRM(do_vm_sg_nopage)(vma, address); + return drm_do_vm_sg_nopage(vma, address); } #endif /** AGP virtual memory operations */ -static struct vm_operations_struct DRM(vm_ops) = { - .nopage = DRM(vm_nopage), - .open = DRM(vm_open), - .close = DRM(vm_close), +static struct vm_operations_struct drm_vm_ops = { + .nopage = drm_vm_nopage, + .open = drm_vm_open, + .close = drm_vm_close, }; /** Shared virtual memory operations */ -static struct vm_operations_struct DRM(vm_shm_ops) = { - .nopage = DRM(vm_shm_nopage), - .open = DRM(vm_open), - .close = DRM(vm_shm_close), +static struct vm_operations_struct drm_vm_shm_ops = { + .nopage = drm_vm_shm_nopage, + .open = drm_vm_open, + .close = drm_vm_shm_close, }; /** DMA virtual memory operations */ -static struct vm_operations_struct DRM(vm_dma_ops) = { - .nopage = DRM(vm_dma_nopage), - .open = DRM(vm_open), - .close = DRM(vm_close), +static struct vm_operations_struct drm_vm_dma_ops = { + .nopage = drm_vm_dma_nopage, + .open = drm_vm_open, + .close = drm_vm_close, }; /** Scatter-gather virtual memory operations */ -static struct vm_operations_struct DRM(vm_sg_ops) = { - .nopage = DRM(vm_sg_nopage), - .open = DRM(vm_open), - .close = DRM(vm_close), +static struct vm_operations_struct drm_vm_sg_ops = { + .nopage = drm_vm_sg_nopage, + .open = drm_vm_open, + .close = drm_vm_close, }; @@ -399,7 +399,7 @@ static struct vm_operations_struct DRM(vm_sg_ops) = { * Create a new drm_vma_entry structure as the \p vma private data entry and * add it to drm_device::vmalist. */ -void DRM(vm_open)(struct vm_area_struct *vma) +void drm_vm_open(struct vm_area_struct *vma) { drm_file_t *priv = vma->vm_file->private_data; drm_device_t *dev = priv->dev; @@ -409,7 +409,7 @@ void DRM(vm_open)(struct vm_area_struct *vma) vma->vm_start, vma->vm_end - vma->vm_start); atomic_inc(&dev->vma_count); - vma_entry = DRM(alloc)(sizeof(*vma_entry), DRM_MEM_VMAS); + vma_entry = drm_alloc(sizeof(*vma_entry), DRM_MEM_VMAS); if (vma_entry) { down(&dev->struct_sem); vma_entry->vma = vma; @@ -428,7 +428,7 @@ void DRM(vm_open)(struct vm_area_struct *vma) * Search the \p vma private data entry in drm_device::vmalist, unlink it, and * free it. */ -void DRM(vm_close)(struct vm_area_struct *vma) +void drm_vm_close(struct vm_area_struct *vma) { drm_file_t *priv = vma->vm_file->private_data; drm_device_t *dev = priv->dev; @@ -446,7 +446,7 @@ void DRM(vm_close)(struct vm_area_struct *vma) } else { dev->vmalist = pt->next; } - DRM(free)(pt, sizeof(*pt), DRM_MEM_VMAS); + drm_free(pt, sizeof(*pt), DRM_MEM_VMAS); break; } } @@ -463,7 +463,7 @@ void DRM(vm_close)(struct vm_area_struct *vma) * Sets the virtual memory area operations structure to vm_dma_ops, the file * pointer, and calls vm_open(). */ -int DRM(mmap_dma)(struct file *filp, struct vm_area_struct *vma) +int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) { drm_file_t *priv = filp->private_data; drm_device_t *dev; @@ -483,7 +483,7 @@ int DRM(mmap_dma)(struct file *filp, struct vm_area_struct *vma) } unlock_kernel(); - vma->vm_ops = &DRM(vm_dma_ops); + vma->vm_ops = &drm_vm_dma_ops; #if LINUX_VERSION_CODE <= 0x02040e /* KERNEL_VERSION(2,4,14) */ vma->vm_flags |= VM_LOCKED | VM_SHM; /* Don't swap */ @@ -492,16 +492,17 @@ int DRM(mmap_dma)(struct file *filp, struct vm_area_struct *vma) #endif vma->vm_file = filp; /* Needed for drm_vm_open() */ - DRM(vm_open)(vma); + drm_vm_open(vma); return 0; } -unsigned long DRM(core_get_map_ofs)(drm_map_t *map) +unsigned long drm_core_get_map_ofs(drm_map_t *map) { return map->offset; } +EXPORT_SYMBOL(drm_core_get_map_ofs); -unsigned long DRM(core_get_reg_ofs)(struct drm_device *dev) +unsigned long drm_core_get_reg_ofs(struct drm_device *dev) { #ifdef __alpha__ return dev->hose->dense_mem_base - dev->hose->mem_space->start; @@ -509,6 +510,7 @@ unsigned long DRM(core_get_reg_ofs)(struct drm_device *dev) return 0; #endif } +EXPORT_SYMBOL(drm_core_get_reg_ofs); /** * mmap DMA memory. @@ -523,7 +525,7 @@ unsigned long DRM(core_get_reg_ofs)(struct drm_device *dev) * according to the mapping type and remaps the pages. Finally sets the file * pointer and calls vm_open(). */ -int DRM(mmap)(struct file *filp, struct vm_area_struct *vma) +int drm_mmap(struct file *filp, struct vm_area_struct *vma) { drm_file_t *priv = filp->private_data; drm_device_t *dev = priv->dev; @@ -546,7 +548,7 @@ int DRM(mmap)(struct file *filp, struct vm_area_struct *vma) && (!dev->agp || dev->agp->agp_info.device->vendor != PCI_VENDOR_ID_APPLE) #endif ) - return DRM(mmap_dma)(filp, vma); + return drm_mmap_dma(filp, vma); /* A sequential search of a linked list is fine here because: 1) there will only be @@ -561,7 +563,7 @@ int DRM(mmap)(struct file *filp, struct vm_area_struct *vma) r_list = list_entry(list, drm_map_list_t, head); map = r_list->map; if (!map) continue; - off = dev->fn_tbl.get_map_ofs(map); + off = dev->fn_tbl->get_map_ofs(map); if (off == VM_OFFSET(vma)) break; } @@ -595,7 +597,7 @@ int DRM(mmap)(struct file *filp, struct vm_area_struct *vma) #if defined(__powerpc__) pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE; #endif - vma->vm_ops = &DRM(vm_ops); + vma->vm_ops = &drm_vm_ops; break; } /* fall through to _DRM_FRAME_BUFFER... */ @@ -616,7 +618,7 @@ int DRM(mmap)(struct file *filp, struct vm_area_struct *vma) if (map->type != _DRM_AGP) vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); #endif - offset = dev->fn_tbl.get_reg_ofs(dev); + offset = dev->fn_tbl->get_reg_ofs(dev); #ifdef __sparc__ if (io_remap_page_range(DRM_RPR_ARG(vma) vma->vm_start, VM_OFFSET(vma) + offset, @@ -633,10 +635,10 @@ int DRM(mmap)(struct file *filp, struct vm_area_struct *vma) " offset = 0x%lx\n", map->type, vma->vm_start, vma->vm_end, VM_OFFSET(vma) + offset); - vma->vm_ops = &DRM(vm_ops); + vma->vm_ops = &drm_vm_ops; break; case _DRM_SHM: - vma->vm_ops = &DRM(vm_shm_ops); + vma->vm_ops = &drm_vm_shm_ops; vma->vm_private_data = (void *)map; /* Don't let this area swap. Change when DRM_KERNEL advisory is supported. */ @@ -647,7 +649,7 @@ int DRM(mmap)(struct file *filp, struct vm_area_struct *vma) #endif break; case _DRM_SCATTER_GATHER: - vma->vm_ops = &DRM(vm_sg_ops); + vma->vm_ops = &drm_vm_sg_ops; vma->vm_private_data = (void *)map; #if LINUX_VERSION_CODE <= 0x02040e /* KERNEL_VERSION(2,4,14) */ vma->vm_flags |= VM_LOCKED; @@ -665,6 +667,6 @@ int DRM(mmap)(struct file *filp, struct vm_area_struct *vma) #endif vma->vm_file = filp; /* Needed for drm_vm_open() */ - DRM(vm_open)(vma); + drm_vm_open(vma); return 0; } -- cgit v1.2.3