mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
vfio/container: pass MemoryRegion to DMA operations
Pass through the MemoryRegion to DMA operation handlers of vfio containers. The vfio-user container will need this later, to translate the vaddr into an offset for the dma map vfio-user message; CPR will also will need this. Originally-by: John Johnson <john.g.johnson@oracle.com> Signed-off-by: Jagannathan Raman <jag.raman@oracle.com> Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com> Signed-off-by: John Levon <john.levon@nutanix.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Steve Sistare <steven.sistare@oracle.com> Link: https://lore.kernel.org/qemu-devel/20250521215534.2688540-1-john.levon@nutanix.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
e3353d63e1
commit
44d0acf834
5 changed files with 14 additions and 11 deletions
|
@ -78,7 +78,7 @@ void vfio_address_space_insert(VFIOAddressSpace *space,
|
|||
|
||||
int vfio_container_dma_map(VFIOContainerBase *bcontainer,
|
||||
hwaddr iova, ram_addr_t size,
|
||||
void *vaddr, bool readonly);
|
||||
void *vaddr, bool readonly, MemoryRegion *mr);
|
||||
int vfio_container_dma_unmap(VFIOContainerBase *bcontainer,
|
||||
hwaddr iova, ram_addr_t size,
|
||||
IOMMUTLBEntry *iotlb, bool unmap_all);
|
||||
|
@ -151,20 +151,21 @@ struct VFIOIOMMUClass {
|
|||
/**
|
||||
* @dma_map
|
||||
*
|
||||
* Map an address range into the container.
|
||||
* Map an address range into the container. Note that the memory region is
|
||||
* referenced within an RCU read lock region across this call.
|
||||
*
|
||||
* @bcontainer: #VFIOContainerBase to use
|
||||
* @iova: start address to map
|
||||
* @size: size of the range to map
|
||||
* @vaddr: process virtual address of mapping
|
||||
* @readonly: true if mapping should be readonly
|
||||
* @mr: the memory region for this mapping
|
||||
*
|
||||
* Returns 0 to indicate success and -errno otherwise.
|
||||
*/
|
||||
int (*dma_map)(const VFIOContainerBase *bcontainer,
|
||||
hwaddr iova, ram_addr_t size,
|
||||
void *vaddr, bool readonly);
|
||||
|
||||
void *vaddr, bool readonly, MemoryRegion *mr);
|
||||
/**
|
||||
* @dma_unmap
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue