From f599932f82e4a1023d87352ea842381a9ef667bd Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Mon, 23 May 2011 15:02:05 +0000 Subject: [PATCH] * Simplify APIC writes. * Add explicit volatile keyword. * Minor variable name cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41684 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/boot/platform/bios_ia32/smp.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/system/boot/platform/bios_ia32/smp.cpp b/src/system/boot/platform/bios_ia32/smp.cpp index 0cab2a07d8..4efa29c96f 100644 --- a/src/system/boot/platform/bios_ia32/smp.cpp +++ b/src/system/boot/platform/bios_ia32/smp.cpp @@ -60,15 +60,14 @@ static int smp_get_current_cpu(void); static uint32 apic_read(uint32 offset) { - return *(uint32 *)((uint32)gKernelArgs.arch_args.apic + offset); + return *(volatile uint32 *)((uint32)gKernelArgs.arch_args.apic + offset); } static void apic_write(uint32 offset, uint32 data) { - uint32 *addr = (uint32 *)((uint32)gKernelArgs.arch_args.apic + offset); - *addr = data; + *(volatile uint32 *)((uint32)gKernelArgs.arch_args.apic + offset) = data; } @@ -78,9 +77,9 @@ smp_get_current_cpu(void) if (gKernelArgs.arch_args.apic == NULL) return 0; - uint8_t apic_id = (apic_read(APIC_ID) & 0xffffffff) >> 24; + uint8 apicID = apic_read(APIC_ID) >> 24; for (uint32 i = 0; i < gKernelArgs.num_cpus; i++) { - if (gKernelArgs.arch_args.cpu_apic_id[i] == apic_id) + if (gKernelArgs.arch_args.cpu_apic_id[i] == apicID) return i; }