On 01/06/2017 23:29, Juan Quintela wrote: > So, move them there. Notice that we export functions that send > commands, not the command themselves. > > Signed-off-by: Juan Quintela <quint...@redhat.com>
Reviewed-by: Laurent Vivier <lviv...@redhat.com> > --- > include/migration/migration.h | 15 -------------- > migration/migration.c | 46 > +++++++++++++++++++++++++++---------------- > 2 files changed, 29 insertions(+), 32 deletions(-) > > diff --git a/include/migration/migration.h b/include/migration/migration.h > index dd52d3c..108212c 100644 > --- a/include/migration/migration.h > +++ b/include/migration/migration.h > @@ -22,18 +22,6 @@ > #include "exec/cpu-common.h" > #include "qemu/coroutine_int.h" > > -/* Messages sent on the return path from destination to source */ > -enum mig_rp_message_type { > - MIG_RP_MSG_INVALID = 0, /* Must be 0 */ > - MIG_RP_MSG_SHUT, /* sibling will not send any more RP messages */ > - MIG_RP_MSG_PONG, /* Response to a PING; data (seq: be32 ) */ > - > - MIG_RP_MSG_REQ_PAGES_ID, /* data (start: be64, len: be32, id: string) */ > - MIG_RP_MSG_REQ_PAGES, /* data (start: be64, len: be32) */ > - > - MIG_RP_MSG_MAX > -}; > - > /* State for the incoming migration */ > struct MigrationIncomingState { > QEMUFile *from_src_file; > @@ -176,9 +164,6 @@ int migrate_decompress_threads(void); > bool migrate_use_events(void); > > /* Sending on the return path - generic and then for each message type */ > -void migrate_send_rp_message(MigrationIncomingState *mis, > - enum mig_rp_message_type message_type, > - uint16_t len, void *data); > void migrate_send_rp_shut(MigrationIncomingState *mis, > uint32_t value); > void migrate_send_rp_pong(MigrationIncomingState *mis, > diff --git a/migration/migration.c b/migration/migration.c > index 48c94c9..603d39d 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -86,6 +86,18 @@ static NotifierList migration_state_notifiers = > > static bool deferred_incoming; > > +/* Messages sent on the return path from destination to source */ > +enum mig_rp_message_type { > + MIG_RP_MSG_INVALID = 0, /* Must be 0 */ > + MIG_RP_MSG_SHUT, /* sibling will not send any more RP messages */ > + MIG_RP_MSG_PONG, /* Response to a PING; data (seq: be32 ) */ > + > + MIG_RP_MSG_REQ_PAGES_ID, /* data (start: be64, len: be32, id: string) */ > + MIG_RP_MSG_REQ_PAGES, /* data (start: be64, len: be32) */ > + > + MIG_RP_MSG_MAX > +}; > + > /* When we add fault tolerance, we could have several > migrations at once. For now we don't need to add > dynamic creation of migration */ > @@ -292,6 +304,23 @@ static void deferred_incoming_migration(Error **errp) > deferred_incoming = true; > } > > +/* > + * Send a message on the return channel back to the source > + * of the migration. > + */ > +static void migrate_send_rp_message(MigrationIncomingState *mis, > + enum mig_rp_message_type message_type, > + uint16_t len, void *data) > +{ > + trace_migrate_send_rp_message((int)message_type, len); > + qemu_mutex_lock(&mis->rp_mutex); > + qemu_put_be16(mis->to_src_file, (unsigned int)message_type); > + qemu_put_be16(mis->to_src_file, len); > + qemu_put_buffer(mis->to_src_file, data, len); > + qemu_fflush(mis->to_src_file); > + qemu_mutex_unlock(&mis->rp_mutex); > +} > + > /* Request a range of pages from the source VM at the given > * start address. > * rbname: Name of the RAMBlock to request the page in, if NULL it's the > same > @@ -462,23 +491,6 @@ void migration_fd_process_incoming(QEMUFile *f) > } > > /* > - * Send a message on the return channel back to the source > - * of the migration. > - */ > -void migrate_send_rp_message(MigrationIncomingState *mis, > - enum mig_rp_message_type message_type, > - uint16_t len, void *data) > -{ > - trace_migrate_send_rp_message((int)message_type, len); > - qemu_mutex_lock(&mis->rp_mutex); > - qemu_put_be16(mis->to_src_file, (unsigned int)message_type); > - qemu_put_be16(mis->to_src_file, len); > - qemu_put_buffer(mis->to_src_file, data, len); > - qemu_fflush(mis->to_src_file); > - qemu_mutex_unlock(&mis->rp_mutex); > -} > - > -/* > * Send a 'SHUT' message on the return channel with the given value > * to indicate that we've finished with the RP. Non-0 value indicates > * error. >