[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 6/24] [xen-unstable.hg] don't hard code xenstore/console domid when seeding grant table of new domU
This patch implements a way to determine in which domains the console and xenstore daemons reside. If each of the files /var/run/{console,xenstore}.did contains an integer, this integer is interpreted as the domain id for that daemon. The default or fallback is domid=0, of course. Here, libxc is modified to use this mechanism for the grant table entries. A previous version of this patch was sent to xen-devel. See http://lists.xensource.com/archives/html/xen-devel/2008-07/msg00610.html Signed-off-by: Diego Ongaro <diego.ongaro@xxxxxxxxxx> Signed-off-by: Alex Zeffertt <alex.zeffertt@xxxxxxxxxxxxx> --- diff -r 5ea8720ce31f tools/libxc/xc_dom_boot.c --- a/tools/libxc/xc_dom_boot.c Fri Aug 01 16:50:30 2008 +0100 +++ b/tools/libxc/xc_dom_boot.c Fri Aug 01 16:50:31 2008 +0100 @@ -256,6 +256,31 @@ return rc; } +static uint32_t read_domid(const char *service) +{ + char buf[64]; + int n; + FILE *f = NULL; + uint32_t domid = 0; + + n = snprintf(buf, sizeof(buf), "/var/run/%s.did", service); + if ( n < 0 || n >= sizeof(buf) ) + goto out; + + f = fopen(buf, "r"); + if ( f == NULL ) + goto out; + + if ( fscanf(f, "%" PRIu32, &domid) != 1 ) + goto out; + +out: + if ( f != NULL ) + fclose(f); + + return domid; +} + static unsigned long xc_dom_gnttab_setup(int xc_handle, uint32_t domid) { DECLARE_HYPERCALL; @@ -296,9 +321,8 @@ unsigned long gnttab_gmfn; grant_entry_t *gnttab; - /* TODO: don't hard-code these */ - console_domid = 0; - xenstore_domid = 0; + console_domid = read_domid("console"); + xenstore_domid = read_domid("xenstore"); gnttab_gmfn = xc_dom_gnttab_setup(xc_handle, domid); if ( gnttab_gmfn == -1 ) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |