Re: [RFC] Virtual 8086 mode support for kernel drivers

Jan Klötzke <[email protected]> Fri, 16 May 2008 19:03:47 +0200
Newsgroups gmane.os.openbeos.kernel.devel
Message-ID <[email protected]>
"Axel Dörfler" <[email protected]> wrote:
> > Ok, as I don't have a real usecase too I make it a anonymous union
> > just as
> > Ingo has suggested.
>
> The current fault handler mechanism isn't sufficient for you?

Well, actually not. :-) The fault handler mechanism will catch unhandled page 
faults in the _kernel_. For vm86 mode I have to catch unhandled page faults 
in _user_mode_ which would normally send a SIGSEGV. This is not desired for 
vm86 mode.

Instead I want to return from the vm86 call with an appropriate error code. 
This is done by registering a "fault_callback" in the thread which is called 
just before the SIGSEGV is sent. When the callback returns "false" then the 
signal will not be sent.

> [...]
>
> > I renamed vm86.c to .cpp but left the exported functions 'extern
> > "C"'.
> >
> > Despite the changes above I cleaned the code up a bit, reworked all
> > the
> > remarks that I received so far and added some comments. The code is
> > finished
> > so far and I will move on to the VESA driver. Should I submit the
> > current
> > patch series now on the list or (as it's not used by other code yet)
> > when I
> > have the VESA driver/accelerant stuff working?
>
> I would prefer to have it in the kernel now, I guess - it shouldn't
> really hurt anyone, and I would guess it's nicer for you in case we
> would ask you to do any other changes :-)
> Anyway, I'm looking forward to this patch, thanks for working on this!

Ok, I'll submit it in a minute... ;-)

/Jan

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Open-beos-kernel-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open-beos-kernel-devel