X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/9e2a82e4e9495f33b8e6423c335a9a157f056254..33e49b2e6d599bc56326841b5b373b9f76adc5f7:/aseg-paging/smi.c diff --git a/aseg-paging/smi.c b/aseg-paging/smi.c deleted file mode 100644 index 33536eb..0000000 --- a/aseg-paging/smi.c +++ /dev/null @@ -1,96 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "../net/net.h" -#include "vga-overlay.h" - -#include "pagetable.h" - -unsigned int counter = 0; -unsigned int lastctr = 0; -unsigned long pcisave = 0; -unsigned char vgasave = 0; - -void set_cr0(unsigned int); - -#define get_cr0() \ - ({ \ - register unsigned int _temp__; \ - asm volatile("mov %%cr0, %0" : "=r" (_temp__)); \ - _temp__; \ - }) - - -#define set_cr3(value) \ - { \ - register unsigned int _temp__ = (value); \ - asm volatile("mov %0, %%cr3" : : "r" (_temp__)); \ - } -#define CR0_PG 0x80000000 - - -void smi_entry(void) -{ - char statstr[512]; - outb(0x80, 0x0B); - pcisave = inl(0xCF8); - vgasave = inb(0x3D4); - outb(0x80, 0x1B); -/* - pci_unbother_all(); - */ - counter++; - outb(0x80, 0x2B); - sprintf(statstr, "15-412! %08x %08x", smi_status(), counter); - outb(0x80, 0x3B); - strblit(statstr, 0, 0); - outb(0x80, 0x4B); - - /* - eth_poll(); - */ - - if (inl(0x840) & 0x1000) - { - /* - pci_dump(); - */ - outl(0x840, 0x1100); - outl(0x840, 0x0100); - } - -/* - smi_poll(); - - pci_bother_all(); - */ - outl(0xCF8, pcisave); - outb(0x3D4, vgasave); -} - -void timer_handler(smi_event_t ev) -{ - static unsigned int ticks = 0; - - smi_disable_event(SMI_EVENT_FAST_TIMER); - smi_enable_event(SMI_EVENT_FAST_TIMER); - - outb(0x80, (ticks++) & 0xFF); - - outlog(); -} - - -void __firstrun_start() { - smi_disable(); - outb(0x80, 0x41); - - smi_register_handler(SMI_EVENT_FAST_TIMER, timer_handler); - smi_enable_event(SMI_EVENT_FAST_TIMER); - - smi_enable(); -} -