Speaking of other operating systems..... I have the tools for compiling NT
drivers if we have someone to code them ;-)
Nick

----- Original Message -----
From: Kevin P. Lawton <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, October 27, 1999 9:45 AM
Subject: Re: some x86 instructions


> Jens Nerche wrote:
> >
> > Hello,
> > I'm new on this list, greetings to all listeners!
> >
> > I think in http://www.freemware.org/docs.phtml?file=paper.txt
> > is a lack of some instructions, we should have a look on
> > invd, invlpg, rdmsr, wrmsr, wbinvd, sysenter and sysexit. Most
> > of them (first 5) are protected, and I don't know if last two important
> > for us.
>
> I'm glad you pointed the last 2 out, I haven't looked into
> them yet.
>
>
> First 5 are CPL==0 as you said, so they're no problem.
>
> SYSENTER has the following checks:
>
>   IF CR0.PE == 0 THEN #GP(0)
>   IF SYSENTER_CS_MSR == 0 THEN #GP(0)
>
> So I would say we should do the following.  Upon startup of
> FreeMWare, check what processor we're running on and see
> if sysenter/sysexit are supported via CPUID.
>
> If not supported, then no big deal.  If supported then when
> ever we warp into our VM, save the value of SYSENTER_CS_MSR
> and then set it to 0.  Then we'll receive a fault when
> the guest tries to use it.  We have to restore the value
> when warping back to the host OS.
>
> SYSEXIT is CPL==0 only, so also no problem.
>
> -Kevin
>
>

Reply via email to