void VISIBLE c_nested_interrupt(int irq) { /* This is not a real entry point, so we do not grab locks or * run c_entry/exit_hooks, since this occurs only if we're already * running inside the kernel. Just record the irq and return */ assert(ARCH_NODE_STATE(x86KSPendingInterrupt) == int_invalid); ARCH_NODE_STATE(x86KSPendingInterrupt) = irq; }
BOOT_CODE VISIBLE void boot_sys( unsigned long multiboot_magic, multiboot_info_t* mbi) { bool_t result; result = try_boot_sys(multiboot_magic, mbi); if (!result) { fail("boot_sys failed for some reason :(\n"); } ARCH_NODE_STATE(x86KScurInterrupt) = int_invalid; ARCH_NODE_STATE(x86KSPendingInterrupt) = int_invalid; schedule(); activateThread(); }