[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