[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