From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Zeffertt Subject: [PATCH 16/24] [xen-unstable.hg] xen hypercall to allow xenstore stubdom to be registered to handle VIRQ_DOM_EXC Date: Mon, 23 Mar 2009 15:21:18 +0000 Message-ID: <49C7A8EE.2010203@eu.citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060003000502060903090204" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------060003000502060903090204 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit --------------060003000502060903090204 Content-Type: text/plain; name="xen_virq_handler_hypercall" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xen_virq_handler_hypercall" 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 Signed-off-by: Alex Zeffertt --- 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; --------------060003000502060903090204 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------060003000502060903090204--