moving the fpu code causes exceptions raised by it to be trapped
neatly instead of causing a triple fault, before the IDT is initialized.
*((reg_t *)(tss->sp0 + 1 * sizeof(reg_t))) = cpu;
}
-PUBLIC void arch_init(void)
+PRIVATE void fpu_init(void)
{
unsigned short cw, sw;
osfxsr_feature = 0;
return;
}
+}
+PUBLIC void arch_init(void)
+{
#ifdef CONFIG_APIC
/*
* this is setting kernel segments to cover most of the phys memory. The
}
#endif
+ fpu_init();
}
#define COM1_BASE 0x3F8