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:
parent
bcd490a50d
commit
7511a5540e
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue