[haiku-development] Re: [PATCH 1/5] Allow areas in the lower 1Mb for x86 for vm86 mode.

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 20 Apr 2008 15:20:46 +0200 CEST

Jan Klötzke <jan.kloetzke@xxxxxxxxxx> wrote:
> Am Sonntag, 20. April 2008 schrieb Axel Dörfler:
> > Jan Klötzke <jan.kloetzke@xxxxxxxxxx> wrote:
> > > As already explained the vm86 mode task will only generate
> > > _virtual_
> > > address
> > > in the 0x000000--0x10FFEF range for which a area must be present.
> > But we don't need anything below the BIOS, don't we? Because
> > keeping
> > the first page (or more) reserved definitely makes sense :-)
> I fully agree that keeping (at least) the first page unmapped is a
> good
> thing. :-)
>
> Unfortunately the BIOS creators have put the "BIOS data area"
> (http://www.bioscentral.com/misc/bda.htm) at 0x0040:0x0000. It also
> contains
> some video specific stuff which the VESA BIOS might update when
> switching
> video modes to support legacy int 10h functions...

Alright, then we either need to introduce a special flag that allows an
area to be created there, or rather, extend the VM to allow kernel
mappings in the lower part of the address space for kernel only
threads.
It's not really acceptable to make this accessible to applications.
Alternatively, one could make a separate app that handles the BIOS
calls, so that the app_server will still crash when accessing NULL.

Bye,
   Axel.


Other related posts: