From 9adc7af78ac631928e713bade9b7f7e7174c5b49 Mon Sep 17 00:00:00 2001 From: David Reid Date: Fri, 19 Jul 2002 16:04:12 +0000 Subject: [PATCH] Change to the interrupt handler return values. Also reflect the change of function name and number of parameters. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@339 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/core/arch/x86/arch_faults.c | 2 +- src/kernel/core/arch/x86/arch_int.c | 6 +++--- src/kernel/core/arch/x86/arch_smp.c | 12 ++++++------ src/kernel/core/arch/x86/arch_timer.c | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/kernel/core/arch/x86/arch_faults.c b/src/kernel/core/arch/x86/arch_faults.c index 4ebb0c61ae..be1f62f96a 100755 --- a/src/kernel/core/arch/x86/arch_faults.c +++ b/src/kernel/core/arch/x86/arch_faults.c @@ -38,6 +38,6 @@ int i386_double_fault(int errorcode) kprintf("double fault! errorcode = 0x%x\n", errorcode); dprintf("double fault! errorcode = 0x%x\n", errorcode); for(;;); - return INT_NO_RESCHEDULE; + return B_HANDLED_INTERRUPT; } diff --git a/src/kernel/core/arch/x86/arch_int.c b/src/kernel/core/arch/x86/arch_int.c index 07f0fa8157..232880134c 100755 --- a/src/kernel/core/arch/x86/arch_int.c +++ b/src/kernel/core/arch/x86/arch_int.c @@ -156,7 +156,7 @@ bool arch_int_is_interrupts_enabled(void) void i386_handle_trap(struct int_frame frame); /* keep the compiler happy, this function must be called only from assembly */ void i386_handle_trap(struct int_frame frame) { - int ret = INT_NO_RESCHEDULE; + int ret = B_HANDLED_INTERRUPT; // if(frame.vector != 0x20) // dprintf("i386_handle_trap: vector 0x%x, ip 0x%x, cpu %d\n", frame.vector, frame.eip, smp_get_current_cpu()); @@ -235,12 +235,12 @@ void i386_handle_trap(struct int_frame frame) ret = int_io_interrupt_handler(frame.vector); } else { panic("i386_handle_trap: unhandled cpu trap 0x%x at ip 0x%x!\n", frame.vector, frame.eip); - ret = INT_NO_RESCHEDULE; + ret = B_HANDLED_INTERRUPT; } break; } - if(ret == INT_RESCHEDULE) { + if (ret == B_INVOKE_SCHEDULER) { int state = int_disable_interrupts(); GRAB_THREAD_LOCK(); thread_resched(); diff --git a/src/kernel/core/arch/x86/arch_smp.c b/src/kernel/core/arch/x86/arch_smp.c index f0c90f2772..ddbc4c3c42 100755 --- a/src/kernel/core/arch/x86/arch_smp.c +++ b/src/kernel/core/arch/x86/arch_smp.c @@ -51,7 +51,7 @@ static int i386_spurious_interrupt(void* data) // spurious interrupt // dprintf("spurious interrupt on cpu %d\n", arch_smp_get_current_cpu()); arch_smp_ack_interrupt(); - return INT_NO_RESCHEDULE; + return B_HANDLED_INTERRUPT; } static int i386_smp_error_interrupt(void* data) @@ -59,7 +59,7 @@ static int i386_smp_error_interrupt(void* data) // smp error interrupt // dprintf("smp error interrupt on cpu %d\n", arch_smp_get_current_cpu()); arch_smp_ack_interrupt(); - return INT_NO_RESCHEDULE; + return B_HANDLED_INTERRUPT; } static unsigned int apic_read(unsigned int *addr) @@ -92,10 +92,10 @@ int arch_smp_init(kernel_args *ka) vm_create_anonymous_region(vm_get_kernel_aspace_id(), "ioapic", (void *)&ioapic, REGION_ADDR_EXACT_ADDRESS, PAGE_SIZE, REGION_WIRING_WIRED_ALREADY, LOCK_RW|LOCK_KERNEL); - int_set_io_interrupt_handler(0xfb, &i386_timer_interrupt, NULL); - int_set_io_interrupt_handler(0xfd, &i386_ici_interrupt, NULL); - int_set_io_interrupt_handler(0xfe, &i386_smp_error_interrupt, NULL); - int_set_io_interrupt_handler(0xff, &i386_spurious_interrupt, NULL); + install_io_interrupt_handler(0xfb, &i386_timer_interrupt, NULL, 0); + install_io_interrupt_handler(0xfd, &i386_ici_interrupt, NULL, 0); + install_io_interrupt_handler(0xfe, &i386_smp_error_interrupt, NULL, 0); + install_io_interrupt_handler(0xff, &i386_spurious_interrupt, NULL, 0); } else { num_cpus = 1; } diff --git a/src/kernel/core/arch/x86/arch_timer.c b/src/kernel/core/arch/x86/arch_timer.c index 87238c05aa..b3308fb3f1 100755 --- a/src/kernel/core/arch/x86/arch_timer.c +++ b/src/kernel/core/arch/x86/arch_timer.c @@ -72,7 +72,7 @@ int arch_init_timer(kernel_args *ka) { dprintf("arch_init_timer: entry\n"); - int_set_io_interrupt_handler(0x20, &isa_timer_interrupt, NULL); + install_io_interrupt_handler(0x20, &isa_timer_interrupt, NULL, 0); // apic timer interrupt set up by smp code return 0;