-
- unsigned apicid;
- apicid = lapicid();
-
- /* Send an APIC INIT to myself */
- lapic_write(LAPIC_ICR2, SET_LAPIC_DEST_FIELD(apicid));
- lapic_write(LAPIC_ICR, LAPIC_INT_LEVELTRIG | LAPIC_INT_ASSERT | LAPIC_DM_INIT);
- /* Wait for the ipi send to finish */
- lapic_wait_icr_idle();
-
- /* Deassert the APIC INIT */
- lapic_write(LAPIC_ICR2, SET_LAPIC_DEST_FIELD(apicid));
- lapic_write(LAPIC_ICR, LAPIC_INT_LEVELTRIG | LAPIC_DM_INIT);
- /* Wait for the ipi send to finish */
- lapic_wait_icr_idle();
-
- /* If I haven't halted spin forever */