[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] PATCH (and RFC): new dom0 hypercall: DOM0_DOMAIN_SETUP



Hi,

for IA64, I'd like to create a new dom0 hypercall: DOM0_DOMAIN_SETUP.

The purpose of this hypercall is to do some setup in a new domain: it builds
the firmware (~ BIOS), and creates the mm structures.

This can't be done a domain creation because memory (and max_mem) is required.
This can't be completly done in user space and since the code has to be executed
for dom0 it is already present in the hypervisor.

Previously this was done during vcpusetcontext.  But this was almost a kuldge
and became difficult to manage when I worked on save & restore feature.

I don't know wether or not other architectures might be interested in this 
hypercall.
In the later case, we may define an arch-dependant content.

Tristan.


# HG changeset patch
# User gingold@virtu10
# Node ID 6838c14692df784c96f8fc28416e1c33b0dca74a
# Parent  67b9f433900069efbbc9b198158ef0639b41e4b6
Add DOM0_DOMAIN_SETUP hypercall.

Signed-off-by: Tristan Gingold <tristan.gingold@xxxxxxxx>

diff -r 67b9f4339000 -r 6838c14692df xen/include/public/dom0_ops.h
--- a/xen/include/public/dom0_ops.h     Thu Jun 15 08:47:00 2006 +0200
+++ b/xen/include/public/dom0_ops.h     Thu Jun 15 08:54:15 2006 +0200
@@ -513,6 +513,16 @@ struct dom0_hypercall_init {
 };
 typedef struct dom0_hypercall_init dom0_hypercall_init_t;
 DEFINE_XEN_GUEST_HANDLE(dom0_hypercall_init_t);
+
+#define DOM0_DOMAIN_SETUP   49
+#define DOM0_DOMAIN_SETUP_VMX  (1 << 0)
+typedef struct dom0_domain_setup {
+    domid_t  domain;          /* domain to be affected */
+    unsigned long flags;
+    unsigned long bp;         /* mpaddr of boot param area */
+    unsigned long maxmem;        /* Highest memory address for MDT.  */
+} dom0_domain_setup_t;
+DEFINE_XEN_GUEST_HANDLE(dom0_domain_setup_t);
 
 struct dom0_op {
     uint32_t cmd;
@@ -555,6 +565,7 @@ struct dom0_op {
         struct dom0_irq_permission    irq_permission;
         struct dom0_iomem_permission  iomem_permission;
         struct dom0_hypercall_init    hypercall_init;
+        struct dom0_domain_setup      domain_setup;
         uint8_t                       pad[128];
     } u;
 };

Attachment: xen-ds.diffs
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.