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

[Xen-devel] [PATCH 16/24] [xen-unstable.hg] xen hypercall to allow xenstore stubdom to be registered to handle VIRQ_DOM_EXC





New hypercall for dom0 to delegate a VIRQ handler.

I sent these to Keir in an earlier state. See the explanation with
xen_virq_handler_api.

Signed-off-by: Diego Ongaro <diego.ongaro@xxxxxxxxxx>
Signed-off-by: Alex Zeffertt <alex.zeffertt@xxxxxxxxxxxxx>
---

diff -r 890d475c4591 xen/common/domctl.c
--- a/xen/common/domctl.c       Wed Mar 18 15:41:08 2009 +0000
+++ b/xen/common/domctl.c       Wed Mar 18 15:50:30 2009 +0000
@@ -861,6 +861,20 @@
     }
     break;
 
+    case XEN_DOMCTL_set_virq_handler:
+    {
+        struct domain *d;
+
+        ret = -ESRCH;
+        d = rcu_lock_domain_by_id(op->domain);
+        if ( d != NULL )
+        {
+            ret = set_global_virq_handler(d, (int) 
op->u.set_virq_handler.virq);
+            rcu_unlock_domain(d);
+        }
+    }
+    break;
+
     default:
         ret = arch_do_domctl(op, u_domctl);
         break;
diff -r 890d475c4591 xen/include/public/domctl.h
--- a/xen/include/public/domctl.h       Wed Mar 18 15:41:08 2009 +0000
+++ b/xen/include/public/domctl.h       Wed Mar 18 15:50:30 2009 +0000
@@ -612,6 +612,13 @@
 typedef struct xen_domctl_subscribe xen_domctl_subscribe_t;
 DEFINE_XEN_GUEST_HANDLE(xen_domctl_subscribe_t);
 
+#define XEN_DOMCTL_set_virq_handler   30
+struct xen_domctl_set_virq_handler {
+    uint32_t virq; /* IN */
+};
+typedef struct xen_domctl_set_virq_handler xen_domctl_set_virq_handler_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_set_virq_handler_t);
+
 /*
  * Define the maximum machine address size which should be allocated
  * to a guest.
@@ -686,6 +693,7 @@
         struct xen_domctl_set_opt_feature   set_opt_feature;
         struct xen_domctl_set_target        set_target;
         struct xen_domctl_subscribe         subscribe;
+        struct xen_domctl_set_virq_handler  set_virq_handler;
         struct xen_domctl_debug_op          debug_op;
 #if defined(__i386__) || defined(__x86_64__)
         struct xen_domctl_cpuid             cpuid;


_______________________________________________
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®.