On 08.10.2020 20:57, Paul Durrant wrote: > +static int dry_run_end(void *priv, size_t len) > +{ > + struct domctl_context *c = priv; > + > + ASSERT(IS_ALIGNED(c->len, DOMAIN_CONTEXT_RECORD_ALIGN)); > + > + return 0; > +} > + > +static struct domain_save_ctxt_ops dry_run_ops = {
const? (same for save_ops and load_ops then) > --- a/xen/include/public/domctl.h > +++ b/xen/include/public/domctl.h > @@ -1132,6 +1132,41 @@ struct xen_domctl_vuart_op { > */ > }; > > +/* > + * XEN_DOMCTL_get_domain_context > + * ----------------------------- > + * > + * buffer (IN): The buffer into which the context data should be > + * copied, or NULL to query the buffer size that should > + * be allocated. > + * size (IN/OUT): If 'buffer' is NULL then the value passed in must be > + * zero, and the value passed out will be the size of the > + * buffer to allocate. > + * If 'buffer' is non-NULL then the value passed in must > + * be the size of the buffer into which data may be copied. > + * The value passed out will be the size of data written. > + */ > +struct xen_domctl_get_domain_context { > + uint64_t size; uint64_aligned_t (also again below)? With these adjusted Reviewed-by: Jan Beulich <jbeul...@suse.com> Jan