Make bind_virq return the port
PATCH 1/1 Make bind_virq return the port
Make bind_virq() return the port bound to the irq, which is useful e.g. for masking/unmasking it.
Signed-off-by Samuel Thibault <[email protected]>
extras/mini-os/arch/ia64/time.c +1 -1
@@ -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 ; }
extras/mini-os/events.c +3 -3
@@ -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_handif (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__)
extras/mini-os/include/events.h +1 -1
@@ -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);