Date: Fri, 8 Nov 2002 21:07:10 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: "Luoqi Chen" <lchen@briontech.com> Cc: <hackers@FreeBSD.ORG> Subject: Re: RE: Int 0x15 and VM86 question Message-ID: <200211090507.gA957AZa005517@apollo.backplane.com> References: <AHEKICEOIHLOGINAFIINAEGFCAAA.lchen@briontech.com>
next in thread | previous in thread | raw e-mail | index | archive | help
:When iopl is less than 3 (that's what our kernel is running at), the :soft interrupts in vm86 are not dispatched through the normal protective :mode idt vector. Depending on your vme setting and interrupt redirection :bitmap, it either triggers a general protection fault (vme clear and redir :bit set), or directly jumps to vector at low memory as in real mode (vme :set and redir bit clr). IIRC vme is available for P5 or later processors. :So for you it most likely is the direct jump. The first page of physical :memory (which contains the BIOS vectors) is not touched by the kernel, :and is mapped at address 0 in the vm86 process space. : :Does this answer your question, Matt? It has been quite a while since :I looked at the stuff, some of the descriptions might not be accurate. : :-lq Ah ha! You are a great help Luoqi. I was so focused on the interrupt descriptor tables that I forgot that they can be ignored in virtual 8086 mode. I dunno in regards to the IOPL, I'll look into that, but you've definitely hit the nail on the head. Thanks a bunch! -Matt Matthew Dillon <dillon@backplane.com> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211090507.gA957AZa005517>