Update the libxc spec to indicate more sternly that TOOLSTACK records
should no longer be used.
Also, trim further toolstack infrastructure which should have gone in
c/s
39bf4e9 "tools/libxl: Drop all knowledge of toolstack callbacks"
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Ian Campbell <Ian.Campbell@citrix.com>
CC: Ian Jackson <Ian.Jackson@eu.citrix.com>
CC: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
0x0000000A: HVM_PARAMS
- 0x0000000B: TOOLSTACK
+ 0x0000000B: TOOLSTACK (deprecated)
0x0000000C: X86_PV_VCPU_MSRS
\clearpage
-TOOLSTACK
----------
+TOOLSTACK (deprecated)
+----------------------
+
+> *This record was only present for transitionary purposes during
+> development. It is should not be used.*
An opaque blob provided by and supplied to the higher layers of the
toolstack (e.g., libxl) during save and restore.
-> This is only temporary -- the intention is the toolstack takes care
-> of this itself. This record is only present for early development
-> purposes and will be removed before submissions, along with changes
-> to libxl which cause libxl to handle this data itself.
-
0 1 2 3 4 5 6 7 octet
+------------------------+------------------------+
| data |
/* Enable qemu-dm logging dirty pages to xen */
int (*switch_qemu_logdirty)(int domid, unsigned enable, void *data); /* HVM only */
- /* Save toolstack specific data
- * @param buf the buffer with the data to be saved
- * @param len the length of the buffer
- * The callee allocates the buffer, the caller frees it (buffer must
- * be free'able).
- */
- int (*toolstack_save)(uint32_t domid, uint8_t **buf, uint32_t *len, void *data);
-
/* to be provided as the last argument to each callback function */
void* data;
};
/* callbacks provided by xc_domain_restore */
struct restore_callbacks {
- /* callback to restore toolstack specific data */
- int (*toolstack_restore)(uint32_t domid, const uint8_t *buf,
- uint32_t size, void* data);
-
/* A checkpoint record has been found in the stream.
* returns: */
#define XGR_CHECKPOINT_ERROR 0 /* Terminate processing */
libxl__ev_fd readable;
libxl__ev_child child;
const char *stdin_what, *stdout_what;
- FILE *toolstack_data_file;
libxl__egc *egc; /* valid only for duration of each event callback;
* is here in this struct for the benefit of the
shs->completion_callback = libxl__xc_domain_restore_done;
shs->caller_state = dcs;
shs->need_results = 1;
- shs->toolstack_data_file = 0;
run_helper(egc, shs, "--restore-domain", restore_fd, 0, 0,
argnums, ARRAY_SIZE(argnums));
libxl__carefd_close(shs->pipes[0]); shs->pipes[0] = 0;
libxl__carefd_close(shs->pipes[1]); shs->pipes[1] = 0;
assert(!libxl__save_helper_inuse(shs));
- if (shs->toolstack_data_file) fclose(shs->toolstack_data_file);
shs->egc = egc;
shs->completion_callback(egc, shs->caller_state,