13ed34463SSteve Sistare /* 23ed34463SSteve Sistare * VFIO CPR 33ed34463SSteve Sistare * 43ed34463SSteve Sistare * Copyright (c) 2025 Oracle and/or its affiliates. 53ed34463SSteve Sistare * 63ed34463SSteve Sistare * SPDX-License-Identifier: GPL-2.0-or-later 73ed34463SSteve Sistare */ 83ed34463SSteve Sistare 93ed34463SSteve Sistare #ifndef HW_VFIO_VFIO_CPR_H 103ed34463SSteve Sistare #define HW_VFIO_VFIO_CPR_H 113ed34463SSteve Sistare 12*54857b08SSteve Sistare #include "migration/misc.h" 13*54857b08SSteve Sistare 14*54857b08SSteve Sistare struct VFIOContainer; 153ed34463SSteve Sistare struct VFIOContainerBase; 163ed34463SSteve Sistare 17*54857b08SSteve Sistare typedef struct VFIOContainerCPR { 18*54857b08SSteve Sistare Error *blocker; 19*54857b08SSteve Sistare } VFIOContainerCPR; 20*54857b08SSteve Sistare 21*54857b08SSteve Sistare 22*54857b08SSteve Sistare bool vfio_legacy_cpr_register_container(struct VFIOContainer *container, 23*54857b08SSteve Sistare Error **errp); 24*54857b08SSteve Sistare void vfio_legacy_cpr_unregister_container(struct VFIOContainer *container); 25*54857b08SSteve Sistare 26*54857b08SSteve Sistare int vfio_cpr_reboot_notifier(NotifierWithReturn *notifier, MigrationEvent *e, 27*54857b08SSteve Sistare Error **errp); 28*54857b08SSteve Sistare 293ed34463SSteve Sistare bool vfio_cpr_register_container(struct VFIOContainerBase *bcontainer, 303ed34463SSteve Sistare Error **errp); 313ed34463SSteve Sistare void vfio_cpr_unregister_container(struct VFIOContainerBase *bcontainer); 323ed34463SSteve Sistare 333ed34463SSteve Sistare #endif /* HW_VFIO_VFIO_CPR_H */ 34