Remove BIOSSEG.

Don't mess with the flags when entering a software interrupt.
Use IF, not VIF.
NOTE: These changes break dosemu, but are required for proper emulation.
This commit is contained in:
mycroft 1996-04-30 10:35:25 +00:00
parent bcd490a50d
commit 7511a5540e
2 changed files with 6 additions and 17 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: vm86.c,v 1.13 1996/04/25 13:50:21 mycroft Exp $ */
/* $NetBSD: vm86.c,v 1.14 1996/04/30 10:35:25 mycroft Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -176,7 +176,6 @@ fast_intxx(p, intrno)
struct vm86_struct *u_vm86p;
struct { u_short ip, cs; } ihand;
u_short cs;
u_long ss, sp;
/*
@ -187,12 +186,10 @@ fast_intxx(p, intrno)
u_vm86p = (struct vm86_struct *)p->p_addr->u_pcb.vm86_userp;
/*
* If coming from BIOS segment, or going to BIOS segment, or user
* requested special handling, return to user space with indication
* of which INT was requested.
* If user requested special handling, return to user space with
* indication of which INT was requested.
*/
cs = CS(tf);
if (cs == BIOSSEG || is_bitset(intrno, &u_vm86p->int_byuser[0]))
if (is_bitset(intrno, &u_vm86p->int_byuser[0]))
goto vector;
/*
@ -210,9 +207,6 @@ fast_intxx(p, intrno)
if (copyin((caddr_t)(intrno * sizeof(ihand)), &ihand, sizeof(ihand)))
goto bad;
if (ihand.cs == BIOSSEG)
goto vector;
/*
* Otherwise, push flags, cs, eip, and jump to handler to
* simulate direct INT call.
@ -228,9 +222,6 @@ fast_intxx(p, intrno)
IP(tf) = ihand.ip;
CS(tf) = ihand.cs;
/* disable further "hardware" interrupts, turn off any tracing. */
tf->tf_eflags &= ~PSL_T;
clr_vif(p);
return;
vector:

View File

@ -1,6 +1,6 @@
/* $NetBSD: vm86.h,v 1.6 1996/04/18 10:04:32 mycroft Exp $ */
/* $NetBSD: vm86.h,v 1.7 1996/04/30 10:35:28 mycroft Exp $ */
#define VM86_USE_VIF
#undef VM86_USE_VIF
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -72,8 +72,6 @@ struct vm86_struct {
unsigned char int21_byuser[32]; /* otherwise, handle directly */
};
#define BIOSSEG 0x0f000
#define VCPU_086 0
#define VCPU_186 1
#define VCPU_286 2