[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-4.6 v3 6/6] tools/libxl: Drop all legacy "toolstack" record infrastructure
No functional change. It is not used any more. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> --- tools/libxl/libxl_dom.c | 223 ---------------------------------- tools/libxl/libxl_internal.h | 4 - tools/libxl/libxl_sr_stream_format.h | 1 - tools/python/xen/migration/libxl.py | 1 - 4 files changed, 229 deletions(-) diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index d54d892..e1f11a3 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -1031,126 +1031,6 @@ int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid, return libxl__xs_write(gc, XBT_NULL, path, "%s", cmd); } -struct libxl__physmap_info { - uint64_t phys_offset; - uint64_t start_addr; - uint64_t size; - uint32_t namelen; - char name[]; -}; - -/* Bump version every time when toolstack saved data changes. - * Different types of data are arranged in the specified order. - * - * Version 1: - * uint32_t version - * QEMU physmap data: - * uint32_t count - * libxl__physmap_info * count - */ -#define TOOLSTACK_SAVE_VERSION 1 - -static inline char *restore_helper(libxl__gc *gc, uint32_t dm_domid, - uint32_t domid, - uint64_t phys_offset, char *node) -{ - return libxl__device_model_xs_path(gc, dm_domid, domid, - "/physmap/%"PRIx64"/%s", - phys_offset, node); -} - -static int libxl__toolstack_restore_qemu(libxl__gc *gc, uint32_t domid, - const uint8_t *ptr, uint32_t size) -{ - int ret, i; - uint32_t count; - char *xs_path; - uint32_t dm_domid; - struct libxl__physmap_info *pi; - - if (size < sizeof(count)) { - LOG(ERROR, "wrong size"); - ret = -1; - goto out; - } - - memcpy(&count, ptr, sizeof(count)); - ptr += sizeof(count); - - if (size < sizeof(count) + count*(sizeof(struct libxl__physmap_info))) { - LOG(ERROR, "wrong size"); - ret = -1; - goto out; - } - - dm_domid = libxl_get_stubdom_id(CTX, domid); - for (i = 0; i < count; i++) { - pi = (struct libxl__physmap_info*) ptr; - ptr += sizeof(struct libxl__physmap_info) + pi->namelen; - - xs_path = restore_helper(gc, dm_domid, domid, - pi->phys_offset, "start_addr"); - ret = libxl__xs_write(gc, 0, xs_path, "%"PRIx64, pi->start_addr); - if (ret) goto out; - - xs_path = restore_helper(gc, dm_domid, domid, pi->phys_offset, "size"); - ret = libxl__xs_write(gc, 0, xs_path, "%"PRIx64, pi->size); - if (ret) goto out; - - if (pi->namelen > 0) { - xs_path = restore_helper(gc, dm_domid, domid, - pi->phys_offset, "name"); - ret = libxl__xs_write(gc, 0, xs_path, "%s", pi->name); - if (ret) goto out; - } - } - - ret = 0; -out: - return ret; - -} - -static int libxl__toolstack_restore_v1(libxl__gc *gc, uint32_t domid, - const uint8_t *ptr, uint32_t size) -{ - return libxl__toolstack_restore_qemu(gc, domid, ptr, size); -} - -int libxl__toolstack_restore(uint32_t domid, const uint8_t *ptr, - uint32_t size, void *user) -{ - libxl__save_helper_state *shs = user; - libxl__domain_create_state *dcs = shs->caller_state; - STATE_AO_GC(dcs->ao); - int ret; - uint32_t version = 0, bufsize; - - LOG(DEBUG,"domain=%"PRIu32" toolstack data size=%"PRIu32, domid, size); - - if (size < sizeof(version)) { - LOG(ERROR, "wrong size"); - ret = -1; - goto out; - } - - memcpy(&version, ptr, sizeof(version)); - ptr += sizeof(version); - bufsize = size - sizeof(version); - - switch (version) { - case 1: - ret = libxl__toolstack_restore_v1(gc, domid, ptr, bufsize); - break; - default: - LOG(ERROR, "wrong version"); - ret = -1; - } - -out: - return ret; -} - /* * Inspect the buffer between start and end, and return a pointer to the * character following the NUL terminator of start, or NULL if start is not @@ -1454,109 +1334,6 @@ static void switch_logdirty_done(libxl__egc *egc, /*----- callbacks, called by xc_domain_save -----*/ -static inline char *physmap_path(libxl__gc *gc, uint32_t dm_domid, - uint32_t domid, - char *phys_offset, char *node) -{ - return libxl__device_model_xs_path(gc, dm_domid, domid, - "/physmap/%s/%s", - phys_offset, node); -} - -int libxl__toolstack_save(uint32_t domid, uint8_t **buf, - uint32_t *len, void *dss_void) -{ - libxl__domain_suspend_state *dss = dss_void; - int ret; - STATE_AO_GC(dss->ao); - int i = 0; - uint32_t version = TOOLSTACK_SAVE_VERSION; - uint8_t *ptr = NULL; - - ret = -1; - - /* Version number */ - *len = sizeof(version); - *buf = calloc(1, *len); - if (*buf == NULL) goto out; - ptr = *buf; - memcpy(ptr, &version, sizeof(version)); - - /* QEMU physmap data */ - { - char **entries = NULL, *xs_path; - struct libxl__physmap_info *pi; - uint32_t dm_domid; - char *start_addr = NULL, *size = NULL, *phys_offset = NULL; - char *name = NULL; - unsigned int num = 0; - uint32_t count = 0, namelen = 0; - - dm_domid = libxl_get_stubdom_id(CTX, domid); - - xs_path = libxl__device_model_xs_path(gc, dm_domid, domid, - "/physmap"); - entries = libxl__xs_directory(gc, 0, xs_path, &num); - count = num; - - *len += sizeof(count); - *buf = realloc(*buf, *len); - if (*buf == NULL) goto out; - ptr = *buf + sizeof(version); - memcpy(ptr, &count, sizeof(count)); - ptr += sizeof(count); - - for (i = 0; i < count; i++) { - unsigned long offset; - phys_offset = entries[i]; - if (phys_offset == NULL) { - LOG(ERROR, "phys_offset %d is NULL", i); - goto out; - } - - xs_path = physmap_path(gc, dm_domid, domid, phys_offset, - "start_addr"); - start_addr = libxl__xs_read(gc, 0, xs_path); - if (start_addr == NULL) { - LOG(ERROR, "%s is NULL", xs_path); - goto out; - } - - xs_path = physmap_path(gc, dm_domid, domid, phys_offset, "size"); - size = libxl__xs_read(gc, 0, xs_path); - if (size == NULL) { - LOG(ERROR, "%s is NULL", xs_path); - goto out; - } - - xs_path = physmap_path(gc, dm_domid, domid, phys_offset, "name"); - name = libxl__xs_read(gc, 0, xs_path); - if (name == NULL) - namelen = 0; - else - namelen = strlen(name) + 1; - *len += namelen + sizeof(struct libxl__physmap_info); - offset = ptr - (*buf); - *buf = realloc(*buf, *len); - if (*buf == NULL) goto out; - ptr = (*buf) + offset; - pi = (struct libxl__physmap_info *) ptr; - pi->phys_offset = strtoll(phys_offset, NULL, 16); - pi->start_addr = strtoll(start_addr, NULL, 16); - pi->size = strtoll(size, NULL, 16); - pi->namelen = namelen; - memcpy(pi->name, name, namelen); - ptr += sizeof(struct libxl__physmap_info) + namelen; - } - } - - LOG(DEBUG,"domain=%"PRIu32" toolstack data size=%"PRIu32, domid, *len); - - ret = 0; -out: - return ret; -} - /* * Expand the buffer 'buf' of length 'len', to append 'str' including its NUL * terminator. diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index fdef45e..ad2a090 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -1091,8 +1091,6 @@ _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid, const char *old_name, const char *new_name, xs_transaction_t trans); -_hidden int libxl__toolstack_restore(uint32_t domid, const uint8_t *buf, - uint32_t size, void *data); _hidden int libxl__domain_resume_device_model(libxl__gc *gc, uint32_t domid); _hidden const char *libxl__userdata_path(libxl__gc *gc, uint32_t domid, @@ -3438,8 +3436,6 @@ void libxl__xc_domain_saverestore_async_callback_done(libxl__egc *egc, _hidden void libxl__domain_suspend_common_switch_qemu_logdirty (int domid, unsigned int enable, void *data); -_hidden int libxl__toolstack_save(uint32_t domid, uint8_t **buf, - uint32_t *len, void *data); _hidden int libxl__save_emulator_xenstore_data(libxl__domain_suspend_state *dss, char **buf, uint32_t *len); _hidden int libxl__restore_emulator_xenstore_data diff --git a/tools/libxl/libxl_sr_stream_format.h b/tools/libxl/libxl_sr_stream_format.h index 4c23367..54da360 100644 --- a/tools/libxl/libxl_sr_stream_format.h +++ b/tools/libxl/libxl_sr_stream_format.h @@ -33,7 +33,6 @@ #define REC_TYPE_END 0x00000000U #define REC_TYPE_LIBXC_CONTEXT 0x00000001U -#define REC_TYPE_XENSTORE_DATA 0x00000002U /* TOOLSTACK COMPAT */ #define REC_TYPE_EMULATOR_XENSTORE_DATA 0x00000002U #define REC_TYPE_EMULATOR_CONTEXT 0x00000003U #define REC_TYPE_CHECKPOINT_END 0x00000004U diff --git a/tools/python/xen/migration/libxl.py b/tools/python/xen/migration/libxl.py index 1a9ca87..fc0acf6 100644 --- a/tools/python/xen/migration/libxl.py +++ b/tools/python/xen/migration/libxl.py @@ -34,7 +34,6 @@ RH_FORMAT = "II" REC_TYPE_end = 0x00000000 REC_TYPE_libxc_context = 0x00000001 -REC_TYPE_xenstore_data = 0x00000002 # TOOLSTACK COMPAT REC_TYPE_emulator_xenstore_data = 0x00000002 REC_TYPE_emulator_context = 0x00000003 REC_TYPE_checkpoint_end = 0x00000004 -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |