mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-11 03:24:58 -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 =
|
VFIODeviceList vfio_device_list =
|
||||||
QLIST_HEAD_INITIALIZER(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
|
* Device state interfaces
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -106,6 +106,17 @@ bool vfio_get_info_dma_avail(struct vfio_iommu_type1_info *info,
|
||||||
return true;
|
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)
|
int vfio_kvm_device_add_fd(int fd, Error **errp)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_KVM
|
#ifdef CONFIG_KVM
|
||||||
|
|
|
@ -15,13 +15,13 @@
|
||||||
#include "system/hostmem.h"
|
#include "system/hostmem.h"
|
||||||
#include "system/address-spaces.h"
|
#include "system/address-spaces.h"
|
||||||
|
|
||||||
#include "hw/vfio/vfio-common.h"
|
|
||||||
#include "hw/vfio/vfio-container.h"
|
#include "hw/vfio/vfio-container.h"
|
||||||
#include "hw/hw.h"
|
#include "hw/hw.h"
|
||||||
#include "system/ram_addr.h"
|
#include "system/ram_addr.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
#include "vfio-helpers.h"
|
||||||
|
|
||||||
typedef struct VFIOHostDMAWindow {
|
typedef struct VFIOHostDMAWindow {
|
||||||
hwaddr min_iova;
|
hwaddr min_iova;
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
#ifdef CONFIG_LINUX
|
#ifdef CONFIG_LINUX
|
||||||
#include <linux/vfio.h>
|
#include <linux/vfio.h>
|
||||||
|
|
||||||
|
extern int vfio_kvm_device_fd;
|
||||||
|
|
||||||
struct vfio_info_cap_header *
|
struct vfio_info_cap_header *
|
||||||
vfio_get_cap(void *ptr, uint32_t cap_offset, uint16_t id);
|
vfio_get_cap(void *ptr, uint32_t cap_offset, uint16_t id);
|
||||||
struct vfio_info_cap_header *
|
struct vfio_info_cap_header *
|
||||||
|
|
|
@ -132,7 +132,6 @@ VFIODevice *vfio_get_vfio_device(Object *obj);
|
||||||
typedef QLIST_HEAD(VFIODeviceList, VFIODevice) VFIODeviceList;
|
typedef QLIST_HEAD(VFIODeviceList, VFIODevice) VFIODeviceList;
|
||||||
extern VFIODeviceList vfio_device_list;
|
extern VFIODeviceList vfio_device_list;
|
||||||
extern const MemoryListener vfio_memory_listener;
|
extern const MemoryListener vfio_memory_listener;
|
||||||
extern int vfio_kvm_device_fd;
|
|
||||||
|
|
||||||
#ifdef CONFIG_LINUX
|
#ifdef CONFIG_LINUX
|
||||||
int vfio_get_region_info(VFIODevice *vbasedev, int index,
|
int vfio_get_region_info(VFIODevice *vbasedev, int index,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue