<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/syslinux.git/com32/lib/sys, branch syslinux-6.02-pre14</title>
<subtitle>git.kernel.org: pub/scm/boot/syslinux/syslinux.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/'/>
<entry>
<title>module: convert to dprintf() to aid debugging</title>
<updated>2013-07-26T15:35:59+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-07-26T15:35:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=0006a5e1bc8742fbbc6fbe52d1d12bab05eef311'/>
<id>0006a5e1bc8742fbbc6fbe52d1d12bab05eef311</id>
<content type='text'>
dprintf() is much more useful than DBG_PRINT() when trying to figure out
where a module is failing to load because we can enable the debug
statements at runtime.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
dprintf() is much more useful than DBG_PRINT() when trying to figure out
where a module is failing to load because we can enable the debug
statements at runtime.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>firmware: s/set_mode/text_mode/</title>
<updated>2013-07-04T11:29:02+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-07-04T08:36:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=652b197f9005fe9ef949dfca48dd28f6109bcf09'/>
<id>652b197f9005fe9ef949dfca48dd28f6109bcf09</id>
<content type='text'>
We only ever use -&gt;set_mode() to transition into text mode, so rename it
to something more suitable and drop the unused 'mode' argument.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We only ever use -&gt;set_mode() to transition into text mode, so rename it
to something more suitable and drop the unused 'mode' argument.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ansi: partially revert 937f816addb214ca4c8c1ce977e0357eafa8c617</title>
<updated>2013-06-19T13:58:37+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-06-19T13:58:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=a446b7d8818d41f89d916d974104a26d3ba52b48'/>
<id>a446b7d8818d41f89d916d974104a26d3ba52b48</id>
<content type='text'>
Commit ("ansi: Improve EFI console support") broke writing to the
display under BIOS in an attempt to get things working under EFI. Since
the 'cols' and 'rows' arguments aren't used by the EFI console code,
revert that chunk of the commit to restore the BIOS functionality.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit ("ansi: Improve EFI console support") broke writing to the
display under BIOS in an attempt to get things working under EFI. Since
the 'cols' and 'rows' arguments aren't used by the EFI console code,
revert that chunk of the commit to restore the BIOS functionality.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'syslinux-5.11-pre2' into firmware</title>
<updated>2013-06-17T10:57:29+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-06-17T10:57:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=a0bb1928c8652aada30243089c53754ddd9b99df'/>
<id>a0bb1928c8652aada30243089c53754ddd9b99df</id>
<content type='text'>
syslinux-5.11-pre2

Conflicts:
	core/elflink/load_env32.c
	version
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
syslinux-5.11-pre2

Conflicts:
	core/elflink/load_env32.c
	version
</pre>
</div>
</content>
</entry>
<entry>
<title>PATH: use a linked list internally</title>
<updated>2013-06-13T10:51:03+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-06-13T10:46:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=19455794d144c2c38f483890e0d384bc43b5fd63'/>
<id>19455794d144c2c38f483890e0d384bc43b5fd63</id>
<content type='text'>
In retrospect, choosing the colon character as the entry separator for
the PATH directive was not a smart move, as that character is also used
in TFTP-style paths. This conflict manifests as PXELINUX being unable to
find and load files.

An example dnsmasq log looks like,

dnsmasq-tftp: sent /arch/boot/syslinux/lpxelinux.0 to 192.168.0.90
dnsmasq-tftp: file /arch/ldlinux.c32 not found
dnsmasq-tftp: file /arch//ldlinux.c32 not found
dnsmasq-tftp: file /arch//boot/isolinux/ldlinux.c32 not found
dnsmasq-tftp: file /arch//isolinux/ldlinux.c32 not found
dnsmasq-tftp: file /arch//boot/syslinuxldlinux.c32 not found
dnsmasq-tftp: sent /arch//boot/syslinux/ldlinux.c32 to 192.168.0.90
dnsmasq-tftp: error 0 No error, file close received from 192.168.0.90
dnsmasq-tftp: failed sending /arch//boot/syslinux/ldlinux.c32 to 192.168.0.90
dnsmasq-tftp: sent /arch/boot/syslinux/archiso.cfg to 192.168.0.90
dnsmasq-tftp: sent /arch/boot/syslinux/whichsys.c32 to 192.168.0.90
dnsmasq-tftp: file /arch/libcom32.c32 not found
dnsmasq-tftp: file /arch//libcom32.c32 not found
dnsmasq-tftp: file /arch/libcom32.c32 not found
dnsmasq-tftp: file /arch//arch//boot/syslinux/libcom32.c32 not found

The last line of the log is the indication that there's a problem.
Internally, Syslinux adds the location of ldlinux.c32 to PATH by
querying the current working directory once ldlinux.c32 is successfully
loaded. Under PXELINUX that means the initial PATH string will be,

   "::/arch/boot/syslinux/"

The PATH parsing code doesn't know how to correctly parse the "::"
string and hence, the file is searched for relative to the 210 dhcp
option directory - /arch/.

Implement PATH with a linked list which *greatly* simplifies the path
code, and means we no longer have to parse strings backwards and
forwards.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In retrospect, choosing the colon character as the entry separator for
the PATH directive was not a smart move, as that character is also used
in TFTP-style paths. This conflict manifests as PXELINUX being unable to
find and load files.

An example dnsmasq log looks like,

dnsmasq-tftp: sent /arch/boot/syslinux/lpxelinux.0 to 192.168.0.90
dnsmasq-tftp: file /arch/ldlinux.c32 not found
dnsmasq-tftp: file /arch//ldlinux.c32 not found
dnsmasq-tftp: file /arch//boot/isolinux/ldlinux.c32 not found
dnsmasq-tftp: file /arch//isolinux/ldlinux.c32 not found
dnsmasq-tftp: file /arch//boot/syslinuxldlinux.c32 not found
dnsmasq-tftp: sent /arch//boot/syslinux/ldlinux.c32 to 192.168.0.90
dnsmasq-tftp: error 0 No error, file close received from 192.168.0.90
dnsmasq-tftp: failed sending /arch//boot/syslinux/ldlinux.c32 to 192.168.0.90
dnsmasq-tftp: sent /arch/boot/syslinux/archiso.cfg to 192.168.0.90
dnsmasq-tftp: sent /arch/boot/syslinux/whichsys.c32 to 192.168.0.90
dnsmasq-tftp: file /arch/libcom32.c32 not found
dnsmasq-tftp: file /arch//libcom32.c32 not found
dnsmasq-tftp: file /arch/libcom32.c32 not found
dnsmasq-tftp: file /arch//arch//boot/syslinux/libcom32.c32 not found

The last line of the log is the indication that there's a problem.
Internally, Syslinux adds the location of ldlinux.c32 to PATH by
querying the current working directory once ldlinux.c32 is successfully
loaded. Under PXELINUX that means the initial PATH string will be,

   "::/arch/boot/syslinux/"

The PATH parsing code doesn't know how to correctly parse the "::"
string and hence, the file is searched for relative to the 210 dhcp
option directory - /arch/.

Implement PATH with a linked list which *greatly* simplifies the path
code, and means we no longer have to parse strings backwards and
forwards.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'syslinux-5.10-pre2' into for-hpa/elflink/firmware</title>
<updated>2013-03-22T13:57:44+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-03-20T17:14:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=37d43cf9dd5dd2d2cef1e86aa651097473fd0b48'/>
<id>37d43cf9dd5dd2d2cef1e86aa651097473fd0b48</id>
<content type='text'>
syslinux-5.10-pre2

Conflicts:
	NEWS
	com32/include/netinet/in.h
	com32/include/sys/cpu.h
	com32/lib/Makefile
	core/Makefile
	core/fs/diskio.c
	core/fs/pxe/pxe.h
	core/init.c
	core/mem/free.c
	core/mem/malloc.c
	mk/devel.mk
	version
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
syslinux-5.10-pre2

Conflicts:
	NEWS
	com32/include/netinet/in.h
	com32/include/sys/cpu.h
	com32/lib/Makefile
	core/Makefile
	core/fs/diskio.c
	core/fs/pxe/pxe.h
	core/init.c
	core/mem/free.c
	core/mem/malloc.c
	mk/devel.mk
	version
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'lwip' into elflink</title>
<updated>2013-02-26T11:29:04+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-02-25T15:25:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=76da2ae050d72a31fd47c2fb53f7081781de62ff'/>
<id>76da2ae050d72a31fd47c2fb53f7081781de62ff</id>
<content type='text'>
Welcome to Syslinux 5.10.

Conflicts:
	NEWS
	com32/lib/Makefile
	com32/lib/sys/open.c
	com32/lib/syslinux/ipappend.c
	com32/modules/Makefile
	com32/modules/prdhcp.c
	core/Makefile
	core/cmdline.inc
	core/com32.inc
	core/comboot.inc
	core/configinit.inc
	core/fs/chdir.c
	core/fs/fs.c
	core/fs/pxe/dnsresolv.c
	core/fs/pxe/pxe.c
	core/fs/pxe/pxe.h
	core/idle.c
	core/include/ctype.h
	core/init.inc
	core/mem/init.c
	core/parseconfig.inc
	core/runkernel.inc
	core/syslinux.ld
	core/ui.inc
	doc/comboot.txt
	version
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Welcome to Syslinux 5.10.

