• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/compat/linuxkpi/common/src/

Lines Matching defs:vmap

485 	struct vm_area_struct *vmap;
487 vmap = linux_cdev_handle_find(vm_obj->handle);
489 MPASS(vmap != NULL);
490 MPASS(vmap->vm_private_data == vm_obj->handle);
492 if (likely(vmap->vm_ops != NULL && offset < vmap->vm_len)) {
493 vm_paddr_t paddr = IDX_TO_OFF(vmap->vm_pfn) + offset;
532 struct vm_area_struct *vmap;
536 vmap = linux_cdev_handle_find(vm_obj->handle);
537 MPASS(vmap != NULL);
538 MPASS(vmap->vm_private_data == vm_obj->handle);
544 down_write(&vmap->vm_mm->mmap_sem);
545 if (unlikely(vmap->vm_ops == NULL)) {
555 vmf.vma = vmap;
557 vmap->vm_pfn_count = 0;
558 vmap->vm_pfn_pcount = &vmap->vm_pfn_count;
559 vmap->vm_obj = vm_obj;
561 err = vmap->vm_ops->fault(vmap, &vmf);
563 while (vmap->vm_pfn_count == 0 && err == VM_FAULT_NOPAGE) {
565 err = vmap->vm_ops->fault(vmap, &vmf);
584 *first = vmap->vm_pfn_first;
585 *last = *first + vmap->vm_pfn_count - 1;
592 up_write(&vmap->vm_mm->mmap_sem);
602 linux_cdev_handle_free(struct vm_area_struct *vmap)
605 if (vmap->vm_file != NULL)
606 fput(vmap->vm_file);
609 mmput(vmap->vm_mm);
611 kfree(vmap);
615 linux_cdev_handle_remove(struct vm_area_struct *vmap)
618 TAILQ_REMOVE(&linux_vma_head, vmap, vm_entry);
625 struct vm_area_struct *vmap;
628 TAILQ_FOREACH(vmap, &linux_vma_head, vm_entry) {
629 if (vmap->vm_private_data == handle)
633 return (vmap);
650 struct vm_area_struct *vmap;
652 vmap = linux_cdev_handle_find(handle);
653 MPASS(vmap != NULL);
659 linux_cdev_handle_remove(vmap);
661 down_write(&vmap->vm_mm->mmap_sem);
662 vm_ops = vmap->vm_ops;
664 vm_ops->close(vmap);
665 up_write(&vmap->vm_mm->mmap_sem);
667 linux_cdev_handle_free(vmap);
1244 struct vm_area_struct *vmap;
1263 * available as long as the vmap is in the linux_vma_head.
1270 vmap = kzalloc(sizeof(*vmap), GFP_KERNEL);
1271 vmap->vm_start = 0;
1272 vmap->vm_end = size;
1273 vmap->vm_pgoff = *offset / PAGE_SIZE;
1274 vmap->vm_pfn = 0;
1275 vmap->vm_flags = vmap->vm_page_prot = (nprot & VM_PROT_ALL);
1276 vmap->vm_ops = NULL;
1277 vmap->vm_file = get_file(filp);
1278 vmap->vm_mm = mm;
1280 if (unlikely(down_write_killable(&vmap->vm_mm->mmap_sem))) {
1283 error = -OPW(fp, td, fop->mmap(filp, vmap));
1285 up_write(&vmap->vm_mm->mmap_sem);
1289 linux_cdev_handle_free(vmap);
1293 attr = pgprot2cachemode(vmap->vm_page_prot);
1295 if (vmap->vm_ops != NULL) {
1300 if (vmap->vm_ops->open == NULL ||
1301 vmap->vm_ops->close == NULL ||
1302 vmap->vm_private_data == NULL) {
1304 linux_cdev_handle_free(vmap);
1308 vm_private_data = vmap->vm_private_data;
1329 TAILQ_INSERT_TAIL(&linux_vma_head, vmap, vm_entry);
1331 vm_no_fault = (vmap->vm_ops->fault == NULL);
1337 linux_cdev_handle_free(vmap);
1358 linux_cdev_handle_remove(vmap);
1360 linux_cdev_handle_free(vmap);
1369 (vm_paddr_t)vmap->vm_pfn << PAGE_SHIFT, vmap->vm_len);
1371 *object = vm_pager_allocate(OBJT_SG, sg, vmap->vm_len,
1374 linux_cdev_handle_free(vmap);
1850 vmap(struct page **pages, unsigned int count, unsigned long flags, int prot)