From owner-freebsd-current Sat Jul 6 9: 8: 6 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1E4A537B400 for ; Sat, 6 Jul 2002 09:08:05 -0700 (PDT) Received: from prism.flugsvamp.com (66-191-112-47.mad.wi.charter.com [66.191.112.47]) by mx1.FreeBSD.org (Postfix) with ESMTP id 79DF343E31 for ; Sat, 6 Jul 2002 09:08:04 -0700 (PDT) (envelope-from jlemon@flugsvamp.com) Received: (from jlemon@localhost) by prism.flugsvamp.com (8.11.6/8.11.6) id g66G6wm36913; Sat, 6 Jul 2002 11:06:58 -0500 (CDT) (envelope-from jlemon) Date: Sat, 6 Jul 2002 11:06:58 -0500 From: Jonathan Lemon To: David Xu Cc: David Schultz , Jonathan Lemon , current@FreeBSD.ORG Subject: Re: i386 trap code Message-ID: <20020706110658.A36596@prism.flugsvamp.com> References: <20020706092835.GB709@HAL9000.wox.org> <20020706121526.65635.qmail@web20903.mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0pre2i In-Reply-To: <20020706121526.65635.qmail@web20903.mail.yahoo.com> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Sat, Jul 06, 2002 at 05:15:26AM -0700, David Xu wrote: > > I don't know how DOS emulating program works, but if it let DOS > program run in VM86 mode, the in_vm86call global flag can prevent > one CPU to run VM86 BIOS call and another CPU run DOS VM86 code, > because it can not distinct which CPU the kernel is calling BIOS > and which CPU is running VM86 DOS code, under SMP this is a problem. > for exapmle, vesa module running on first CPU is calling VM86 BIOS, > and second CPU is running DOS program, the DOS program maybe simply > executes a privilege instruction to trigger trap, and the CPU > will see itself calling VM86 BIOS, but it shouldn't. The virtual vm86 mode that doscmd(1) uses is different than the vm86 bios calls (or bios16, or bios32) which allows direct execution of BIOS code. They do not have much in common. doscmd() does not directly execute any of the BIOS code; it provides its own BIOS emulator. The scenario you postulate above cannot exist. -- Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message