From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH 15/27] tools/libxl: Migration v2 stream format Date: Tue, 16 Jun 2015 15:04:01 +0100 Message-ID: <1434463441.13744.177.camel@citrix.com> References: <1434375880-30914-1-git-send-email-andrew.cooper3@citrix.com> <1434375880-30914-16-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1434375880-30914-16-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Andrew Cooper Cc: Ross Lagerwall , Wei Liu , Yang Hongyang , Ian Jackson , Xen-devel List-Id: xen-devel@lists.xenproject.org On Mon, 2015-06-15 at 14:44 +0100, Andrew Cooper wrote: > From: Ross Lagerwall > > C structures describing the Libxl migration v2 stream format Do we think these should be internal or are they part of the library API? I suppose it's a bit of a grey area, obviously the file format is "ABI", but its not one a user should ever interact with directly. What I'm getting at is may most of this should be in the libxl__ rather than libxl_ namespace (also some of it being un-namespaced would further suggest these are strictly speaking install, as would the fact it isn't installed...) > Signed-off-by: Ross Lagerwall > Signed-off-by: Andrew Cooper > CC: Ian Campbell > CC: Ian Jackson > CC: Wei Liu > --- > tools/libxl/libxl_sr_stream_format.h | 57 ++++++++++++++++++++++++++++++++++ > 1 file changed, 57 insertions(+) > create mode 100644 tools/libxl/libxl_sr_stream_format.h > > diff --git a/tools/libxl/libxl_sr_stream_format.h b/tools/libxl/libxl_sr_stream_format.h > new file mode 100644 > index 0000000..487f9e2 > --- /dev/null > +++ b/tools/libxl/libxl_sr_stream_format.h > @@ -0,0 +1,57 @@ > +#ifndef LIBXL_SR_STREAM_FORMAT_H > +#define LIBXL_SR_STREAM_FORMAT_H > + > +/* > + * C structures for the Migration v2 stream format. > + * See docs/specs/libxl-migration-stream.pandoc > + */ > + > +#include > + > +typedef struct libxl_sr_hdr > +{ > + uint64_t ident; > + uint32_t version; > + uint32_t options; > +} libxl_sr_hdr; > + > +#define RESTORE_STREAM_IDENT 0x4c6962786c466d74UL > +#define RESTORE_STREAM_VERSION 0x00000002U > + > +#define RESTORE_OPT_BIG_ENDIAN (1 << 0) > +#define RESTORE_OPT_LEGACY (1 << 1) > + > + > +typedef struct libxl_sr_rec_hdr > +{ > + uint32_t type; > + uint32_t length; > +} libxl_sr_rec_hdr; > + > +/* All records must be aligned up to an 8 octet boundary */ > +#define REC_ALIGN_ORDER 3U > + > +#define REC_TYPE_END 0x00000000U > +#define REC_TYPE_LIBXC_CONTEXT 0x00000001U > +#define REC_TYPE_XENSTORE_DATA 0x00000002U > +#define REC_TYPE_EMULATOR_CONTEXT 0x00000003U > + > +typedef struct libxl_sr_emulator_hdr > +{ > + uint32_t id; > + uint32_t index; > +} libxl_sr_emulator_hdr; > + > +#define EMULATOR_UNKNOWN 0x00000000U > +#define EMULATOR_QEMU_TRADITIONAL 0x00000001U > +#define EMULATOR_QEMU_UPSTREAM 0x00000002U > + > +#endif /* LIBXL_SR_STREAM_FORMAT_H */ > + > +/* > + * Local variables: > + * mode: C > + * c-basic-offset: 4 > + * indent-tabs-mode: nil > + * End: > + */