typedef struct libxl__conversion_helper_state libxl__conversion_helper_state;
struct libxl__conversion_helper_state {
- /* public */
+ /* Public - Must be filled by caller unless noted. */
libxl__ao *ao;
- int legacy_fd;
+ int legacy_fd; /* fd to read the legacy stream from. */
bool hvm; /* pv or hvm domain? */
libxl__carefd *v2_carefd; /* Filled by successful call to
* libxl__convert_legacy_stream(). Caller
void libxl__stream_read_init(libxl__stream_read_state *stream)
{
+ assert(stream->ao);
+
+ stream->shs.ao = stream->ao;
+ libxl__save_helper_init(&stream->shs);
+
+ stream->chs.ao = stream->ao;
+ libxl__conversion_helper_init(&stream->chs);
+
stream->rc = 0;
stream->running = false;
stream->in_checkpoint = false;
stream->sync_teardown = false;
- libxl__save_helper_init(&stream->shs);
- libxl__conversion_helper_init(&stream->chs);
FILLZERO(stream->dc);
FILLZERO(stream->hdr);
LIBXL_STAILQ_INIT(&stream->record_queue);
/* Convert the legacy stream. */
libxl__conversion_helper_state *chs = &stream->chs;
- chs->ao = stream->ao;
chs->legacy_fd = stream->fd;
chs->hvm =
(stream->dcs->guest_config->b_info.type == LIBXL_DOMAIN_TYPE_HVM);
void libxl__stream_write_init(libxl__stream_write_state *stream)
{
+ assert(stream->ao);
+
+ stream->shs.ao = stream->ao;
+ libxl__save_helper_init(&stream->shs);
+
stream->rc = 0;
stream->running = false;
stream->in_checkpoint = false;