[syslinux] [PATCH] gfxboot.c32
Sebastian Herbszt
herbszt at gmx.de
Sat Nov 14 03:47:20 PST 2009
H. Peter Anvin wrote:
> On 10/29/2009 08:57 AM, Steffen Winterfeldt wrote:
>> Ok, here is the first try to turn the gfxboot wrapper into a com32 module. I
>> had to extend the interface to the gfxboot core a bit to get it working. So
>> it works only with latest gfxboot from
>>
>> git://gitorious.org/gfxboot/gfxboot.git
>>
>> Steffen
>
> Hi Steffen,
>
> I'm looking at it, and I'm trying to understand the code flow (what
> calls what). In particular, I'm wondering where the cb_table gets involved.
The gfxboot.c code flow is like this:
main()
gfx_init()
* load_file()
* find_file()
* gfx_config.bootloader_seg = "lowmem"
* gfx_config->callback = 4
* GFX_CB_INIT
gfx_menu_init()
* GFX_CB_MENU_INIT
gfx_input()
* GFX_CB_INPUT
gfx_done()
* GFX_CB_DONE
or
boot()
* GFX_CB_PROGRESS_INIT
* load_one()
** GFX_CB_PROGRESS_UPDATE
* GFX_CB_PROGRESS_DONE
The GFX_CB_* functions are located in the gfxboot core (bincode.asm). They can call the registered gfx callback
function at gfx_config.bootloader_seg:gfx_config->callback (gfx_cb in realmode_callback.asm). gfx_cb itself calls
the requested function using the cb_table.
- Sebastian
More information about the Syslinux
mailing list