On Sat, Dec 17, 2011 at 04:44:52PM +0000, Julian Pidancet wrote:
Also, I implemented this vbe driver skeleton with an interface which
could be as generic as possible to allow to implement several
different drivers. But I am actually wondering now what would be the
best way for several drivers to share the same interface in terms of
That is an interesting issue. The current lgpl seems to use two
schemes - the bochs vbe interface is inline with the standard vga
interface and uses "#ifdef VBE" guards - the cirrus interface takes
the int10 vector, checks for the calls it needs to handle and then
calls the standard vga interface for the rest.
A couple of years back, a geode interface was written for seabios -
see the thread at (look for the code in attachments):
I'm don't recall why the above didn't get merged. The Geode interface
only needed to override the legacy timing parameter table and be
called during init.
I'm not sure which scheme makes the most sense. I could see using the
"cirrus" scheme - each hardware type defines its own "handle_10" and
"vga_post" in a file dedicated to that hardware, which then check for
hardware specific functions and call "library" code for the standard
stuff. However, I'm not sure how much code duplication there would be
for things like the VBE calls which seem to contain a mix of standard
info and hardware specific info.