mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
vfio: Move vfio_kvm_device_fd() into helpers.c
The vfio_kvm_device_add/del_fd() routines opening the VFIO pseudo device are defined in "helpers.c". Move 'vfio_kvm_device_fd' definition there and its declaration into "vfio-helpers.h" to reduce exposure of VFIO internals in "hw/vfio/vfio-common.h". Reviewed-by: John Levon <john.levon@nutanix.com> Link: https://lore.kernel.org/qemu-devel/20250318095415.670319-22-clg@redhat.com Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Link: https://lore.kernel.org/qemu-devel/20250326075122.1299361-23-clg@redhat.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
8140d45b10
commit
c3fbdba15a
5 changed files with 14 additions and 13 deletions
|
@ -49,17 +49,6 @@
|
|||
VFIODeviceList vfio_device_list =
|
||||
QLIST_HEAD_INITIALIZER(vfio_device_list);
|
||||
|
||||
#ifdef CONFIG_KVM
|
||||
/*
|
||||
* We have a single VFIO pseudo device per KVM VM. Once created it lives
|
||||
* for the life of the VM. Closing the file descriptor only drops our
|
||||
* reference to it and the device's reference to kvm. Therefore once
|
||||
* initialized, this file descriptor is only released on QEMU exit and
|
||||
* we'll re-use it should another vfio device be attached before then.
|
||||
*/
|
||||
int vfio_kvm_device_fd = -1;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Device state interfaces
|
||||
*/
|
||||
|
|
|
@ -106,6 +106,17 @@ bool vfio_get_info_dma_avail(struct vfio_iommu_type1_info *info,
|
|||
return true;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_KVM
|
||||
/*
|
||||
* We have a single VFIO pseudo device per KVM VM. Once created it lives
|
||||
* for the life of the VM. Closing the file descriptor only drops our
|
||||
* reference to it and the device's reference to kvm. Therefore once
|
||||
* initialized, this file descriptor is only released on QEMU exit and
|
||||
* we'll re-use it should another vfio device be attached before then.
|
||||
*/
|
||||
int vfio_kvm_device_fd = -1;
|
||||
#endif
|
||||
|
||||
int vfio_kvm_device_add_fd(int fd, Error **errp)
|
||||
{
|
||||
#ifdef CONFIG_KVM
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
#include "system/hostmem.h"
|
||||
#include "system/address-spaces.h"
|
||||
|
||||
#include "hw/vfio/vfio-common.h"
|
||||
#include "hw/vfio/vfio-container.h"
|
||||
#include "hw/hw.h"
|
||||
#include "system/ram_addr.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qapi/error.h"
|
||||
#include "trace.h"
|
||||
#include "vfio-helpers.h"
|
||||
|
||||
typedef struct VFIOHostDMAWindow {
|
||||
hwaddr min_iova;
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#ifdef CONFIG_LINUX
|
||||
#include <linux/vfio.h>
|
||||
|
||||
extern int vfio_kvm_device_fd;
|
||||
|
||||
struct vfio_info_cap_header *
|
||||
vfio_get_cap(void *ptr, uint32_t cap_offset, uint16_t id);
|
||||
struct vfio_info_cap_header *
|
||||
|
|
|
@ -132,7 +132,6 @@ VFIODevice *vfio_get_vfio_device(Object *obj);
|
|||
typedef QLIST_HEAD(VFIODeviceList, VFIODevice) VFIODeviceList;
|
||||
extern VFIODeviceList vfio_device_list;
|
||||
extern const MemoryListener vfio_memory_listener;
|
||||
extern int vfio_kvm_device_fd;
|
||||
|
||||
#ifdef CONFIG_LINUX
|
||||
int vfio_get_region_info(VFIODevice *vbasedev, int index,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue