Enabled hardware interrupt handler, timers now work and threads are preempted.

This commit is contained in:
Alex Smith
2012-07-09 17:42:34 +01:00
parent b5c9d24abc
commit c8049a88a3
+1 -7
View File
@@ -45,7 +45,6 @@ static const interrupt_controller* sCurrentPIC = NULL;
void void
hardware_interrupt(struct iframe* frame) hardware_interrupt(struct iframe* frame)
{ {
#ifndef __x86_64__
int32 vector = frame->vector - ARCH_INTERRUPT_BASE; int32 vector = frame->vector - ARCH_INTERRUPT_BASE;
bool levelTriggered = false; bool levelTriggered = false;
Thread* thread = thread_get_current_thread(); Thread* thread = thread_get_current_thread();
@@ -88,10 +87,6 @@ hardware_interrupt(struct iframe* frame)
callback(data); callback(data);
} }
#else
return;
panic("implement me");
#endif
} }
@@ -156,11 +151,10 @@ arch_int_are_interrupts_enabled(void)
status_t status_t
arch_int_init_io(kernel_args* args) arch_int_init_io(kernel_args* args)
{ {
// TODO x86_64
#ifndef __x86_64__ #ifndef __x86_64__
ioapic_init(args); ioapic_init(args);
msi_init(); msi_init();
#else
//panic("implement me");
#endif #endif
return B_OK; return B_OK;
} }