Filip Navara wrote:
It is implemented, the single "break;" statement means that just no additional processing is required/implemented.
Your are right. It seems, that the current crash is triggered by APICSyncArbIDs. Qemu reinitialize the local apic at this point. The logical apic ids are reset. I can change qemu or reactos a little bit to fix this. Reactos runs a little bit longer in qemu. The change has no effect on my smp machine.
- Hartmut
M:\Sandbox\ros_work\reactos>svn diff hal\halx86\mp\apic.c Index: hal/halx86/mp/apic.c =================================================================== --- hal/halx86/mp/apic.c (Revision 20275) +++ hal/halx86/mp/apic.c (Arbeitskopie) @@ -691,7 +691,8 @@ }
DPRINT("Synchronizing Arb IDs.\n"); - APICWrite(APIC_ICR0, APIC_ICR0_DESTS_ALL | APIC_ICR0_LEVEL | APIC_DM_INIT); +// APICWrite(APIC_ICR0, APIC_ICR0_DESTS_ALL | APIC_ICR0_LEVEL | APIC_DM_INIT); + APICWrite(APIC_ICR0, APIC_ICR0_DESTS_ALL | APIC_DM_INIT | APIC_ICR0_TM); } #endif