[haiku-development] Re: Virtual 8086 mode support

  • From: Jan Klötzke <jan.kloetzke@xxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 21 Apr 2008 00:45:09 +0200

Am Sonntag, 20. April 2008 schrieb Axel Dörfler:
> Ingo Weinhold <ingo_weinhold@xxxxxx> wrote:
> > I would simply reserve a small piece of the required address space
> > and do the
> > vm86 stuff fully in the kernel (i.e. available to userland via an
> > ioctl()
> > only). When the driver needs to execute vm86 code, an area with the
> > code to
> > execute and the stack are mapped into the reserved region (cloned or
> > copied
> > -- whatever makes sense), the code is executed, and when done the
> > area is
> > unmapped again. That's not high-performance, but for stuff like
> > resolution
> > changes, it should be totally sufficient.
>
> That sounds indeed like the best solution. It probably wouldn't even
> hurt to keep the area around - we might want to have a similar solution
> for APM; at least it seems to help some buggy implementations to make
> that address range available.

Ok, I'm about to revise my patch to provide a vm86() kernel function. I have 
an idea on how to implement it but it will take some time...

To make area/mapping stuff more clear let me summarize the requirements:
  * A private area on 0x000--0x502 with the real values copied from the
    physical RAM
  * Most propably another private area in the 640kb range for some enry/exit
    code and stack
  * A identity mapping of the 0xA0000--0xFFFFF range

/Jan

Other related posts: