From: Diego Ongaro <diego.ongaro@citrix.com>
To: xen-devel@lists.xensource.com
Subject: [PATCH RFC 4/5] Grant table for console, xenstore pages
Date: Fri, 11 Jul 2008 20:17:19 +0100 [thread overview]
Message-ID: <4877B1BF.1030507@citrix.com> (raw)
In-Reply-To: <4877B09E.5000909@citrix.com>
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. In this patch, libxc is
modified to use this mechanism for the grant table entries.
Signed-off-by: Diego Ongaro <diego.ongaro@citrix.com>
---
diff -r 581c5525e1ac tools/libxc/xc_dom_boot.c
--- a/tools/libxc/xc_dom_boot.c Thu Jul 10 19:50:48 2008 +0100
+++ b/tools/libxc/xc_dom_boot.c Fri Jul 11 15:50:02 2008 +0100
@@ -297,14 +297,40 @@
return mfn;
}
-/* TODO: don't hard-code these */
-#define CONSOLE_DOMID 0
-#define XENSTORE_DOMID 0
+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, "%d", &domid) != 1 )
+ goto out;
+
+out:
+ if ( f != NULL )
+ fclose(f);
+
+ return domid;
+}
int xc_dom_gnttab_init(struct xc_dom_image *dom)
{
+ uint32_t console_domid;
+ uint32_t xenstore_domid;
unsigned long grant_table_mfn;
grant_entry_t *grant_table;
+
+ console_domid = read_domid("console");
+ xenstore_domid = read_domid("xenstore");
grant_table_mfn = xc_dom_gnttab_mfn(dom);
if ( grant_table_mfn == -1 )
@@ -324,17 +350,17 @@
return -1;
}
- if ( dom->guest_domid != CONSOLE_DOMID )
+ if ( dom->guest_domid != console_domid )
{
grant_table[GNTTAB_RESERVED_CONSOLE].flags = GTF_permit_access;
- grant_table[GNTTAB_RESERVED_CONSOLE].domid = CONSOLE_DOMID;
+ grant_table[GNTTAB_RESERVED_CONSOLE].domid = console_domid;
grant_table[GNTTAB_RESERVED_CONSOLE].frame = xc_dom_p2m_host(dom, dom->console_pfn);
}
- if ( dom->guest_domid != XENSTORE_DOMID )
+ if ( dom->guest_domid != xenstore_domid )
{
grant_table[GNTTAB_RESERVED_XENSTORE].flags = GTF_permit_access;
- grant_table[GNTTAB_RESERVED_XENSTORE].domid = XENSTORE_DOMID;
+ grant_table[GNTTAB_RESERVED_XENSTORE].domid = xenstore_domid;
grant_table[GNTTAB_RESERVED_XENSTORE].frame = xc_dom_p2m_host(dom, dom->xenstore_pfn);
}
next prev parent reply other threads:[~2008-07-11 19:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-11 19:12 [PATCH RFC 0/5] Grant table for console, xenstore pages Diego Ongaro
2008-07-11 19:14 ` [PATCH RFC 1/5] " Diego Ongaro
2008-07-11 19:15 ` [PATCH RFC 2/5] " Diego Ongaro
2008-07-11 19:16 ` [PATCH RFC 3/5] " Diego Ongaro
2008-07-11 19:17 ` Diego Ongaro [this message]
2008-07-11 19:17 ` [PATCH RFC 5/5] " Diego Ongaro
2008-07-12 18:34 ` [PATCH RFC 0/5] " Derek Murray
2008-07-12 18:42 ` Samuel Thibault
2008-07-14 14:37 ` Diego Ongaro
2008-07-14 14:55 ` Derek Murray
2008-07-14 15:42 ` Diego Ongaro
2008-07-14 16:50 ` [PATCH RFC 0/5] Grant table for console, xenstorepages Cihula, Joseph
2008-07-14 17:04 ` Diego Ongaro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4877B1BF.1030507@citrix.com \
--to=diego.ongaro@citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.