13 years agoextlinux: Correct the directory block end condition syslinux-3.63-pre3
H. Peter Anvin [Mon, 7 Apr 2008 23:39:15 +0000 (16:39 -0700)]
extlinux: Correct the directory block end condition

ext2/3 directory blocks are *not* ended with inode == 0; that reflects
a deleted block (like 0xe5 in FAT.)  Directory blocks are ended by
directory block exhaustion; the last block is simply made as large as
the whole directory block.

13 years agoCOM32 module to load a Microsoft System Deployment Image
H. Peter Anvin [Mon, 31 Mar 2008 20:11:32 +0000 (13:11 -0700)]
COM32 module to load a Microsoft System Deployment Image

COM32 module to load a Microsoft System Deployment Image (SDI) file.

13 years agoAdd target to install into /tftpboot
H. Peter Anvin [Sun, 23 Mar 2008 00:38:23 +0000 (17:38 -0700)]
Add target to install into /tftpboot

13 years agopxelinux: allow class E addresses as unicast syslinux-3.63-pre2
H. Peter Anvin [Thu, 20 Mar 2008 23:37:17 +0000 (16:37 -0700)]
pxelinux: allow class E addresses as unicast

Class E IPv4 addresses are expected to be reassigned as available for
unicast addresses (probably for site-local use, but that is a major
usage domain of PXE.)

13 years agoMerge commit 'f9ac61d6178d4994cd646fd4b6c4bb891351624c'
H. Peter Anvin [Thu, 20 Mar 2008 23:36:34 +0000 (16:36 -0700)]
Merge commit 'f9ac61d6178d4994cd646fd4b6c4bb891351624c'

13 years agoFixing wrong offsets in dmi
Sebastian Herbszt [Sat, 8 Mar 2008 21:56:53 +0000 (22:56 +0100)]
Fixing wrong offsets in dmi

DMI code have some wrong offsets.
This patch fixes this offsets and improve the grammar.

Signed-off-by: Sebastian Herbszt <>
13 years agoPCI detection code doesn't corrupt memory anymore (2nd try)
Erwan [Sat, 8 Mar 2008 21:51:54 +0000 (22:51 +0100)]
PCI detection code doesn't corrupt memory anymore (2nd try)

  From : Erwan Velu <>

This patch fixes the pci detection stuff demo'd in pcitest.c32
- Fix a wrong type in malloc
- Incorrect use of strdup
- Replacing strncpy by strnlcpy (thx hpa)

This two fixes makes pcitest.c32 working far better, no more crash when
running it twice.

I'd like to thank Sebastian Herbszt for its reports and tests.

This patch was made for 3.62-pre16 but applies fine on 3.63-pre1.

Signed-off-by:Erwan Velu <>

Les opinions et prises de position emises par le signataire du present
message lui sont propres et ne sauraient engager la responsabilite de la
societe SEANODES.

Ce message ainsi que les eventuelles pieces jointes constituent une
correspondance privee et confidentielle a l'attention exclusive du
destinataire designe ci-dessus. Si vous n'etes pas le destinataire du
present message ou une personne susceptible de pouvoir le lui delivrer, il
vous est signifie que toute divulgation, distribution ou copie de cette
transmission est strictement interdite. Si vous avez recu ce message par
erreur, nous vous remercions d'en informer l'expediteur par telephone ou de
lui retourner le present message, puis d'effacer immediatement ce message de
votre systeme.

The views and opinions expressed by the author of this message are personal.
SEANODES shall assume no liability, express or implied for such message.

This e-mail and any attachments is a confidential correspondence intended
only for use of the individual or entity named above. If you are not the
intended recipient or the agent responsible for delivering the message to
the intended recipient, you are hereby notified that any disclosure,
distribution or copying of this communication is strictly prohibited. If you
have received this communication in error, please notify the sender by phone
or by replying this message, and then delete this message from your system.

13 years agoRemove reference to readpit.c32, an experimental module
H. Peter Anvin [Sat, 8 Mar 2008 10:12:47 +0000 (11:12 +0100)]
Remove reference to readpit.c32, an experimental module

Remove reference to readpit.c32, an experimental module never intended
for release.

