[syslinux] [RFC][PATCH] Gfxboot COMBOOT module

Sebastian Herbszt herbszt at gmx.de
Mon Nov 24 12:03:22 PST 2008


Gene Cumm wrote:
> On Mon, Nov 24, 2008 at 1:40 AM, H. Peter Anvin <hpa at zytor.com> wrote:
>> Gene Cumm wrote:
>>>
>>> Hmmm... gfxboot as a COMBOOT?  Sounds appealing.  Doesn't modify the
>>> core yet allows the eye candy of gfxboot.  Seems like it should have
>>> been this way from the beginning.
>>>
>>
>> I'm rather confused, though, about the I/O stuff... does this attempt to
>> read the filesystem itself?  That's hardly code we want to duplicate for
>> the syslinux core.  Otherwise, why is pxelinux excluded?
>>
> 
> As far as the duplicate code, I was noticing a few functions from
> getc.inc (getc, ungetc, skipline).
> 
> It appears to use INT 22h AX=0006h,0007h,0008h to read the file.
> Backing through the code, INT 22h AX=0019h (Read Disk) is called by
> cb_readsector, which is referenced by cb_table, which is referenced by
> gfx_cb, which is referenced by the data element gfx_callback which is
> referenced by none.

The gfx_callback is registered with gfxboot core by supplying the gfx_sysconfig
structure to gfx_bc_init. The gfx_cb is called from gfxboot core and can request
cb_status (return file name of last cb_fopen), cb_fopen (INT 22h AX=0006h),
cb_fread (INT 22h AX=0007h), cb_getcwd (currently returns '/'), cb_chdir (currently
no op) and cb_readsector (INT 22h AX=0019h).

> Without looking at the original gfxboot patch, it would seem like
> gfxboot did raw I/O but it is mearly a lingering reference.

This API is used by gfxboot core to open the graphical and other files (e.g. gfxboot.cfg).

- Sebastian




More information about the Syslinux mailing list