lkml.org 
[lkml]   [2003]   [May]   [25]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateSun, 25 May 2003 21:33:29 +0400
FromStas Sergeev <>
Subject[patch] vm86: fix IOPL virtualisation
Hello.

The attached patch implements the following:
http://x86.ddj.com/articles/vme1/vme_overview.htm
---
In addition to moving the VIF to the IF on the stack image, 
PUSHF always pushes an IOPL image of 3 onto the
stack.
---
Many DOS programs, including dos4gw, are
checking if they are in a v86 mode by trying
to alter IOPL. With that patch they are not
get confused under dosemu.
Also the patch fixes what looks like a bug
with an IF flag.
--- linux/arch/i386/kernel/vm86.c	Sun Aug  4 03:44:30 2002
+++ linux/arch/i386/kernel/vm86.c	Sat May 24 19:30:45 2003
@@ -362,6 +362,9 @@
 
 	if (VEFLAGS & VIF_MASK)
 		flags |= IF_MASK;
+	else
+		flags &= ~IF_MASK;
+	flags |= IOPL_MASK;
 	return flags | (VEFLAGS & current->thread.v86mask);
 }
 
\
 
 \ /
  Last update: 2005-03-22 13:35    [from the cache]
©2003-2008