Lines Matching refs:device

161 vfio_device_dma_map(struct vfio_device *device)  in vfio_device_dma_map()  argument
168 device->map = spdk_mem_map_alloc((uint64_t)NULL, &vfio_map_ops, device); in vfio_device_dma_map()
169 if (device->map == NULL) { in vfio_device_dma_map()
200 vfio_device_setup_sparse_mmaps(struct vfio_device *device, int index, in vfio_device_setup_sparse_mmaps() argument
205 struct vfio_pci_region *region = &device->regions[index]; in vfio_device_setup_sparse_mmaps()
239 device->regions[index].nr_mmaps = j; in vfio_device_setup_sparse_mmaps()
249 vfio_device_map_region(struct vfio_device *device, struct vfio_pci_region *region, int fd) in vfio_device_map_region() argument
273 vfio_device_map_bars_and_config_region(struct vfio_device *device) in vfio_device_map_bars_and_config_region() argument
288 for (i = 0; i < device->pci_regions; i++) { in vfio_device_map_bars_and_config_region()
293 ret = vfio_user_get_dev_region_info(device, info, len, fds, VFIO_MAXIMUM_SPARSE_MMAP_REGIONS); in vfio_device_map_bars_and_config_region()
300 device->regions[i].size = info->size; in vfio_device_map_bars_and_config_region()
301 device->regions[i].offset = info->offset; in vfio_device_map_bars_and_config_region()
302 device->regions[i].flags = info->flags; in vfio_device_map_bars_and_config_region()
310 ret = vfio_device_setup_sparse_mmaps(device, i, info, fds); in vfio_device_map_bars_and_config_region()
312 ret = vfio_device_map_region(device, &device->regions[i], fds[0]); in vfio_device_map_bars_and_config_region()
316 SPDK_ERRLOG("Setup Device %s region %d failed\n", device->name, i); in vfio_device_map_bars_and_config_region()
348 struct vfio_device *device = NULL; in spdk_vfio_user_setup() local
351 device = calloc(1, sizeof(*device)); in spdk_vfio_user_setup()
352 if (!device) { in spdk_vfio_user_setup()
355 TAILQ_INIT(&device->mrs_head); in spdk_vfio_user_setup()
356 snprintf(device->path, PATH_MAX, "%s", path); in spdk_vfio_user_setup()
357 snprintf(device->name, sizeof(device->name), "vfio-user%u", g_vfio_dev_id++); in spdk_vfio_user_setup()
359 ret = vfio_user_dev_setup(device); in spdk_vfio_user_setup()
361 free(device); in spdk_vfio_user_setup()
366 ret = vfio_user_get_dev_info(device, &dev_info, sizeof(dev_info)); in spdk_vfio_user_setup()
371 device->pci_regions = dev_info.num_regions; in spdk_vfio_user_setup()
372 device->flags = dev_info.flags; in spdk_vfio_user_setup()
374 ret = vfio_device_map_bars_and_config_region(device); in spdk_vfio_user_setup()
380 ret = vfio_device_dma_map(device); in spdk_vfio_user_setup()
386 SPDK_DEBUGLOG(vfio_pci, "Device %s, Path %s Setup Successfully\n", device->name, device->path); in spdk_vfio_user_setup()
388 return device; in spdk_vfio_user_setup()
391 close(device->fd); in spdk_vfio_user_setup()
392 free(device); in spdk_vfio_user_setup()