13 years agoUse $(CC) in gcc_ok macro, not plain gcc
H. Peter Anvin [Thu, 6 Mar 2008 06:31:00 +0000 (22:31 -0800)]
Use $(CC) in gcc_ok macro, not plain gcc

Use $(CC) in gcc_ok macro, not plain gcc.  This seems to work, iff the
gcc_ok macro is declared with =, not :=

13 years agowin32/Makefile: clean hello.exe on "make tidy"
H. Peter Anvin [Tue, 4 Mar 2008 06:10:20 +0000 (22:10 -0800)]
win32/Makefile: clean hello.exe on "make tidy"

hello.exe isn't really anything we care about; clean it up on "make tidy".

13 years agoAdd stuff to "make dist" to clean up crap that shouldn't be there
H. Peter Anvin [Tue, 4 Mar 2008 05:59:10 +0000 (21:59 -0800)]
Add stuff to "make dist" to clean up crap that shouldn't be there

13 years agoClean up .*.d files for "make tidy" in libutil
H. Peter Anvin [Tue, 4 Mar 2008 05:23:52 +0000 (21:23 -0800)]
Clean up .*.d files for "make tidy" in libutil

13 years agoThe next release on *this* branch would be 3.63 syslinux-3.63-pre1
H. Peter Anvin [Tue, 4 Mar 2008 04:19:24 +0000 (20:19 -0800)]
The next release on *this* branch would be 3.63

13 years agoPrevent inclusion of system include files when inappropriate
H. Peter Anvin [Tue, 4 Mar 2008 04:18:10 +0000 (20:18 -0800)]
Prevent inclusion of system include files when inappropriate

Use "-nostdinc -iwithprefix include" to prevent the inclusion of
system header files, but still permitting *compiler* header files.

13 years agosimple menu: break off execute() into its own source file
H. Peter Anvin [Mon, 3 Mar 2008 06:20:08 +0000 (22:20 -0800)]
simple menu: break off execute() into its own source file

Break off execute() into its own source file, with the intent of being
able to re-use it for a CLI module.

13 years agoLicense change for CPU detection modules
Erwan [Sun, 2 Mar 2008 09:09:54 +0000 (10:09 +0100)]
License change for CPU detection modules

H. Peter Anvin wrote:
> Erwan: I would have to get you to do this, since it would mean
> changing the license (trying to keep libcom32 under the BSD/MIT
> licenses), and you have them under your own copyright (as opposed to
> mine), which means I can't do this change.

Please find attached the patch to changing the license to MIT on modules
I did contribute in com32/modules/.

13 years agoMove mboot documentation to the doc/ directory
H. Peter Anvin [Sun, 2 Mar 2008 00:04:05 +0000 (16:04 -0800)]
Move mboot documentation to the doc/ directory

13 years agoFix two *.doc files which sadly didn't get renamed...
H. Peter Anvin [Sat, 1 Mar 2008 23:56:29 +0000 (15:56 -0800)]
Fix two *.doc files which sadly didn't get renamed...

13 years agoAdd a slightly edited version of SubmittingPatches. syslinux-3.62
H. Peter Anvin [Sat, 1 Mar 2008 20:46:54 +0000 (12:46 -0800)]
Add a slightly edited version of SubmittingPatches.

13 years agoDocument the file renaming from .doc -> .txt
H. Peter Anvin [Fri, 29 Feb 2008 20:02:36 +0000 (12:02 -0800)]
Document the file renaming from .doc -> .txt

13 years agoRename text documentation from *.doc to *.txt
H. Peter Anvin [Fri, 29 Feb 2008 00:04:08 +0000 (16:04 -0800)]
Rename text documentation from *.doc to *.txt

