From 7870c58c18ac9d4d7351e584afc662c485137484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 30 Jan 2003 21:22:03 +0000 Subject: [PATCH] Now uses the new smp_apic.h header file. Changed apic_read()/apic_write() to accept offsets not addresses as register parameter. Cleanups. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2605 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/core/arch/x86/arch_smp.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/kernel/core/arch/x86/arch_smp.c b/src/kernel/core/arch/x86/arch_smp.c index b05df677f1..d0f4d0c9bc 100755 --- a/src/kernel/core/arch/x86/arch_smp.c +++ b/src/kernel/core/arch/x86/arch_smp.c @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -75,15 +76,16 @@ i386_smp_error_interrupt(void *data) static uint32 -apic_read(uint32 *addr) +apic_read(uint32 offset) { - return *addr; + return *(uint32 *)((uint32)apic + offset); } static void -apic_write(uint32 *addr, uint32 data) +apic_write(uint32 offset, uint32 data) { + uint32 *addr = (uint32 *)((uint32)apic + offset); *addr = data; } @@ -120,7 +122,7 @@ arch_smp_init(kernel_args *ka) void arch_smp_send_broadcast_ici(void) { - int config; + uint32 config; int state = disable_interrupts(); config = apic_read(APIC_ICR1) & APIC_ICR1_WRITE_MASK; @@ -133,7 +135,7 @@ arch_smp_send_broadcast_ici(void) void arch_smp_send_ici(int target_cpu) { - int config; + uint32 config; int state = disable_interrupts(); config = apic_read(APIC_ICR2) & APIC_ICR2_MASK; @@ -191,7 +193,7 @@ arch_smp_set_apic_timer(bigtime_t relative_timeout) int arch_smp_clear_apic_timer(void) { - unsigned int config; + uint32 config; int state; if (apic == NULL)