@@ -876,7 +876,7 @@ int libxl_domain_remus_start(libxl_ctx *ctx, libxl_domain_remus_info *info,
dss->live = 1;
dss->debug = 0;
dss->remus = info;
- dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_REMUS;
+ dss->stream_type = LIBXL_CHECKPOINTED_STREAM_REMUS;
assert(info);
@@ -937,7 +937,7 @@ int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, int flags,
dss->type = type;
dss->live = flags & LIBXL_SUSPEND_LIVE;
dss->debug = flags & LIBXL_SUSPEND_DEBUG;
- dss->checkpointed_stream = LIBXL_CHECKPOINTED_STREAM_NONE;
+ dss->stream_type = LIBXL_CHECKPOINTED_STREAM_NONE;
rc = libxl__fd_flags_modify_save(gc, dss->fd,
~(O_NONBLOCK|O_NDELAY), 0,
@@ -863,6 +863,14 @@ void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, libxl_mac *src);
#define LIBXL_HAVE_SRM_V1 1
/*
+ * LIBXL_HAVE_STREAM_TYPE
+ *
+ * If this is define, then the libxl_domain_create_restore() interfaces;s
+ * parameter checkpointed_stream is renamed to stream_type
+ */
+#define LIBXL_HAVE_STREAM_TYPE 1
+
+/*
* libxl_domain_build_info has the u.hvm.gfx_passthru_kind field and
* the libxl_gfx_passthru_kind enumeration is defined.
*/
@@ -993,7 +993,7 @@ static void domcreate_bootloader_done(libxl__egc *egc,
libxl_domain_config *const d_config = dcs->guest_config;
const int restore_fd = dcs->restore_fd;
libxl__domain_build_state *const state = &dcs->build_state;
- const int checkpointed_stream = dcs->restore_params.checkpointed_stream;
+ const int stream_type = dcs->restore_params.stream_type;
if (rc) {
domcreate_rebuild_done(egc, dcs, rc);
@@ -1033,7 +1033,7 @@ static void domcreate_bootloader_done(libxl__egc *egc,
dcs->srs.completion_callback = domcreate_stream_done;
if (restore_fd >= 0) {
- switch (checkpointed_stream) {
+ switch (stream_type) {
case LIBXL_CHECKPOINTED_STREAM_REMUS:
libxl__remus_restore_setup(egc, dcs);
/* fall through */
@@ -338,7 +338,7 @@ void libxl__domain_save(libxl__egc *egc, libxl__domain_save_state *dss)
unsigned int nr_vnodes = 0, nr_vmemranges = 0, nr_vcpus = 0;
libxl__domain_suspend_state *dsps = &dss->dsps;
- if (dss->checkpointed_stream != LIBXL_CHECKPOINTED_STREAM_NONE && !r_info) {
+ if (dss->stream_type != LIBXL_CHECKPOINTED_STREAM_NONE && !r_info) {
LOG(ERROR, "Migration stream is checkpointed, but there's no "
"checkpoint info!");
rc = ERROR_INVAL;
@@ -383,12 +383,12 @@ void libxl__domain_save(libxl__egc *egc, libxl__domain_save_state *dss)
goto out;
}
- if (dss->checkpointed_stream == LIBXL_CHECKPOINTED_STREAM_REMUS) {
+ if (dss->stream_type == LIBXL_CHECKPOINTED_STREAM_REMUS) {
if (libxl_defbool_val(r_info->compression))
dss->xcflags |= XCFLAGS_CHECKPOINT_COMPRESS;
}
- if (dss->checkpointed_stream == LIBXL_CHECKPOINTED_STREAM_NONE)
+ if (dss->stream_type == LIBXL_CHECKPOINTED_STREAM_NONE)
callbacks->suspend = libxl__domain_suspend_callback;
callbacks->switch_qemu_logdirty = libxl__domain_suspend_common_switch_qemu_logdirty;
@@ -3128,7 +3128,7 @@ struct libxl__domain_save_state {
libxl_domain_type type;
int live;
int debug;
- int checkpointed_stream;
+ libxl_checkpointed_stream stream_type;
const libxl_domain_remus_info *remus;
/* private */
int rc;
@@ -61,7 +61,7 @@ void libxl__xc_domain_restore(libxl__egc *egc, libxl__domain_create_state *dcs,
state->store_domid, state->console_port,
state->console_domid,
hvm, pae, superpages,
- cbflags, dcs->restore_params.checkpointed_stream,
+ cbflags, dcs->restore_params.stream_type,
};
shs->ao = ao;
@@ -85,7 +85,7 @@ void libxl__xc_domain_save(libxl__egc *egc, libxl__domain_save_state *dss,
const unsigned long argnums[] = {
dss->domid, 0, 0, dss->xcflags, dss->hvm,
- cbflags, dss->checkpointed_stream,
+ cbflags, dss->stream_type,
};
shs->ao = ao;
@@ -773,7 +773,7 @@ void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,
STATE_AO_GC(dcs->ao);
/* convenience aliases */
- const int checkpointed_stream = dcs->restore_params.checkpointed_stream;
+ const int stream_type = dcs->restore_params.stream_type;
if (rc)
goto err;
@@ -794,7 +794,7 @@ void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,
* If the stream is not still alive, we must not continue any work.
*/
if (libxl__stream_read_inuse(stream)) {
- switch (checkpointed_stream) {
+ switch (stream_type) {
case LIBXL_CHECKPOINTED_STREAM_REMUS:
/*
* Failover from primary. Domain state is currently at a
@@ -355,7 +355,7 @@ void libxl__xc_domain_save_done(libxl__egc *egc, void *dss_void,
* If the stream is not still alive, we must not continue any work.
*/
if (libxl__stream_write_inuse(stream)) {
- if (dss->checkpointed_stream != LIBXL_CHECKPOINTED_STREAM_NONE)
+ if (dss->stream_type != LIBXL_CHECKPOINTED_STREAM_NONE)
/*
* For remus, if libxl__xc_domain_save_done() completes,
* there was an error sending data to the secondary.
@@ -382,7 +382,7 @@ libxl_domain_create_info = Struct("domain_create_info",[
], dir=DIR_IN)
libxl_domain_restore_params = Struct("domain_restore_params", [
- ("checkpointed_stream", integer),
+ ("stream_type", integer),
("stream_version", uint32, {'init_val': '1'}),
])
@@ -154,7 +154,7 @@ struct domain_create {
int vnc;
int vncautopass;
int console_autoconnect;
- int checkpointed_stream;
+ int stream_type;
const char *config_file;
char *extra_config; /* extra config string */
const char *restore_file;
@@ -2890,7 +2890,7 @@ start:
libxl_domain_restore_params_init(¶ms);
- params.checkpointed_stream = dom_info->checkpointed_stream;
+ params.stream_type = dom_info->stream_type;
params.stream_version =
(hdr.mandatory_flags & XL_MANDATORY_FLAG_STREAMv2) ? 2 : 1;
@@ -4435,7 +4435,7 @@ static void migrate_domain(uint32_t domid, const char *rune, int debug,
static void migrate_receive(int debug, int daemonize, int monitor,
int send_fd, int recv_fd,
- libxl_checkpointed_stream checkpointed)
+ libxl_checkpointed_stream stream_type)
{
uint32_t domid;
int rc, rc2;
@@ -4460,7 +4460,7 @@ static void migrate_receive(int debug, int daemonize, int monitor,
dom_info.paused = 1;
dom_info.migrate_fd = recv_fd;
dom_info.migration_domname_r = &migration_domname;
- dom_info.checkpointed_stream = checkpointed;
+ dom_info.stream_type = stream_type;
rc = create_domain(&dom_info);
if (rc < 0) {
@@ -4471,7 +4471,7 @@ static void migrate_receive(int debug, int daemonize, int monitor,
domid = rc;
- switch (checkpointed) {
+ switch (stream_type) {
case LIBXL_CHECKPOINTED_STREAM_REMUS:
/* If we are here, it means that the sender (primary) has crashed.
* TODO: Split-Brain Check.
@@ -4646,7 +4646,7 @@ int main_restore(int argc, char **argv)
int main_migrate_receive(int argc, char **argv)
{
int debug = 0, daemonize = 1, monitor = 1;
- libxl_checkpointed_stream checkpointed = LIBXL_CHECKPOINTED_STREAM_NONE;
+ libxl_checkpointed_stream stream_type = LIBXL_CHECKPOINTED_STREAM_NONE;
int opt;
SWITCH_FOREACH_OPT(opt, "Fedr", NULL, "migrate-receive", 0) {
@@ -4661,7 +4661,7 @@ int main_migrate_receive(int argc, char **argv)
debug = 1;
break;
case 'r':
- checkpointed = LIBXL_CHECKPOINTED_STREAM_REMUS;
+ stream_type = LIBXL_CHECKPOINTED_STREAM_REMUS;
break;
}
@@ -4671,7 +4671,7 @@ int main_migrate_receive(int argc, char **argv)
}
migrate_receive(debug, daemonize, monitor,
STDOUT_FILENO, STDIN_FILENO,
- checkpointed);
+ stream_type);
return 0;
}
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> --- tools/libxl/libxl.c | 4 ++-- tools/libxl/libxl.h | 8 ++++++++ tools/libxl/libxl_create.c | 4 ++-- tools/libxl/libxl_dom_save.c | 6 +++--- tools/libxl/libxl_internal.h | 2 +- tools/libxl/libxl_save_callout.c | 4 ++-- tools/libxl/libxl_stream_read.c | 4 ++-- tools/libxl/libxl_stream_write.c | 2 +- tools/libxl/libxl_types.idl | 2 +- tools/libxl/xl_cmdimpl.c | 16 ++++++++-------- 10 files changed, 30 insertions(+), 22 deletions(-)