Lines Matching +full:add +full:- +full:vdpa
1 /* SPDX-License-Identifier: GPL-2.0 */
13 * struct vdpa_callback - vDPA callback definition.
17 * When it is set, the vDPA driver must guarantee that
19 * the callback. Then vDPA parent can signal it directly
29 * struct vdpa_notification_area - vDPA notification area
39 * struct vdpa_vq_state_split - vDPA split virtqueue state
47 * struct vdpa_vq_state_packed - vDPA packed virtqueue state
70 * struct vdpa_device - representation of a vDPA device
103 * struct vdpa_iova_range - the IOVA range support by the device
123 * struct vdpa_map_file - file area for device memory mapping
124 * @file: vma->vm_file for the mapping
133 * struct vdpa_config_ops - operations for configuring a vDPA device.
134 * Note: vDPA device drivers are required to implement all of the
139 * @vdev: vdpa device
146 * @vdev: vdpa device
150 * @vdev: vdpa device
154 * @vdev: vdpa device
162 * @vdev: vdpa device
164 * @cb: virtio-vdev interrupt callback structure
166 * @vdev: vdpa device
170 * @vdev: vdpa device
174 * @vdev: vdpa device
179 * @vdev: vdpa device
183 * @vdev: vdpa device
189 * @vdev: vdpa device
194 * @vdev: vdpa device
200 * @vdev: vdpa device
204 * @vdev: vdpa device
209 * @vdev: vdpa device
218 * @vdev: vdpa device
221 * @get_backend_features: Get parent-specific backend features (optional)
222 * Returns the vdpa features supported by the
225 * @vdev: vdpa device
229 * @vdev: vdpa device
232 * @vdev: vdpa device
233 * @cb: virtio-vdev interrupt callback structure
235 * @vdev: vdpa device
238 * @vdev: vdpa device
241 * @vdev: vdpa device
244 * @vdev: vdpa device
247 * @vdev: vdpa device
250 * @vdev: vdpa device
253 * @vdev: vdpa device
261 * implement .reset, Historically non-compliant
263 * @vdev: vdpa device
267 * @vdev: vdpa device
270 * @vdev: vdpa device
274 * @vdev: vdpa device
277 * @vdev: vdpa device
284 * @vdev: vdpa device
291 * @vdev: vdpa device
294 * @vdev: vdpa device
298 * @vdev: vdpa device
303 * @vdev: vdpa device
308 * @vdev: vdpa device
314 * specific DMA translation (on-chip IOMMU)
315 * @vdev: vdpa device
318 * used by the vDPA
322 * specific DMA translation (on-chip IOMMU)
324 * @vdev: vdpa device
334 * specific DMA translation (on-chip IOMMU)
336 * @vdev: vdpa device
347 * @vdev: vdpa device
352 * @vdev: vdpa device
356 * so the vDPA framework can use VA when this
358 * @vdev: vdpa device
362 * @vdev: vdpa device
363 * @free: Free resources that belongs to vDPA (optional)
364 * @vdev: vdpa device
448 * vdpa_alloc_device - allocate and initilaize a vDPA device
456 * @name: name of the vdpa device
477 * struct vdpa_driver - operations for a vDPA driver
479 * @probe: the function to call when a device is found. Returns 0 or -errno.
509 return dev_get_drvdata(&vdev->dev); in vdpa_get_drvdata()
514 dev_set_drvdata(&vdev->dev, data); in vdpa_set_drvdata()
519 return vdev->dma_dev; in vdpa_get_dma_dev()
524 const struct vdpa_config_ops *ops = vdev->config; in vdpa_reset()
527 down_write(&vdev->cf_lock); in vdpa_reset()
528 vdev->features_valid = false; in vdpa_reset()
529 if (ops->compat_reset && flags) in vdpa_reset()
530 ret = ops->compat_reset(vdev, flags); in vdpa_reset()
532 ret = ops->reset(vdev); in vdpa_reset()
533 up_write(&vdev->cf_lock); in vdpa_reset()
539 const struct vdpa_config_ops *ops = vdev->config; in vdpa_set_features_unlocked()
542 vdev->features_valid = true; in vdpa_set_features_unlocked()
543 ret = ops->set_driver_features(vdev, features); in vdpa_set_features_unlocked()
552 down_write(&vdev->cf_lock); in vdpa_set_features()
554 up_write(&vdev->cf_lock); in vdpa_set_features()
566 * struct vdpa_mgmtdev_ops - vdpa device ops
567 * @dev_add: Add a vdpa device using alloc and register
569 * @name: name of the new vdpa device
571 * Driver need to add a new device using _vdpa_register_device()
572 * after fully initializing the vdpa device. Driver must return 0
574 * @dev_del: Remove a vdpa device using unregister
576 * @dev: vdpa device to remove
587 * struct vdpa_mgmt_dev - vdpa management device