mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
vfio/container: register container for cpr
Register a legacy container for cpr-transfer, replacing the generic CPR register call with a more specific legacy container register call. Add a blocker if the kernel does not support VFIO_UPDATE_VADDR or VFIO_UNMAP_ALL. This is mostly boiler plate. The fields to to saved and restored are added in subsequent patches. Signed-off-by: Steve Sistare <steven.sistare@oracle.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/1749569991-25171-4-git-send-email-steven.sistare@oracle.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
081c09dc52
commit
54857b0816
6 changed files with 91 additions and 7 deletions
|
@ -10,6 +10,7 @@
|
|||
#define HW_VFIO_CONTAINER_H
|
||||
|
||||
#include "hw/vfio/vfio-container-base.h"
|
||||
#include "hw/vfio/vfio-cpr.h"
|
||||
|
||||
typedef struct VFIOContainer VFIOContainer;
|
||||
typedef struct VFIODevice VFIODevice;
|
||||
|
@ -29,6 +30,7 @@ typedef struct VFIOContainer {
|
|||
int fd; /* /dev/vfio/vfio, empowered by the attached groups */
|
||||
unsigned iommu_type;
|
||||
QLIST_HEAD(, VFIOGroup) group_list;
|
||||
VFIOContainerCPR cpr;
|
||||
} VFIOContainer;
|
||||
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(VFIOContainer, VFIO_IOMMU_LEGACY);
|
||||
|
|
|
@ -9,8 +9,23 @@
|
|||
#ifndef HW_VFIO_VFIO_CPR_H
|
||||
#define HW_VFIO_VFIO_CPR_H
|
||||
|
||||
#include "migration/misc.h"
|
||||
|
||||
struct VFIOContainer;
|
||||
struct VFIOContainerBase;
|
||||
|
||||
typedef struct VFIOContainerCPR {
|
||||
Error *blocker;
|
||||
} VFIOContainerCPR;
|
||||
|
||||
|
||||
bool vfio_legacy_cpr_register_container(struct VFIOContainer *container,
|
||||
Error **errp);
|
||||
void vfio_legacy_cpr_unregister_container(struct VFIOContainer *container);
|
||||
|
||||
int vfio_cpr_reboot_notifier(NotifierWithReturn *notifier, MigrationEvent *e,
|
||||
Error **errp);
|
||||
|
||||
bool vfio_cpr_register_container(struct VFIOContainerBase *bcontainer,
|
||||
Error **errp);
|
||||
void vfio_cpr_unregister_container(struct VFIOContainerBase *bcontainer);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue