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

Sebastian Herbszt herbszt at gmx.de
Tue Nov 25 15:00:44 PST 2008


Steffen Winterfeldt wrote:
> On Mon, 24 Nov 2008, Sebastian Herbszt wrote:
> 
>> H. Peter Anvin wrote:
>> > Sebastian Herbszt wrote:
>> >> 
>> >>> 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).
>> >> 
>> > 
>> > Why not just use the normal file I/O calls for that?
>> 
>> Can you explain this a bit?
>> gfxboot core (bincode.asm) does use the callbacks, e.g. cb_fopen, for file I/O.
>> cb_fopen uses INT 22h AX=0007h. This is "the normal file I/O", right?
>> I am not sure what cb_readsector, which uses INT 22h AX=0019h, is good for.
>> gfxboot core says "internal function" and i was not able to find references to it.
> 
> It is currently used to get some info from the iso9660 header. Also, it
> would be needed if you're going to parse the partition table.

Looking at bootsplash-theme-SuSE-3.1-176.src.rpm i finally found where this is being used.
system.inc got readsector which calls the internal _readsector from bincode.asm. There is a
is_dvd function in common.inc which uses readsector to figure out the cd/dvd volume size.
And this is used in dia_install.inc to display "DVD" or "CD-ROM". is_dvd seems to use
the gfx_media_type value to only call readsector if media type is cdrom. There is also
iso.needscheck in common.inc which does use readsector.

Steffen, is it correct to say readsector is not used unless media type is cdrom?

I did not find any partition table parsing code (yet), but i am still trying to figure out the pscode.

So far i assume that as long as pxelinux does not set the media type to cdrom, but uses disk
or floppy gfxboot core might not get upset that "Read disk" (INT 22h AX=0019h) is not available
on pxelinux.

- Sebastian




More information about the Syslinux mailing list