X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/113df320fe8e5e3f069c974546162d9329da8e31..4d8868425004956946425f8f68a0b350c3919402:/aseg-paging/pagingstub.c diff --git a/aseg-paging/pagingstub.c b/aseg-paging/pagingstub.c index 0a79385..0115713 100644 --- a/aseg-paging/pagingstub.c +++ b/aseg-paging/pagingstub.c @@ -5,11 +5,12 @@ #include #include #include +#include "traps.h" #include "../net/net.h" #include "vga-overlay.h" +extern void smi_init(); #include "vm_flags.h" -#include "pagetable.h" void set_cr0(unsigned int); void ps_switch_stack (void (*call)(), int stack); @@ -114,8 +115,8 @@ void c_entry(void) set_cr0(get_cr0() | CR0_PG); outb(0x80, 0x43); + if (!entry_initialized) { - extern void __firstrun_start(); /* If needed, copy in data. */ for (bp = (void *)0x200000; (void *)bp < (void *)&_bss; bp++) @@ -124,7 +125,12 @@ void c_entry(void) *bp = 0; serial_init(); dolog("Paging enabled."); - __firstrun_start(); /* Now initialize BSS, etc. */ + } + + traps_install(); + + if (!entry_initialized) { + smi_init(); entry_initialized = 1; }