WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] [Mini-OS] Make bind_virq return the port

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] [Mini-OS] Make bind_virq return the port
From: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
Date: Fri, 23 Nov 2007 16:22:33 +0000
Delivery-date: Fri, 23 Nov 2007 08:23:11 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Mail-followup-to: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.12-2006-07-14
Make bind_virq() return the port bound to the irq, which is useful e.g.
for masking/unmasking it.

Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxx>

diff -r 2e05a6173be0 extras/mini-os/arch/ia64/time.c
--- a/extras/mini-os/arch/ia64/time.c   Fri Nov 23 11:58:11 2007 +0000
+++ b/extras/mini-os/arch/ia64/time.c   Fri Nov 23 16:18:57 2007 +0000
@@ -267,7 +267,7 @@ init_time(void)
                printk("efi_get_time() failed\n");
 
        err = bind_virq(VIRQ_ITC, timer_interrupt, NULL);
-       if (err != 0) {
+       if (err == -1) {
                printk("XEN timer request chn bind failed %i\n", err);
                return;
        }
diff -r 2e05a6173be0 extras/mini-os/events.c
--- a/extras/mini-os/events.c   Fri Nov 23 11:58:11 2007 +0000
+++ b/extras/mini-os/events.c   Fri Nov 23 16:18:58 2007 +0000
@@ -102,7 +102,7 @@ void unbind_evtchn(evtchn_port_t port )
        ev_actions[port].data = NULL;
 }
 
-int bind_virq(uint32_t virq, evtchn_handler_t handler, void *data)
+evtchn_port_t bind_virq(uint32_t virq, evtchn_handler_t handler, void *data)
 {
        evtchn_bind_virq_t op;
 
@@ -113,11 +113,11 @@ int bind_virq(uint32_t virq, evtchn_hand
        if ( HYPERVISOR_event_channel_op(EVTCHNOP_bind_virq, &op) != 0 )
        {
                printk("Failed to bind virtual IRQ %d\n", virq);
-               return 1;
+               return -1;
     }
     set_bit(op.port,bound_ports);
     bind_evtchn(op.port, handler, data);
-       return 0;
+       return op.port;
 }
 
 #if defined(__x86_64__)
diff -r 2e05a6173be0 extras/mini-os/include/events.h
--- a/extras/mini-os/include/events.h   Fri Nov 23 11:58:11 2007 +0000
+++ b/extras/mini-os/include/events.h   Fri Nov 23 16:18:58 2007 +0000
@@ -26,7 +26,7 @@ typedef void (*evtchn_handler_t)(evtchn_
 
 /* prototypes */
 int do_event(evtchn_port_t port, struct pt_regs *regs);
-int bind_virq(uint32_t virq, evtchn_handler_t handler, void *data);
+evtchn_port_t bind_virq(uint32_t virq, evtchn_handler_t handler, void *data);
 evtchn_port_t bind_evtchn(evtchn_port_t port, evtchn_handler_t handler,
                                                  void *data);
 void unbind_evtchn(evtchn_port_t port);

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] [Mini-OS] Make bind_virq return the port, Samuel Thibault <=