Lines Matching refs:count

117 	int	(*readfn)(struct vfio_pci_device *vdev, int pos, int count,
119 int (*writefn)(struct vfio_pci_device *vdev, int pos, int count,
129 __le32 *val, int count) in vfio_user_config_read() argument
134 switch (count) { in vfio_user_config_read()
160 __le32 val, int count) in vfio_user_config_write() argument
165 switch (count) { in vfio_user_config_write()
181 int count, struct perm_bits *perm, in vfio_default_config_read() argument
186 memcpy(val, vdev->vconfig + pos, count); in vfio_default_config_read()
188 memcpy(&virt, perm->virt + offset, count); in vfio_default_config_read()
191 if (cpu_to_le32(~0U >> (32 - (count * 8))) != virt) { in vfio_default_config_read()
196 ret = vfio_user_config_read(pdev, pos, &phys_val, count); in vfio_default_config_read()
203 return count; in vfio_default_config_read()
207 int count, struct perm_bits *perm, in vfio_default_config_write() argument
212 memcpy(&write, perm->write + offset, count); in vfio_default_config_write()
215 return count; /* drop, no writable bits */ in vfio_default_config_write()
217 memcpy(&virt, perm->virt + offset, count); in vfio_default_config_write()
223 memcpy(&virt_val, vdev->vconfig + pos, count); in vfio_default_config_write()
228 memcpy(vdev->vconfig + pos, &virt_val, count); in vfio_default_config_write()
237 ret = vfio_user_config_read(pdev, pos, &phys_val, count); in vfio_default_config_write()
244 ret = vfio_user_config_write(pdev, pos, phys_val, count); in vfio_default_config_write()
249 return count; in vfio_default_config_write()
254 int count, struct perm_bits *perm, in vfio_direct_config_read() argument
259 ret = vfio_user_config_read(vdev->pdev, pos, val, count); in vfio_direct_config_read()
265 memcpy(val, vdev->vconfig + pos, count); in vfio_direct_config_read()
267 if (offset == PCI_CAP_LIST_ID && count > 1) in vfio_direct_config_read()
269 min(PCI_CAP_FLAGS, count)); in vfio_direct_config_read()
274 return count; in vfio_direct_config_read()
279 int count, struct perm_bits *perm, in vfio_raw_config_write() argument
284 ret = vfio_user_config_write(vdev->pdev, pos, val, count); in vfio_raw_config_write()
288 return count; in vfio_raw_config_write()
292 int count, struct perm_bits *perm, in vfio_raw_config_read() argument
297 ret = vfio_user_config_read(vdev->pdev, pos, val, count); in vfio_raw_config_read()
301 return count; in vfio_raw_config_read()
472 int count, struct perm_bits *perm, in vfio_basic_config_read() argument
478 count = vfio_default_config_read(vdev, pos, count, perm, offset, val); in vfio_basic_config_read()
489 return count; in vfio_basic_config_read()
493 int count, struct perm_bits *perm, in vfio_basic_config_write() argument
534 count = vfio_default_config_write(vdev, pos, count, perm, offset, val); in vfio_basic_config_write()
535 if (count < 0) in vfio_basic_config_write()
536 return count; in vfio_basic_config_write()
568 return count; in vfio_basic_config_write()
620 int count, struct perm_bits *perm, in vfio_pm_config_write() argument
623 count = vfio_default_config_write(vdev, pos, count, perm, offset, val); in vfio_pm_config_write()
624 if (count < 0) in vfio_pm_config_write()
625 return count; in vfio_pm_config_write()
648 return count; in vfio_pm_config_write()
845 int count, struct perm_bits *perm, in vfio_msi_config_read() argument
849 if (offset <= PCI_MSI_FLAGS && offset + count >= PCI_MSI_FLAGS) { in vfio_msi_config_read()
861 return vfio_default_config_read(vdev, pos, count, perm, offset, val); in vfio_msi_config_read()
865 int count, struct perm_bits *perm, in vfio_msi_config_write() argument
868 count = vfio_default_config_write(vdev, pos, count, perm, offset, val); in vfio_msi_config_write()
869 if (count < 0) in vfio_msi_config_write()
870 return count; in vfio_msi_config_write()
873 if (offset <= PCI_MSI_FLAGS && offset + count >= PCI_MSI_FLAGS) { in vfio_msi_config_write()
903 return count; in vfio_msi_config_write()
1500 size_t count, loff_t *ppos, bool iswrite) in vfio_config_do_rw() argument
1510 *ppos + count > pdev->cfg_size) in vfio_config_do_rw()
1517 count = min(count, vfio_pci_cap_remaining_dword(vdev, *ppos)); in vfio_config_do_rw()
1518 if (count >= 4 && !(*ppos % 4)) in vfio_config_do_rw()
1519 count = 4; in vfio_config_do_rw()
1520 else if (count >= 2 && !(*ppos % 2)) in vfio_config_do_rw()
1521 count = 2; in vfio_config_do_rw()
1523 count = 1; in vfio_config_do_rw()
1525 ret = count; in vfio_config_do_rw()
1560 if (copy_from_user(&val, buf, count)) in vfio_config_do_rw()
1563 ret = perm->writefn(vdev, *ppos, count, perm, offset, val); in vfio_config_do_rw()
1566 ret = perm->readfn(vdev, *ppos, count, in vfio_config_do_rw()
1572 if (copy_to_user(buf, &val, count)) in vfio_config_do_rw()
1580 size_t count, loff_t *ppos, bool iswrite) in vfio_pci_config_rw() argument
1588 while (count) { in vfio_pci_config_rw()
1589 ret = vfio_config_do_rw(vdev, buf, count, &pos, iswrite); in vfio_pci_config_rw()
1593 count -= ret; in vfio_pci_config_rw()