Conflicts:
	NEWS
	com32/lib/Makefile
	com32/lib/sys/open.c
	com32/lib/syslinux/ipappend.c
	com32/modules/Makefile
	com32/modules/prdhcp.c
	core/Makefile
	core/cmdline.inc
	core/com32.inc
	core/comboot.inc
	core/configinit.inc
	core/fs/chdir.c
	core/fs/fs.c
	core/fs/pxe/dnsresolv.c
	core/fs/pxe/pxe.c
	core/fs/pxe/pxe.h
	core/idle.c
	core/include/ctype.h
	core/init.inc
	core/mem/init.c
	core/parseconfig.inc
	core/runkernel.inc
	core/syslinux.ld
	core/ui.inc
	doc/comboot.txt
	version
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'syslinux-5.01' into firmware</title>
<updated>2013-01-29T15:11:28+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-01-29T14:01:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=bf20364b582c383b4927f898de213b1cc0981a80'/>
<id>bf20364b582c383b4927f898de213b1cc0981a80</id>
<content type='text'>
Conflicts:
	Makefile
	NEWS
	com32/cmenu/Makefile
	com32/elflink/ldlinux/Makefile
	com32/gfxboot/Makefile
	com32/gpllib/Makefile
	com32/include/sys/module.h
	com32/lib/Makefile
	com32/lib/sys/module/elf_module.c
	com32/menu/Makefile
	com32/rosh/Makefile
	com32/samples/Makefile
	core/init.c
	mk/elf.mk

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	Makefile
	NEWS
	com32/cmenu/Makefile
	com32/elflink/ldlinux/Makefile
	com32/gfxboot/Makefile
	com32/gpllib/Makefile
	com32/include/sys/module.h
	com32/lib/Makefile
	com32/lib/sys/module/elf_module.c
	com32/menu/Makefile
	com32/rosh/Makefile
	com32/samples/Makefile
	core/init.c
	mk/elf.mk

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>module: Replace cur_module with module_current()</title>
<updated>2013-01-23T15:05:29+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-01-23T14:46:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=7c42c59ebd9d33efe3a5f12542580a8c1379447d'/>
<id>7c42c59ebd9d33efe3a5f12542580a8c1379447d</id>
<content type='text'>
It's easy for cur_module and prev_module to get out of sync with
reality (the actual module that is running), so add module_current()
which returns the module at the head of the module_list, i.e. the
module that was loaded most recently. Better still, by using the list
we don't have to do any kind of stacking of module pointers ourselves.

This fixes a bug where cur_module contained a stale pointer (the
module had actually been unloaded) but the pointer value had since
been reallocated for a new module in spawn_load(), meaning that the
following check,

    if (!strcmp(cur_module-&gt;name, module-&gt;name))

was always going to be true, even though *no* module was actually
loaded at this point as we were reloading ldlinux.c32 from
start_ldlinux(). This could have been fixed with a NULL-assignment
after module_unload(), but using the modules_head list to detect the
current module is much cleaner.

Note that the core module loaded in load_env32() is always on the
list, therefore module_current() will always return a valid pointer.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's easy for cur_module and prev_module to get out of sync with
reality (the actual module that is running), so add module_current()
which returns the module at the head of the module_list, i.e. the
module that was loaded most recently. Better still, by using the list
we don't have to do any kind of stacking of module pointers ourselves.

This fixes a bug where cur_module contained a stale pointer (the
module had actually been unloaded) but the pointer value had since
been reallocated for a new module in spawn_load(), meaning that the
following check,

    if (!strcmp(cur_module-&gt;name, module-&gt;name))

was always going to be true, even though *no* module was actually
loaded at this point as we were reloading ldlinux.c32 from
start_ldlinux(). This could have been fixed with a NULL-assignment
after module_unload(), but using the modules_head list to detect the
current module is much cleaner.

Note that the core module loaded in load_env32() is always on the
list, therefore module_current() will always return a valid pointer.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>module: Check for NULL ctors and dtors</title>
<updated>2013-01-23T15:05:28+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2013-01-23T13:40:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/syslinux.git/commit/?id=4027dbf9df88e3feaa3744c6622e4ae7cf8ecd6e'/>
<id>4027dbf9df88e3feaa3744c6622e4ae7cf8ecd6e</id>
<content type='text'>
Don't dereference a NULL ctor/dtor as that can cause us to crash.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't dereference a NULL ctor/dtor as that can cause us to crash.

Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
