mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00

Firstly, we're going to use the multifd flag soon in multifd code, so ram.c isn't gonna work. Secondly, we have a separate RDMA flag dangling around, which is definitely not obvious. There's one comment that helps, but not too much. Put all RAM save flags altogether, so nothing will get overlooked. Add a section explain why we can't use bits over 0x200. Remove RAM_SAVE_FLAG_FULL as it's already not used in QEMU, as the comment explained. Reviewed-by: Fabiano Rosas <farosas@suse.de> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20241206224755.1108686-4-peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
62 lines
1.8 KiB
C
62 lines
1.8 KiB
C
/*
|
|
* RDMA protocol and interfaces
|
|
*
|
|
* Copyright IBM, Corp. 2010-2013
|
|
* Copyright Red Hat, Inc. 2015-2016
|
|
*
|
|
* Authors:
|
|
* Michael R. Hines <mrhines@us.ibm.com>
|
|
* Jiuxing Liu <jl@us.ibm.com>
|
|
* Daniel P. Berrange <berrange@redhat.com>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or
|
|
* later. See the COPYING file in the top-level directory.
|
|
*
|
|
*/
|
|
|
|
#include "qemu/sockets.h"
|
|
|
|
#ifndef QEMU_MIGRATION_RDMA_H
|
|
#define QEMU_MIGRATION_RDMA_H
|
|
|
|
#include "exec/memory.h"
|
|
|
|
void rdma_start_outgoing_migration(void *opaque, InetSocketAddress *host_port,
|
|
Error **errp);
|
|
|
|
void rdma_start_incoming_migration(InetSocketAddress *host_port, Error **errp);
|
|
|
|
/*
|
|
* Constants used by rdma return codes
|
|
*/
|
|
#define RAM_CONTROL_SETUP 0
|
|
#define RAM_CONTROL_ROUND 1
|
|
#define RAM_CONTROL_FINISH 3
|
|
|
|
#define RAM_SAVE_CONTROL_NOT_SUPP -1000
|
|
#define RAM_SAVE_CONTROL_DELAYED -2000
|
|
|
|
#ifdef CONFIG_RDMA
|
|
int rdma_registration_handle(QEMUFile *f);
|
|
int rdma_registration_start(QEMUFile *f, uint64_t flags);
|
|
int rdma_registration_stop(QEMUFile *f, uint64_t flags);
|
|
int rdma_block_notification_handle(QEMUFile *f, const char *name);
|
|
int rdma_control_save_page(QEMUFile *f, ram_addr_t block_offset,
|
|
ram_addr_t offset, size_t size);
|
|
#else
|
|
static inline
|
|
int rdma_registration_handle(QEMUFile *f) { return 0; }
|
|
static inline
|
|
int rdma_registration_start(QEMUFile *f, uint64_t flags) { return 0; }
|
|
static inline
|
|
int rdma_registration_stop(QEMUFile *f, uint64_t flags) { return 0; }
|
|
static inline
|
|
int rdma_block_notification_handle(QEMUFile *f, const char *name) { return 0; }
|
|
static inline
|
|
int rdma_control_save_page(QEMUFile *f, ram_addr_t block_offset,
|
|
ram_addr_t offset, size_t size)
|
|
{
|
|
return RAM_SAVE_CONTROL_NOT_SUPP;
|
|
}
|
|
#endif
|
|
#endif
|