12a9e2e59SSteve Sistare /* 22a9e2e59SSteve Sistare * Copyright (c) 2021-2023 Oracle and/or its affiliates. 32a9e2e59SSteve Sistare * 42a9e2e59SSteve Sistare * This work is licensed under the terms of the GNU GPL, version 2 or later. 52a9e2e59SSteve Sistare * See the COPYING file in the top-level directory. 62a9e2e59SSteve Sistare */ 72a9e2e59SSteve Sistare 82a9e2e59SSteve Sistare #ifndef QEMU_MIGRATION_FILE_H 92a9e2e59SSteve Sistare #define QEMU_MIGRATION_FILE_H 102a9e2e59SSteve Sistare 1102afba63SFabiano Rosas #include "qapi/qapi-types-migration.h" 12b7b03eb6SFabiano Rosas #include "io/task.h" 13b7b03eb6SFabiano Rosas #include "channel.h" 14a49d15a3SFabiano Rosas #include "multifd.h" 1502afba63SFabiano Rosas 1602afba63SFabiano Rosas void file_start_incoming_migration(FileMigrationArgs *file_args, Error **errp); 1702afba63SFabiano Rosas 1802afba63SFabiano Rosas void file_start_outgoing_migration(MigrationState *s, 1902afba63SFabiano Rosas FileMigrationArgs *file_args, Error **errp); 2072a8192eSHet Gala int file_parse_offset(char *filespec, uint64_t *offsetp, Error **errp); 21b7b03eb6SFabiano Rosas void file_cleanup_outgoing_migration(void); 22b7b03eb6SFabiano Rosas bool file_send_channel_create(gpointer opaque, Error **errp); 23f427d90bSFabiano Rosas int file_write_ramblock_iov(QIOChannel *ioc, const struct iovec *iov, 24*112f7d1bSFabiano Rosas int niov, MultiFDPages_t *pages, Error **errp); 25a49d15a3SFabiano Rosas int multifd_file_recv_data(MultiFDRecvParams *p, Error **errp); 262a9e2e59SSteve Sistare #endif 27