Changeset f74bbaf in mainline for kernel/arch/ia32/src/pm.c


Ignore:
Timestamp:
2007-04-09T06:13:24Z (18 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d0b1443
Parents:
261595b
Message:

start shutdown infrastructure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/pm.c

    r261595b rf74bbaf  
    122122{
    123123        idescriptor_t *d;
    124         int i;
     124        unsigned int i;
    125125
    126126        for (i = 0; i < IDT_ITEMS; i++) {
     
    231231}
    232232
     233/* Reboot the machine by initiating
     234 * a triple fault
     235 */
     236void arch_reboot(void)
     237{
     238        preemption_disable();
     239        ipl_t ipl = interrupts_disable();
     240       
     241        memsetb((uintptr_t) idt, sizeof(idt), 0);
     242       
     243        ptr_16_32_t idtr;
     244        idtr.limit = sizeof(idt);
     245        idtr.base = (uintptr_t) idt;
     246        idtr_load(&idtr);
     247       
     248        interrupts_restore(ipl);
     249        asm volatile (
     250                "int $0x03\n"
     251                "hlt\n"
     252        );
     253}
     254
    233255/** @}
    234256 */
Note: See TracChangeset for help on using the changeset viewer.