Rename plaintext documentation from doc/*.doc to doc/*.txt, to avoid
the chronic problem of web sites thinking they're in MS-Word format.
Sigh.  As if Microsoft somehow had a monopoly on the word "document".

13 years agoDon't use "syslinux.cfg" to refer to config files in general
H. Peter Anvin [Wed, 27 Feb 2008 23:09:08 +0000 (15:09 -0800)]
Don't use "syslinux.cfg" to refer to config files in general

When printing error messages about configuration files, don't
necessarily call it "syslinux.cfg".

13 years agoRemove pngtopnm dependency from the samples/ directory
H. Peter Anvin [Tue, 26 Feb 2008 22:50:05 +0000 (14:50 -0800)]
Remove pngtopnm dependency from the samples/ directory

Ship syslogo.ppm.gz instead of syslogo.png, thereby eliminating a
dependency on pngtopnm which apparently isn't installed by default on
some distros.

13 years agoextlinux: compile hack for old distros syslinux-3.62-pre16
H. Peter Anvin [Tue, 26 Feb 2008 05:10:12 +0000 (21:10 -0800)]
extlinux: compile hack for old distros

Some old distros would have <linux/fs.h> poison the namespace with a
non-glibc "struct statfs".  Hack around it.

13 years agoAllow MENU EXIT to specify a menu tag syslinux-3.62-pre15
H. Peter Anvin [Fri, 22 Feb 2008 19:16:45 +0000 (11:16 -0800)]
Allow MENU EXIT to specify a menu tag

Allow MENU EXIT to "exit" to an arbitrary menu.  This is really just a
variant of "MENU GOTO", but it allows displaying an exit marker.

13 years agoFix the handling of hotkeys in MENU LABEL on submenus syslinux-3.62-pre14
H. Peter Anvin [Fri, 22 Feb 2008 19:03:34 +0000 (11:03 -0800)]
Fix the handling of hotkeys in MENU LABEL on submenus

Two bugs:

- We didn't strip ^ symbols inheriting from MENU LABEL to MENU TITLE
- We did consider_for_hotkey() with the wrong menu (the submenu
  itself, as opposed to the parent menu.)

As part of these changes, make a function available to create an
uninitialized, mutable refstring (that can be constructed and then
used as a refstring, that is.)

13 years agoNEWS: Document Bruce Robson's Adaptec bug fix
H. Peter Anvin [Fri, 22 Feb 2008 02:49:43 +0000 (18:49 -0800)]
NEWS: Document Bruce Robson's Adaptec bug fix

13 years agorealloc(): try to protect a block in the path of a growing object syslinux-3.62-pre13
H. Peter Anvin [Fri, 22 Feb 2008 02:17:49 +0000 (18:17 -0800)]
realloc(): try to protect a block in the path of a growing object

When we realloc() a block larger, try to protect the free block
following it from being immediately allocated by something else by
placing it at the end of the freelist instead of the beginning.

13 years agorealloc(): better implementation allowing in-place growth
H. Peter Anvin [Fri, 22 Feb 2008 01:59:56 +0000 (17:59 -0800)]
realloc(): better implementation allowing in-place growth

Change the realloc() implementation to allow in-place growth.  This is
an important step in handling files without knowing their sizes a

13 years ago"begin Ymodem download" is supposed to be an imperative...
H. Peter Anvin [Wed, 20 Feb 2008 23:56:33 +0000 (15:56 -0800)]
"begin Ymodem download" is supposed to be an imperative...

13 years agoFix MENU TITLE -> MENU LABEL inheritance syslinux-3.62-pre12
H. Peter Anvin [Wed, 20 Feb 2008 02:40:37 +0000 (18:40 -0800)]
Fix MENU TITLE -> MENU LABEL inheritance

Correctly make it so MENU TITLE can be inherited upward as MENU TITLE
unless one is provided.

13 years agoMake sure color directives get attached to the proper menu.
H. Peter Anvin [Wed, 20 Feb 2008 02:34:14 +0000 (18:34 -0800)]
Make sure color directives get attached to the proper menu.

Color directives would always end up attached to the root menu, no
matter what menu declaration they where actually located in.

13 years agosimple menu: fix the handling of '+' and '-' given disabled entries
H. Peter Anvin [Wed, 20 Feb 2008 02:27:35 +0000 (18:27 -0800)]
simple menu: fix the handling of '+' and '-' given disabled entries

When encountering disabled entries, we want to keep going.  Given that
these particular keys have nonstandard scrolling, but the handling there.

13 years agoFix the scrollbar handling for insanely huge menus
H. Peter Anvin [Wed, 20 Feb 2008 02:25:08 +0000 (18:25 -0800)]
Fix the scrollbar handling for insanely huge menus

The handling of the scrollbar for insanely huge menus was broken,
causing it to disappear off the bottom of the menu window.

13 years agosimple menu: remember the cursor position on a per-menu basis
H. Peter Anvin [Wed, 20 Feb 2008 02:21:08 +0000 (18:21 -0800)]
simple menu: remember the cursor position on a per-menu basis

For each menu, remember what the current position of the cursor and
the scroll is.

13 years agoAdd support for MENU EXIT; no marker for MENU GOTO
H. Peter Anvin [Wed, 20 Feb 2008 02:14:24 +0000 (18:14 -0800)]
Add support for MENU EXIT; no marker for MENU GOTO

13 years agoWhen entering a new menu, go to the default entry for that menu.
H. Peter Anvin [Wed, 20 Feb 2008 02:13:47 +0000 (18:13 -0800)]
When entering a new menu, go to the default entry for that menu.

13 years agoDocument MENU START
H. Peter Anvin [Wed, 20 Feb 2008 01:15:18 +0000 (17:15 -0800)]

13 years agoWhitespace cleanup... syslinux-3.62-pre11
H. Peter Anvin [Wed, 20 Feb 2008 00:52:36 +0000 (16:52 -0800)]
Whitespace cleanup...

13 years agocom32: remove dependency files for "make tidy"
H. Peter Anvin [Wed, 20 Feb 2008 00:48:21 +0000 (16:48 -0800)]
com32: remove dependency files for "make tidy"

13 years agoAdd dependency generation for com32 samples.
H. Peter Anvin [Wed, 20 Feb 2008 00:47:09 +0000 (16:47 -0800)]
Add dependency generation for com32 samples.

13 years agoAdd dependency generation for com32 modules.
H. Peter Anvin [Wed, 20 Feb 2008 00:45:42 +0000 (16:45 -0800)]
Add dependency generation for com32 modules.

13 years agoAdd dependency generation for the simple menu system
H. Peter Anvin [Wed, 20 Feb 2008 00:44:52 +0000 (16:44 -0800)]
Add dependency generation for the simple menu system

13 years agoSet m->title for both root and submenus
H. Peter Anvin [Wed, 20 Feb 2008 00:42:40 +0000 (16:42 -0800)]
Set m->title for both root and submenus

13 years agoAllow MENU LABEL <-> MENU TITLE for submenus to work both ways
H. Peter Anvin [Wed, 20 Feb 2008 00:41:44 +0000 (16:41 -0800)]
Allow MENU LABEL <-> MENU TITLE for submenus to work both ways

Allow either "MENU LABEL" or "MENU TITLE" to default for each other.

13 years agoAllow an included file to be treated as a submenu.
H. Peter Anvin [Wed, 20 Feb 2008 00:37:50 +0000 (16:37 -0800)]
Allow an included file to be treated as a submenu.

13 years agoDocument hierarchial menus so far...
H. Peter Anvin [Wed, 20 Feb 2008 00:25:26 +0000 (16:25 -0800)]
Document hierarchial menus so far...

13 years agosimple menu: The use of realloc() requires indirect pointers
H. Peter Anvin [Wed, 20 Feb 2008 00:16:03 +0000 (16:16 -0800)]
simple menu: The use of realloc() requires indirect pointers

Since we store pointers to struct menu_entry, we can't put it in
storage that is subject to realloc().  Accordingly, make menu_entries
an indirect array instead.

13 years agosimple menu: first cut at working submenus
H. Peter Anvin [Tue, 19 Feb 2008 23:33:36 +0000 (15:33 -0800)]
simple menu: first cut at working submenus

With this edit, the submenu system seems to have minimal

13 years agorefstr: handle NULL in refstr[n]dup()
H. Peter Anvin [Tue, 19 Feb 2008 23:33:15 +0000 (15:33 -0800)]
refstr: handle NULL in refstr[n]dup()

13 years agoSimple menu: use refstrings consistently; now works again
H. Peter Anvin [Tue, 19 Feb 2008 22:08:50 +0000 (14:08 -0800)]
Simple menu: use refstrings consistently; now works again

Switch consistently to using refstrings; we now seem to have original
functionality back.

13 years agorefstr_get(): handle NULL, force inline
H. Peter Anvin [Tue, 19 Feb 2008 22:08:06 +0000 (14:08 -0800)]
refstr_get(): handle NULL, force inline

Make refstr_get() handle NULL correctly; force it to be an inline
since it seems to make no difference for code size.

13 years ago[v]rsprintf(): actually set the return pointer...
H. Peter Anvin [Tue, 19 Feb 2008 22:07:44 +0000 (14:07 -0800)]
[v]rsprintf(): actually set the return pointer...

13 years agosubmenu snapshot: it compiles now...
H. Peter Anvin [Tue, 19 Feb 2008 19:15:20 +0000 (11:15 -0800)]
submenu snapshot: it compiles now...

13 years agoActually implement strnlen()
H. Peter Anvin [Mon, 18 Feb 2008 23:58:01 +0000 (15:58 -0800)]
Actually implement strnlen()

Actually implement strnlen(), which was in the header files but not in
the library.

13 years agoActually implement syslinux_ipappend_strings()
H. Peter Anvin [Mon, 18 Feb 2008 23:55:53 +0000 (15:55 -0800)]
Actually implement syslinux_ipappend_strings()

Actually implement the library function syslinux_ipappend_strings(),
which had been in the header files but not in the actual library.

13 years agoSubmenu support: development snapshot
H. Peter Anvin [Sun, 17 Feb 2008 22:11:13 +0000 (14:11 -0800)]
Submenu support: development snapshot

Development snapshot before converting to refstrings

13 years agomemdump: fix typo
H. Peter Anvin [Tue, 19 Feb 2008 02:09:03 +0000 (18:09 -0800)]
memdump: fix typo

13 years agoVESA: work around bug in the Bochs VESA BIOS syslinux-3.62-pre10
H. Peter Anvin [Sun, 17 Feb 2008 03:16:40 +0000 (19:16 -0800)]
VESA: work around bug in the Bochs VESA BIOS

The Bochs VESA BIOS returns a value other than 1 for the number of
banks in unbanked modes.  Ignore the number of banks if bank_size == 0
(the spec says that for unbanked modes, banks == 1 && bank_size == 0;
for banked modes banks > 1 and bank_size != 0).

13 years agorllback: improve compression by allowing two-byte run lengths
H. Peter Anvin [Sun, 17 Feb 2008 02:44:57 +0000 (18:44 -0800)]
rllback: improve compression by allowing two-byte run lengths

With the command line size being set to 2K, it's common to need longer
runs.  Allow runs up to 8K.

13 years agoISOLINUX: Adaptec bug fix: handle the case of DL missing bit 7 syslinux-3.62-pre9
Bruce Robson [Sun, 17 Feb 2008 00:06:18 +0000 (16:06 -0800)]
ISOLINUX: Adaptec bug fix: handle the case of DL missing bit 7

Intel Classic R+ computer with Adaptec 1542CP BIOS 1.02 passes garbage
in sp_drive, and the drive number originally passed in DL does not
have 80h bit set.  Check for this case and compensate if appropriate.

13 years agoGet rid of 4096-entry limit in the simple menu system syslinux-3.62-pre8
H. Peter Anvin [Sat, 16 Feb 2008 08:32:53 +0000 (00:32 -0800)]
Get rid of 4096-entry limit in the simple menu system

Use a dynamic array instead of a static array which we would simply
crash on overflow.  Always make it a power-of-two sized so we don't
end up doing a realloc() and a full array copy on every extend.

13 years agoIf we're showing a scrollbar, always show at least one unit
H. Peter Anvin [Sat, 16 Feb 2008 08:13:50 +0000 (00:13 -0800)]
If we're showing a scrollbar, always show at least one unit

In the simple menu system, if we're showing a scrollbar at all, always
show at least one unit of it.

13 years agoPut virtual kernels (CLI labels) in high memory syslinux-3.62-pre7
H. Peter Anvin [Sat, 16 Feb 2008 06:51:46 +0000 (22:51 -0800)]
Put virtual kernels (CLI labels) in high memory

Support putting virtual kernels in high memory instead of using a
dedicated segment for it.  This both reduces the low memory footprint
by 64K, and allows for functionally unlimited labels (tested with over
a hundred thousand.)

13 years agohello.c: print arguments, no input section
H. Peter Anvin [Sat, 16 Feb 2008 06:50:29 +0000 (22:50 -0800)]
hello.c: print arguments, no input section

Make "Hello, World!" a little bit more plain, but do print out its
arguments, if any.  Useful for testing.

13 years agoDon't close the A20 gate; leave it open
H. Peter Anvin [Sat, 16 Feb 2008 06:35:18 +0000 (22:35 -0800)]
Don't close the A20 gate; leave it open

Don't close the A20 gate (restore to previous state); leave it open.
This is good for performance, but also avoids a nasty race condition
when leaving protected mode to then quickly re-enter protected mode.

13 years agoSlightly simpler to use interface to simple_pm_call
H. Peter Anvin [Sat, 16 Feb 2008 02:32:12 +0000 (18:32 -0800)]
Slightly simpler to use interface to simple_pm_call

Clean up the interface to simple_pm_call so we generally can avoid a
bunch of push/call/pop/ret boilerplate.

13 years agobcopy32: refactor the bcopy routine to be able to reuse the pm part
H. Peter Anvin [Sat, 16 Feb 2008 02:10:54 +0000 (18:10 -0800)]
bcopy32: refactor the bcopy routine to be able to reuse the pm part

Refactor the bcopy routine to be able to reuse the pm entry and exit
portion to call other "simple" protected-mode routines ("simple" in
the sense that no interrupt thunking support is present or expected.)

Note: consider whether or not it would be preferrable to move the
thunking support into low memory and have it be always present.

13 years agoVESA: suppress an unused arguments warning
H. Peter Anvin [Thu, 14 Feb 2008 08:02:43 +0000 (00:02 -0800)]
VESA: suppress an unused arguments warning

Suppress a warning about unused arguments.

13 years agoVESA: align the row buffer to a multiple of 4 bytes.
H. Peter Anvin [Thu, 14 Feb 2008 08:02:12 +0000 (00:02 -0800)]
VESA: align the row buffer to a multiple of 4 bytes.

We do dword accesses to the row buffer, so align it to 4 bytes.

13 years agoAdd __aligned() and __alignas() macros
H. Peter Anvin [Thu, 14 Feb 2008 08:01:20 +0000 (00:01 -0800)]
Add __aligned() and __alignas() macros

Add macros __aligned() (which takes a byte count), and __alignas()
(which takes a type or expression whose type is used, same as sizeof).

13 years agoVESA: Minor cleanups syslinux-3.62-pre6
H. Peter Anvin [Thu, 14 Feb 2008 06:37:33 +0000 (22:37 -0800)]
VESA: Minor cleanups

Minor cleanups for clarity

13 years agoVESA: move debugging code to separate header file
H. Peter Anvin [Thu, 14 Feb 2008 06:21:37 +0000 (22:21 -0800)]
VESA: move debugging code to separate header file

Move the debugging function to a separate header file, so we can
include it at will when convenient.

13 years agoSet the window size to 2 GB for linear framebuffer
H. Peter Anvin [Thu, 14 Feb 2008 06:17:03 +0000 (22:17 -0800)]
Set the window size to 2 GB for linear framebuffer

Set the window size to 2 GB for linear framebuffer, lest the

    l = min(bytes, win_size-win_off);

... incorrectly returns zero when win_off == 0.

13 years agoBypass pixel conversion when the output format is BGRA32
H. Peter Anvin [Thu, 14 Feb 2008 05:43:00 +0000 (21:43 -0800)]
Bypass pixel conversion when the output format is BGRA32

When the output format is BGRA32, we don't need any conversion at
all.  Skip the dummy copy.

13 years agoTreat linear framebuffer as a degenerate paged framebuffer
H. Peter Anvin [Thu, 14 Feb 2008 05:38:37 +0000 (21:38 -0800)]
Treat linear framebuffer as a degenerate paged framebuffer

Simplify the code by treating linear framebuffer as a degenerate case
of a paged framebuffer (a single window covering all of memory, which
is already in position 0 - the only possible position.)

13 years agoVESA: move pixel formatting into __vesacon_copy_to_screen() syslinux-3.62-pre5
H. Peter Anvin [Thu, 14 Feb 2008 03:00:12 +0000 (19:00 -0800)]
VESA: move pixel formatting into __vesacon_copy_to_screen()

Make pixel formatting an integral part of __vesacon_copy_to_screen().
In order to cut down on the dispatch overhead, make the formatting
functions contain the pixel loop, so we only do indirect dispatch
twice per pixel row - once for the formatting and once for copying to
the screen.

13 years agoFix the calculation of bytes_per_pixel
H. Peter Anvin [Thu, 14 Feb 2008 02:03:17 +0000 (18:03 -0800)]
Fix the calculation of bytes_per_pixel

Handle cases where __vesa_info.mi.bpp is not a multiple of 8, e.g. 15.
Remove totally redundant switch statement in vesacon_update_characters().

13 years agoReplace C version of memmove() with slightly optimized assembly
H. Peter Anvin [Thu, 14 Feb 2008 01:49:38 +0000 (17:49 -0800)]
Replace C version of memmove() with slightly optimized assembly

Replace the C version of memmove() with a slightly more optimized
assembly version that at least can do dword-sized rep moves.

13 years agoDocument support for nonlinear frame buffers. syslinux-3.62-pre4
H. Peter Anvin [Thu, 14 Feb 2008 00:08:27 +0000 (16:08 -0800)]
Document support for nonlinear frame buffers.

13 years agoVESA: Support 15-bit RGB modes.
H. Peter Anvin [Thu, 14 Feb 2008 00:06:29 +0000 (16:06 -0800)]
VESA: Support 15-bit RGB modes.

If there are manufacturers which don't support linear framebuffers out
there, then there is probably someone who want a 15-bit mode, too.

13 years agoAdd support for paged (banked) VESA video mode
H. Peter Anvin [Thu, 14 Feb 2008 00:05:06 +0000 (16:05 -0800)]
Add support for paged (banked) VESA video mode

Add support for paged ("banked", non-linear-framebuffer) VESA video
modes.  Apparently some manufacturers haven't caught on that
non-linear graphics modes have been obsolete for 15 years or so

13 years agoCorrect comment specific to SYSLINUX in the other derivatives
H. Peter Anvin [Wed, 13 Feb 2008 18:58:29 +0000 (10:58 -0800)]
Correct comment specific to SYSLINUX in the other derivatives

There was a comment which applied to SYSLINUX that had been copied
verbatim to the other derivatives; fix.

13 years agoisolinux: spec buffer size is 13h (19), not 13
H. Peter Anvin [Wed, 13 Feb 2008 18:56:39 +0000 (10:56 -0800)]
isolinux: spec buffer size is 13h (19), not 13

The El Torito spec says "13", but it's implicitly hexadecimal.  We got
it right in one place and wrong in another.  Fix.

13 years agoThe shuffle descriptors need to be unused for input *and* output syslinux-3.62-pre3
H. Peter Anvin [Wed, 13 Feb 2008 02:38:39 +0000 (18:38 -0800)]
The shuffle descriptors need to be unused for input *and* output

The memory used to hold shuffle descriptors must be unused during the
entire execution of the shuffle sequence, and therefore needs to be
free at input *and* output time.

Once we have picked a region for the shuffle descriptors, we can free
this working copy and start over with a clean memory map, the only
thing we do there is mark as reserved the memory used by the

13 years agoChange the minimum number of shuffle descriptors to 64.
H. Peter Anvin [Wed, 13 Feb 2008 00:53:20 +0000 (16:53 -0800)]
Change the minimum number of shuffle descriptors to 64.

Only use 64 as a static guarantee of the number of shuffle
descriptors; corresponding to 768 bytes of memory.

13 years agoQuery the shuffle descriptor set size and use it
H. Peter Anvin [Wed, 13 Feb 2008 00:47:39 +0000 (16:47 -0800)]
Query the shuffle descriptor set size and use it

Query the maximum number of shuffle descriptors, and use that number
as the descriptor block size.

13 years agoMove the prototypes for syslinux_shuffle_boot_*()
H. Peter Anvin [Wed, 13 Feb 2008 00:39:17 +0000 (16:39 -0800)]
Move the prototypes for syslinux_shuffle_boot_*()

Move the prototypes for syslinux_shuffle_boot_[pr]m() from
<syslinux/movebits.h> to <syslinux/boot[pr]m.h>, which anyway has the
required structure definitions.  #include <syslinux/movebits.h> in
those files instead of relying on forward structure definitions.

13 years agoA bit more exactitude in the documentation
H. Peter Anvin [Wed, 13 Feb 2008 00:05:04 +0000 (16:05 -0800)]
A bit more exactitude in the documentation

13 years agoSwitch the display file and graphics routines to using the getc stack
H. Peter Anvin [Tue, 12 Feb 2008 23:56:45 +0000 (15:56 -0800)]
Switch the display file and graphics routines to using the getc stack

The file display and graphics routines used their own file management
since the old getc code did not nest.  The new one does (necessary to
support INCLUDE), so use the same routines and get rid of the ad hoc
buffer management.

13 years agogetc: don't clobber AH; return CF=1, AL=0 on end of file
H. Peter Anvin [Tue, 12 Feb 2008 23:48:25 +0000 (15:48 -0800)]
getc: don't clobber AH; return CF=1, AL=0 on end of file

Don't clobber AH when calling getc; when returning with CF=1 (EOF),
always return with AL=0.

13 years agoNEWS: document longer command line limit. syslinux-3.62-pre2
H. Peter Anvin [Tue, 12 Feb 2008 22:11:06 +0000 (14:11 -0800)]
NEWS: document longer command line limit.

13 years agosimple menu: extend command line size to 2047 characters
H. Peter Anvin [Tue, 12 Feb 2008 22:10:13 +0000 (14:10 -0800)]
simple menu: extend command line size to 2047 characters

Extend the command line size to 2047 characters.  The editor probably
doesn't deal all that well with it; as it pretty much needs a
scrolling window of some sort (2047 characters is bigger than an 80x25

Worry about that bit later.

13 years agoChange command line limit to 2047 characters
H. Peter Anvin [Tue, 12 Feb 2008 21:09:07 +0000 (13:09 -0800)]
Change command line limit to 2047 characters

Change the command line limit to 2047 characters, which is also the
current kernel limit.  As a result, shuffle around the memory layout
to make the larger buffers fit.

TODO: consider moving vgafontbuf to getcseg, and try to make do with
fewer command line-sized buffers.

13 years agoRemove last users of getcbuf; reclaim the address space
H. Peter Anvin [Tue, 12 Feb 2008 08:32:24 +0000 (00:32 -0800)]
Remove last users of getcbuf; reclaim the address space

Remove the last few uses of getcbuf (to extend trackbuf for shuffle
descriptors, and for temp storage during pxelinux config file search.)
As a result, change the way RBFG_brainfuck is handled in pxelinux (at
some point it's probably not worth maintaining anymore, as RBFG is no
longer widely used); add a .bss2 section for the region between the
RBFG zone and the stack.

13 years agoshuffle: avoid computing block lists that will never converge
H. Peter Anvin [Tue, 12 Feb 2008 02:35:41 +0000 (18:35 -0800)]
shuffle: avoid computing block lists that will never converge

It is safe to assume that the number of moves will never decrease as
the reserved memory space increases; thus, no need to do individual
increments; skip ahead.

13 years agoDocument changes syslinux-3.62-pre1
H. Peter Anvin [Tue, 12 Feb 2008 02:00:15 +0000 (18:00 -0800)]
Document changes

13 years agoHandle arbitrary numbers of shuffle descriptors
H. Peter Anvin [Tue, 12 Feb 2008 01:55:29 +0000 (17:55 -0800)]
Handle arbitrary numbers of shuffle descriptors

Allocate high memory out of the way to hold the shuffle descriptors,
and generate continuation descriptors as needed.

13 years agocomboot: guarantee at least 256 shuffle descriptors
H. Peter Anvin [Tue, 12 Feb 2008 01:54:18 +0000 (17:54 -0800)]
comboot: guarantee at least 256 shuffle descriptors

Make a static guarantee of a minimum of 256 shuffle descriptors.

13 years agoWorking on version 3.62
H. Peter Anvin [Tue, 12 Feb 2008 01:34:21 +0000 (17:34 -0800)]
Working on version 3.62