Lines Matching defs:vmap

448 	struct vm_area_struct *vmap;
450 vmap = linux_cdev_handle_find(vm_obj->handle);
452 MPASS(vmap != NULL);
453 MPASS(vmap->vm_private_data == vm_obj->handle);
455 if (likely(vmap->vm_ops != NULL && offset < vmap->vm_len)) {
456 vm_paddr_t paddr = IDX_TO_OFF(vmap->vm_pfn) + offset;
490 struct vm_area_struct *vmap;
494 vmap = linux_cdev_handle_find(vm_obj->handle);
495 MPASS(vmap != NULL);
496 MPASS(vmap->vm_private_data == vm_obj->handle);
502 down_write(&vmap->vm_mm->mmap_sem);
503 if (unlikely(vmap->vm_ops == NULL)) {
513 vmf.vma = vmap;
515 vmap->vm_pfn_count = 0;
516 vmap->vm_pfn_pcount = &vmap->vm_pfn_count;
517 vmap->vm_obj = vm_obj;
519 err = vmap->vm_ops->fault(&vmf);
521 while (vmap->vm_pfn_count == 0 && err == VM_FAULT_NOPAGE) {
523 err = vmap->vm_ops->fault(&vmf);
542 *first = vmap->vm_pfn_first;
543 *last = *first + vmap->vm_pfn_count - 1;
550 up_write(&vmap->vm_mm->mmap_sem);
560 linux_cdev_handle_free(struct vm_area_struct *vmap)
563 if (vmap->vm_file != NULL)
564 fput(vmap->vm_file);
567 mmput(vmap->vm_mm);
569 kfree(vmap);
573 linux_cdev_handle_remove(struct vm_area_struct *vmap)
576 TAILQ_REMOVE(&linux_vma_head, vmap, vm_entry);
583 struct vm_area_struct *vmap;
586 TAILQ_FOREACH(vmap, &linux_vma_head, vm_entry) {
587 if (vmap->vm_private_data == handle)
591 return (vmap);
608 struct vm_area_struct *vmap;
610 vmap = linux_cdev_handle_find(handle);
611 MPASS(vmap != NULL);
617 linux_cdev_handle_remove(vmap);
619 down_write(&vmap->vm_mm->mmap_sem);
620 vm_ops = vmap->vm_ops;
622 vm_ops->close(vmap);
623 up_write(&vmap->vm_mm->mmap_sem);
625 linux_cdev_handle_free(vmap);
1213 struct vm_area_struct *vmap;
1232 * available as long as the vmap is in the linux_vma_head.
1239 vmap = kzalloc(sizeof(*vmap), GFP_KERNEL);
1240 vmap->vm_start = 0;
1241 vmap->vm_end = size;
1242 vmap->vm_pgoff = *offset / PAGE_SIZE;
1243 vmap->vm_pfn = 0;
1244 vmap->vm_flags = vmap->vm_page_prot = (nprot & VM_PROT_ALL);
1246 vmap->vm_flags |= VM_SHARED;
1247 vmap->vm_ops = NULL;
1248 vmap->vm_file = get_file(filp);
1249 vmap->vm_mm = mm;
1251 if (unlikely(down_write_killable(&vmap->vm_mm->mmap_sem))) {
1254 error = -OPW(fp, td, fop->mmap(filp, vmap));
1256 up_write(&vmap->vm_mm->mmap_sem);
1260 linux_cdev_handle_free(vmap);
1264 attr = pgprot2cachemode(vmap->vm_page_prot);
1266 if (vmap->vm_ops != NULL) {
1271 if (vmap->vm_ops->open == NULL ||
1272 vmap->vm_ops->close == NULL ||
1273 vmap->vm_private_data == NULL) {
1275 linux_cdev_handle_free(vmap);
1279 vm_private_data = vmap->vm_private_data;
1300 TAILQ_INSERT_TAIL(&linux_vma_head, vmap, vm_entry);
1302 vm_no_fault = (vmap->vm_ops->fault == NULL);
1308 linux_cdev_handle_free(vmap);
1329 linux_cdev_handle_remove(vmap);
1331 linux_cdev_handle_free(vmap);
1340 (vm_paddr_t)vmap->vm_pfn << PAGE_SHIFT, vmap->vm_len);
1342 *object = vm_pager_allocate(OBJT_SG, sg, vmap->vm_len,
1345 linux_cdev_handle_free(vmap);
1837 vmap(struct page **pages, unsigned int count, unsigned long flags, int prot)