summaryrefslogtreecommitdiffstats
path: root/sys/compat/x86bios
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2011-03-09 16:16:38 +0000
committerjkim <jkim@FreeBSD.org>2011-03-09 16:16:38 +0000
commita023421583e2b662f1853031794f5f9eaeb069fb (patch)
treeb0c6da8c9a6e2da19f910b92c14a064a614bdfd7 /sys/compat/x86bios
parent748d7e5e85adf92f206bdc0c2bb1ed5c32d6eb48 (diff)
downloadFreeBSD-src-a023421583e2b662f1853031794f5f9eaeb069fb.zip
FreeBSD-src-a023421583e2b662f1853031794f5f9eaeb069fb.tar.gz
Remove custom interrupt dispatcher. This is a pointless micro-optimization
and it may cause problems if SS and SP are modified by real-mode code. MFC after: 1 month
Diffstat (limited to 'sys/compat/x86bios')
-rw-r--r--sys/compat/x86bios/x86bios.c23
1 files changed, 0 insertions, 23 deletions
diff --git a/sys/compat/x86bios/x86bios.c b/sys/compat/x86bios/x86bios.c
index 493be05..afa01f4 100644
--- a/sys/compat/x86bios/x86bios.c
+++ b/sys/compat/x86bios/x86bios.c
@@ -533,25 +533,6 @@ x86bios_emu_outl(struct x86emu *emu, uint16_t port, uint32_t val)
iodev_write_4(port, val);
}
-static void
-x86bios_emu_get_intr(struct x86emu *emu, int intno)
-{
- uint16_t *sp;
- uint32_t iv;
-
- emu->x86.R_SP -= 6;
-
- sp = (uint16_t *)((vm_offset_t)x86bios_seg + emu->x86.R_SP);
- sp[0] = htole16(emu->x86.R_IP);
- sp[1] = htole16(emu->x86.R_CS);
- sp[2] = htole16(emu->x86.R_FLG);
-
- iv = x86bios_get_intr(intno);
- emu->x86.R_IP = iv & 0xffff;
- emu->x86.R_CS = (iv >> 16) & 0xffff;
- emu->x86.R_FLG &= ~(F_IF | F_TF);
-}
-
void *
x86bios_alloc(uint32_t *offset, size_t size, int flags)
{
@@ -764,7 +745,6 @@ fail:
static int
x86bios_init(void)
{
- int i;
mtx_init(&x86bios_lock, "x86bios lock", NULL, MTX_DEF);
@@ -787,9 +767,6 @@ x86bios_init(void)
x86bios_emu.emu_outw = x86bios_emu_outw;
x86bios_emu.emu_outl = x86bios_emu_outl;
- for (i = 0; i < 256; i++)
- x86bios_emu._x86emu_intrTab[i] = x86bios_emu_get_intr;
-
return (0);
}
OpenPOWER on IntegriCloud