Lines Matching full:regions
19 vdev->regions = kcalloc(count, sizeof(struct vfio_cdx_region), in vfio_cdx_open_device()
21 if (!vdev->regions) in vfio_cdx_open_device()
27 vdev->regions[i].addr = res->start; in vfio_cdx_open_device()
28 vdev->regions[i].size = resource_size(res); in vfio_cdx_open_device()
29 vdev->regions[i].type = res->flags; in vfio_cdx_open_device()
31 * Only regions addressed with PAGE granularity may be in vfio_cdx_open_device()
34 if (!(vdev->regions[i].addr & ~PAGE_MASK) && in vfio_cdx_open_device()
35 !(vdev->regions[i].size & ~PAGE_MASK)) in vfio_cdx_open_device()
36 vdev->regions[i].flags |= in vfio_cdx_open_device()
38 vdev->regions[i].flags |= VFIO_REGION_INFO_FLAG_READ; in vfio_cdx_open_device()
40 vdev->regions[i].flags |= VFIO_REGION_INFO_FLAG_WRITE; in vfio_cdx_open_device()
51 kfree(vdev->regions); in vfio_cdx_close_device()
95 info.size = vdev->regions[info.index].size; in vfio_cdx_ioctl_get_region_info()
96 info.flags = vdev->regions[info.index].flags; in vfio_cdx_ioctl_get_region_info()
153 if (!(vdev->regions[index].flags & VFIO_REGION_INFO_FLAG_MMAP)) in vfio_cdx_mmap()
156 if (!(vdev->regions[index].flags & VFIO_REGION_INFO_FLAG_READ) && in vfio_cdx_mmap()
160 if (!(vdev->regions[index].flags & VFIO_REGION_INFO_FLAG_WRITE) && in vfio_cdx_mmap()
164 return vfio_cdx_mmap_mmio(vdev->regions[index], vma); in vfio_cdx_mmap()