196116512SMaciej S. Szmigiero /* 296116512SMaciej S. Szmigiero * Multifd VFIO migration 396116512SMaciej S. Szmigiero * 496116512SMaciej S. Szmigiero * Copyright (C) 2024,2025 Oracle and/or its affiliates. 596116512SMaciej S. Szmigiero * 696116512SMaciej S. Szmigiero * This work is licensed under the terms of the GNU GPL, version 2 or later. 796116512SMaciej S. Szmigiero * See the COPYING file in the top-level directory. 896116512SMaciej S. Szmigiero * 996116512SMaciej S. Szmigiero * SPDX-License-Identifier: GPL-2.0-or-later 1096116512SMaciej S. Szmigiero */ 1196116512SMaciej S. Szmigiero 1296116512SMaciej S. Szmigiero #ifndef HW_VFIO_MIGRATION_MULTIFD_H 1396116512SMaciej S. Szmigiero #define HW_VFIO_MIGRATION_MULTIFD_H 1496116512SMaciej S. Szmigiero 1596116512SMaciej S. Szmigiero #include "hw/vfio/vfio-common.h" 1696116512SMaciej S. Szmigiero 17ff2fd1f7SMaciej S. Szmigiero bool vfio_multifd_setup(VFIODevice *vbasedev, bool alloc_multifd, Error **errp); 18ff2fd1f7SMaciej S. Szmigiero void vfio_multifd_cleanup(VFIODevice *vbasedev); 19ff2fd1f7SMaciej S. Szmigiero 202efa35d3SMaciej S. Szmigiero bool vfio_multifd_transfer_supported(void); 21ff2fd1f7SMaciej S. Szmigiero bool vfio_multifd_transfer_enabled(VFIODevice *vbasedev); 222efa35d3SMaciej S. Szmigiero 233228d311SMaciej S. Szmigiero bool vfio_multifd_load_state_buffer(void *opaque, char *data, size_t data_size, 243228d311SMaciej S. Szmigiero Error **errp); 253228d311SMaciej S. Szmigiero 26*6d644baeSMaciej S. Szmigiero void vfio_multifd_emit_dummy_eos(VFIODevice *vbasedev, QEMUFile *f); 27*6d644baeSMaciej S. Szmigiero 28*6d644baeSMaciej S. Szmigiero bool 29*6d644baeSMaciej S. Szmigiero vfio_multifd_save_complete_precopy_thread(SaveLiveCompletePrecopyThreadData *d, 30*6d644baeSMaciej S. Szmigiero Error **errp); 31*6d644baeSMaciej S. Szmigiero 32c59748c1SMaciej S. Szmigiero int vfio_multifd_switchover_start(VFIODevice *vbasedev); 33c59748c1SMaciej S. Szmigiero 3496116512SMaciej S. Szmigiero #endif 35