From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH]: xl: move domain struct init functions to libxl Date: Tue, 11 Jan 2011 14:39:10 +0000 Message-ID: References: <1294743604.12018.122.camel@qabil.uk.xensource.com> <1294755882.12018.133.camel@qabil.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Return-path: In-Reply-To: <1294755882.12018.133.camel@qabil.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Gianni Tedesco Cc: Xen Devel , Ian Jackson , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org On Tue, 11 Jan 2011, Gianni Tedesco wrote: > On Tue, 2011-01-11 at 12:53 +0000, Stefano Stabellini wrote: > > On Tue, 11 Jan 2011, Gianni Tedesco wrote: > > > This allows libxl users to get some sane default values for this complex > > > set of structures. This is purely code movement and there are no > > > functional changes. > > > > > > Signed-off-by: Gianni Tedesco > > > > > > > > > diff -r feb198f3c97f tools/libxl/libxl.h > > > --- a/tools/libxl/libxl.h Mon Jan 10 16:03:39 2011 +0000 > > > +++ b/tools/libxl/libxl.h Tue Jan 11 10:53:36 2011 +0000 > > > @@ -280,6 +280,9 @@ int libxl_ctx_set_log(libxl_ctx *ctx, xe > > > int libxl_ctx_postfork(libxl_ctx *ctx); > > > > > > /* domain related functions */ > > > +void libxl_init_create_info(libxl_domain_create_info *c_info); > > > +void libxl_init_build_info(libxl_domain_build_info *b_info, libxl_domain_create_info *c_info); > > > +void libxl_init_dm_info(libxl_device_model_info *dm_info, libxl_domain_create_info *c_info, libxl_domain_build_info *b_info); > > > typedef int (*libxl_console_ready)(libxl_ctx *ctx, uint32_t domid, void *priv); > > > int libxl_domain_create_new(libxl_ctx *ctx, libxl_domain_config *d_config, libxl_console_ready cb, void *priv, uint32_t *domid); > > > int libxl_domain_create_restore(libxl_ctx *ctx, libxl_domain_config *d_config, libxl_console_ready cb, void *priv, uint32_t *domid, int restore_fd); > > > diff -r feb198f3c97f tools/libxl/libxl_create.c > > > > > > What about init_nic_info, init_net2_info, init_vfb_info, init_vkb_info > > and init_console_info? > > Wouldn't make sense to have a libxl_init_domain_config > > Yeah good point, I can re-spin to include the various device info's. > > Not sure about an init_domain_config, I don't see how it would work, > currently we have: > > libxl_domain_config x; > init_create_info(&x.c_info); > // do stuff to c_info > init_build_info(&x.b_info, &x.c_info); > // do stuff to b_info > init_dm_info(&x.dm_info, &x.c_info, &x.b_info); > // do stuff to dm_info > for each device { init device; do stuff to device; } > > You could init them all in one functions but it breaks IMO the main > purpose of these functions which is that when you 'do stuff' to b_info > then init_dm_info() depends on that to set the sane defaults (eg. for > vidmem). > No I mean instead of having: libxl_init_nic_info, libxl_init_net2_info, etc. we would have a single libxl_init_domain_config that does it all. However we cannot actually do that because we don't know exactly the number of devices of each kind we are going to have. So forget about libxl_init_domain_config.