#include <xen/lu.h>
#include <xen/kimage.h>
#include <xen/sched.h>
+#include <xen/version.h>
+#include <public/migration_stream.h>
int lu_save_global(struct lu_stream *stream)
{
- return 0;
+ struct mr_lu_version ver_rec;
+
+ ver_rec.xen_major = xen_major_version();
+ ver_rec.xen_minor = xen_minor_version();
+ return lu_stream_append_record(stream, REC_TYPE_LU_VERSION,
+ &ver_rec, sizeof(ver_rec));
}
ret = lu_save_domain(&stream, d);
}
+ if (!ret)
+ ret = lu_stream_append_record(&stream, REC_TYPE_END,
+ NULL, 0);
+
if (!ret)
ret = kimage_add_live_update_data(image,
_mfn(virt_to_mfn(stream.pagelist)),
#define REC_TYPE_CHECKPOINT 0x0000000eU
#define REC_TYPE_CHECKPOINT_DIRTY_PFN_LIST 0x0000000fU
+#define REC_TYPE_LU_VERSION 0x40000000U
+
#define REC_TYPE_OPTIONAL 0x80000000U
#define REC_TYPE_LIVE_UPDATE 0x40000000U
struct mr_hvm_params_entry param[0];
};
+/* LU_VERSION */
+struct mr_lu_version
+{
+ uint32_t xen_major;
+ uint32_t xen_minor;
+};
+
#endif /* __XEN_MIGRATION_STREAM_H__ */
/*