Lines Matching refs:info

698 	struct vfio_pci_group_info *info = data;
708 for (i = 0; i < info->count; i++)
709 if (info->groups[i].id == id)
714 return (i == info->count) ? -EINVAL : 0;
807 struct vfio_device_info info;
816 if (copy_from_user(&info, (void __user *)arg, minsz))
819 if (info.argsz < minsz)
822 if (info.argsz >= capsz) {
824 info.cap_offset = 0;
827 info.flags = VFIO_DEVICE_FLAGS_PCI;
830 info.flags |= VFIO_DEVICE_FLAGS_RESET;
832 info.num_regions = VFIO_PCI_NUM_REGIONS + vdev->num_regions;
833 info.num_irqs = VFIO_PCI_NUM_IRQS;
839 pci_warn(vdev->pdev, "Failed to setup zPCI info capabilities\n");
845 info.flags |= VFIO_DEVICE_FLAGS_CAPS;
846 if (info.argsz < sizeof(info) + caps.size) {
847 info.argsz = sizeof(info) + caps.size;
849 vfio_info_cap_shift(&caps, sizeof(info));
851 sizeof(info), caps.buf,
856 info.cap_offset = sizeof(info);
862 return copy_to_user((void __user *)arg, &info, minsz) ?
867 struct vfio_region_info info;
873 if (copy_from_user(&info, (void __user *)arg, minsz))
876 if (info.argsz < minsz)
879 switch (info.index) {
881 info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
882 info.size = pdev->cfg_size;
883 info.flags = VFIO_REGION_INFO_FLAG_READ |
887 info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
888 info.size = pci_resource_len(pdev, info.index);
889 if (!info.size) {
890 info.flags = 0;
894 info.flags = VFIO_REGION_INFO_FLAG_READ |
896 if (vdev->bar_mmap_supported[info.index]) {
897 info.flags |= VFIO_REGION_INFO_FLAG_MMAP;
898 if (info.index == vdev->msix_bar) {
912 info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
913 info.flags = 0;
916 info.size = pci_resource_len(pdev, info.index);
917 if (!info.size) {
921 info.size = 0x20000;
933 info.flags = VFIO_REGION_INFO_FLAG_READ;
936 info.size = 0;
946 info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
947 info.size = 0xc0000;
948 info.flags = VFIO_REGION_INFO_FLAG_READ |
958 if (info.index >=
961 info.index = array_index_nospec(info.index,
965 i = info.index - VFIO_PCI_NUM_REGIONS;
967 info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
968 info.size = vdev->region[i].size;
969 info.flags = vdev->region[i].flags;
989 info.flags |= VFIO_REGION_INFO_FLAG_CAPS;
990 if (info.argsz < sizeof(info) + caps.size) {
991 info.argsz = sizeof(info) + caps.size;
992 info.cap_offset = 0;
994 vfio_info_cap_shift(&caps, sizeof(info));
996 sizeof(info), caps.buf,
1001 info.cap_offset = sizeof(info);
1007 return copy_to_user((void __user *)arg, &info, minsz) ?
1011 struct vfio_irq_info info;
1015 if (copy_from_user(&info, (void __user *)arg, minsz))
1018 if (info.argsz < minsz || info.index >= VFIO_PCI_NUM_IRQS)
1021 switch (info.index) {
1033 info.flags = VFIO_IRQ_INFO_EVENTFD;
1035 info.count = vfio_pci_get_irq_count(vdev, info.index);
1037 if (info.index == VFIO_PCI_INTX_IRQ_INDEX)
1038 info.flags |= (VFIO_IRQ_INFO_MASKABLE |
1041 info.flags |= VFIO_IRQ_INFO_NORESIZE;
1043 return copy_to_user((void __user *)arg, &info, minsz) ?
1170 struct vfio_pci_group_info info;
1251 info.count = hdr.count;
1252 info.groups = groups;
1260 &info, slot);