[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 3/9] tools/libxc: Stream specification and some common code
On Wed, 2014-04-30 at 19:36 +0100, Andrew Cooper wrote: > diff --git a/tools/libxc/saverestore/stream_format.h > b/tools/libxc/saverestore/stream_format.h > new file mode 100644 > index 0000000..efcca60 > --- /dev/null > +++ b/tools/libxc/saverestore/stream_format.h Reference to the spec (which doesn't appear to be in this series anywhere BTW) > @@ -0,0 +1,158 @@ > +#ifndef __STREAM_FORMAT__H > +#define __STREAM_FORMAT__H > + > +#include <inttypes.h> > + > +/* TODO - find somewhere more appropriate. rec_tsc_info needs it for 64bit */ You seem to use it on all of them though. Can we not use explicit padding, as you seem to do for many of the other structs? > +#ifndef __packed > +#define __packed __attribute__((packed)) > +#endif > + > +/* > + * Image Header > + */ > +struct __packed ihdr So long as this remains confined to libxc/saverestore/*.[ch] we can avoid namespacing/prefixing. I suppose that is a safe assumption. > +{ > + uint64_t marker; > + uint32_t id; > + uint32_t version; > + uint16_t options; > + uint16_t _res1; > + uint32_t _res2; > +}; > + > +#define IHDR_MARKER 0xffffffffffffffffULL > +#define IHDR_ID 0x58454E46U > +#define IHDR_VERSION 1 > + > +#define _IHDR_OPT_ENDIAN 0 > +#define IHDR_OPT_LITTLE_ENDIAN (0 << _IHDR_OPT_ENDIAN) > +#define IHDR_OPT_BIG_ENDIAN (1 << _IHDR_OPT_ENDIAN) > + > +/* > + * Domain Header > + */ > +struct __packed dhdr > +{ > + uint32_t type; > + uint16_t page_shift; > + uint16_t _res1; > + uint32_t xen_major; > + uint32_t xen_minor; > +}; > + > +#define DHDR_TYPE_x86_pv 0x00000001U > +#define DHDR_TYPE_x86_hvm 0x00000002U > +#define DHDR_TYPE_x86_pvh 0x00000003U > +#define DHDR_TYPE_arm 0x00000004U That capitalisation here (and elsewhere) seems rather unconventional. BTW IHDR_OPT is also inconsistent with the pattern you've established. TBH I'd prefer more conventional upper case #defines. I suppose you want to avoid enums for the ABI-confusing properties they have. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |