12 years agoMEMDISK: document the pause option
H. Peter Anvin [Fri, 15 Aug 2008 01:19:23 +0000 (18:19 -0700)]
MEMDISK: document the pause option

Signed-off-by: H. Peter Anvin <>
12 years agopci: fix pci_scan()
Sebastian Herbszt [Mon, 11 Aug 2008 20:00:29 +0000 (22:00 +0200)]
pci: fix pci_scan()

Signed-off-by: H. Peter Anvin <>
12 years agopci: cosmetic fixes
Sebastian Herbszt [Mon, 11 Aug 2008 19:51:21 +0000 (21:51 +0200)]
pci: cosmetic fixes

Signed-off-by: H. Peter Anvin <>
12 years agopci: revamp the PCI system to have a hierarchial format
H. Peter Anvin [Tue, 12 Aug 2008 18:30:19 +0000 (11:30 -0700)]
pci: revamp the PCI system to have a hierarchial format

Create the concept of a PCI domain, as a hierarcy of busses, devices
and functions.  This avoids large static-sized arrays and allows for
geographical addressing of devices.

Signed-off-by: H. Peter Anvin <>
12 years agoctype.h: change extern inline to static inline
H. Peter Anvin [Tue, 12 Aug 2008 18:28:59 +0000 (11:28 -0700)]
ctype.h: change extern inline to static inline

Make -std=gnu99 happy...

Signed-off-by: H. Peter Anvin <>
12 years agostdio.h: change fflush() from "extern inline" to "static inline"
H. Peter Anvin [Tue, 12 Aug 2008 18:20:34 +0000 (11:20 -0700)]
stdio.h: change fflush() from "extern inline" to "static inline"

When compiling with -std=gnu99, apparently gcc doesn't like "extern
inline" anymore.

Signed-off-by: H. Peter Anvin <>
12 years agocom32: compile with -std=gnu99
H. Peter Anvin [Tue, 12 Aug 2008 18:18:28 +0000 (11:18 -0700)]
com32: compile with -std=gnu99

Compile with -std=gnu99, this allows us to define initializers inside
for() loops, which makes certain kinds of ugly macros easier to write.

Signed-off-by: H. Peter Anvin <>
12 years agostdio.h: revamp fread/fwrite to make gcc less unhappy
H. Peter Anvin [Tue, 12 Aug 2008 18:17:06 +0000 (11:17 -0700)]
stdio.h: revamp fread/fwrite to make gcc less unhappy

Implement the special case size == 1 in terms of a macro; this makes
gcc 4.3 less unhappy.

Signed-off-by: H. Peter Anvin <>
12 years agoMerge updated version of the gPXE code
H. Peter Anvin [Tue, 12 Aug 2008 17:34:51 +0000 (10:34 -0700)]
Merge updated version of the gPXE code

Merge gPXE up to upstream git version gpxe-0.9.3-release-197-gff2b6a5

Signed-off-by: H. Peter Anvin <>
12 years agoFix lrand48() and rand()
H. Peter Anvin [Mon, 11 Aug 2008 16:14:40 +0000 (09:14 -0700)]
Fix lrand48() and rand()

lrand48() and rand() had improper parenthesization, which caused it to
return negative values.

Spotted by Stefan Bucur :)

Signed-off-by: H. Peter Anvin <>
12 years agoAdd to .gitignore
H. Peter Anvin [Thu, 7 Aug 2008 23:10:30 +0000 (16:10 -0700)]
Add to .gitignore

12 years agocom32/lib: add zalloc()
H. Peter Anvin [Fri, 1 Aug 2008 21:03:21 +0000 (14:03 -0700)]
com32/lib: add zalloc()

Add the nonstandard, but often useful, zalloc() function.

Signed-off-by: H. Peter Anvin <>
12 years agopci: inlines for extracting part of a PCI device address
H. Peter Anvin [Fri, 1 Aug 2008 19:56:54 +0000 (12:56 -0700)]
pci: inlines for extracting part of a PCI device address

The inverse operations of pci_mkaddr()

Signed-off-by: H. Peter Anvin <>
12 years agopci: store device address
H. Peter Anvin [Fri, 1 Aug 2008 19:51:28 +0000 (12:51 -0700)]
pci: store device address

When scanning PCI devices, store the device address for reference.
Based on a patch by Sebastian Herbszt.

Signed-off-by: H. Peter Anvin <>
12 years agoMerge commit 'origin/for-3.72'
H. Peter Anvin [Fri, 1 Aug 2008 00:34:00 +0000 (17:34 -0700)]
Merge commit 'origin/for-3.72'

12 years agoversion: bump version number
H. Peter Anvin [Fri, 1 Aug 2008 00:33:19 +0000 (17:33 -0700)]
version: bump version number

Next version will presumably be 3.72...

12 years agoDocument search for MinGW syslinux-3.71
H. Peter Anvin [Fri, 1 Aug 2008 00:21:15 +0000 (17:21 -0700)]
Document search for MinGW

12 years agoDocument remaining fixes.
H. Peter Anvin [Fri, 1 Aug 2008 00:20:02 +0000 (17:20 -0700)]
Document remaining fixes.

12 years agochain.c32: error out on missing boot sector signature
H. Peter Anvin [Thu, 31 Jul 2008 02:22:07 +0000 (19:22 -0700)]
chain.c32: error out on missing boot sector signature

If we're booting a disk or partition, then error out if the loaded
sector doesn't have a boot sector signature, rather than the
otherwise-inevitable crash.

Signed-off-by: H. Peter Anvin <>
12 years agoklibc/compiler.h: add __weak macro for-3.72
H. Peter Anvin [Thu, 24 Jul 2008 02:17:08 +0000 (22:17 -0400)]
klibc/compiler.h: add __weak macro

Add a macro for weak symbols.

12 years agoklibc/compiler.h: booleanize likely/unlikely
H. Peter Anvin [Thu, 24 Jul 2008 02:15:53 +0000 (22:15 -0400)]
klibc/compiler.h: booleanize likely/unlikely

__likely() and __unlikely() should explicitly booleanize their

12 years agoSimplify and fix label string scanning
H. Peter Anvin [Tue, 22 Jul 2008 17:41:07 +0000 (13:41 -0400)]
Simplify and fix label string scanning

Simplify and fix bugs in the code to store and match label names
without filename mangling.

Signed-off-by: H. Peter Anvin <>
12 years agoparseconfig, ui: store the label name unmangled
Sebastian Herbszt [Tue, 22 Jul 2008 15:09:55 +0000 (17:09 +0200)]
parseconfig, ui: store the label name unmangled

Store the label names unmangled and match those against command_line.

- Sebastian

Signed-off-by: H. Peter Anvin <>
12 years agocore/ remove dead code syslinux-3.71-pre16
Sergey Vlasov [Tue, 22 Jul 2008 09:46:09 +0000 (13:46 +0400)]
core/ remove dead code

Signed-off-by: Sergey Vlasov <>
Signed-off-by: H. Peter Anvin <>
12 years agoFix initrd overwriting the kernel for some kernel sizes
Sergey Vlasov [Tue, 22 Jul 2008 09:46:08 +0000 (13:46 +0400)]
Fix initrd overwriting the kernel for some kernel sizes

The address in EDI returned by the load_high call used to load the
kernel needs to be passed to parse_load_initrd, but the code which
clears memory after setup sectors for 1.2.x kernels was corrupting
low 16 bits of EDI.  In most cases this corruption was not noticed,
because with usual setup sizes DI was set to 0xf800, therefore the
chance of getting the kernel size such that initrd would actually
overwrite the kernel was about 3%.

Signed-off-by: Sergey Vlasov <>
Signed-off-by: H. Peter Anvin <>
12 years agoFix loading of *.lkrn images from gPXE
Sergey Vlasov [Tue, 22 Jul 2008 09:46:07 +0000 (13:46 +0400)]
Fix loading of *.lkrn images from gPXE

Attempts to load *.lkrn images were failing with "Not enough memory
to load specified image".  These images have the su_ramdisk_max
header field set to zero, and the code in core/ was
limiting MyHighMemSize too early (before the load_high call used to
load the main part of the kernel).

Signed-off-by: Sergey Vlasov <>
Signed-off-by: H. Peter Anvin <>
12 years agovesamenu: avoid strcmp() with NULL
H. Peter Anvin [Tue, 22 Jul 2008 01:36:44 +0000 (21:36 -0400)]
vesamenu: avoid strcmp() with NULL

Avoid touching memory at address zero when going from a background to
a non-background.

12 years agopci: resize pci_device arrays syslinux-3.71-pre15
Sebastian Herbszt [Sat, 19 Jul 2008 20:26:48 +0000 (22:26 +0200)]
pci: resize pci_device arrays

pci_bus->pci_device get's populated with functions so it
should take up to MAX_PCI_DEVICES * MAX_PCI_FUNC elements.
pci_device_list->pci_device get's populated with functions
for every possible pci bus. Therefore it should take up to
Also adjust count variable types.

- Sebastian

12 years agoethersel: use library functions
Sebastian Herbszt [Sat, 19 Jul 2008 19:54:34 +0000 (21:54 +0200)]
ethersel: use library functions

Replace get_config() and execute() with syslinux_config_file() and

- Sebastian

12 years agoDocument SERIAL fix
H. Peter Anvin [Thu, 17 Jul 2008 22:18:46 +0000 (15:18 -0700)]
Document SERIAL fix

12 years agoCorrectly parse "serial" statements with no baud rate
H. Peter Anvin [Thu, 17 Jul 2008 21:54:31 +0000 (14:54 -0700)]
Correctly parse "serial" statements with no baud rate

People often don't bother specifying a baud rate for virtual serial
ports.  Handle parsing correctly.

12 years agowin32: run shell script in the current dir with ./
H. Peter Anvin [Thu, 17 Jul 2008 20:47:51 +0000 (13:47 -0700)]
win32: run shell script in the current dir with ./

Need leading ./ to run shell script in the current directory.

Signed-off-by: H. Peter Anvin <>
12 years agoisolinux: rename CurDir to CurrentDir
Sebastian Herbszt [Wed, 16 Jul 2008 23:13:48 +0000 (01:13 +0200)]
isolinux: rename CurDir to CurrentDir

ldlinux and extlinux are both using CurrentDir variable name.
Rename CurDir to make it consistent with those.

- Sebastian

12 years ago<sys/cpu.h>: asm() formatting cleanup
H. Peter Anvin [Thu, 17 Jul 2008 01:57:28 +0000 (18:57 -0700)]
<sys/cpu.h>: asm() formatting cleanup

Minor asm() formatting cleanup.

Signed-off-by: H. Peter Anvin <>
12 years ago<sys/cpu.h>: drop redundant "return"
H. Peter Anvin [Thu, 17 Jul 2008 01:56:50 +0000 (18:56 -0700)]
<sys/cpu.h>: drop redundant "return"

Drop "return" for function returning void.

Signed-off-by: H. Peter Anvin <>
12 years agocom32: move cpuid inlines to <sys/cpu.h>
H. Peter Anvin [Thu, 17 Jul 2008 01:56:01 +0000 (18:56 -0700)]
com32: move cpuid inlines to <sys/cpu.h>

<sys/cpu.h> already has most of the CPUID inlines, put them all there.
<cpuid.h> still have structures for the code that really should be
librarized at some point.

Signed-off-by: H. Peter Anvin <>
12 years agowin32: search for a mingw compiler under several names
H. Peter Anvin [Thu, 17 Jul 2008 00:01:33 +0000 (17:01 -0700)]
win32: search for a mingw compiler under several names

Search for the MinGW compiler under several names, since different
distros like to install it under different names.  What's wrong with a
simple mingw- prefix??

Signed-off-by: H. Peter Anvin <>
12 years agoifcpu64.c32: clean up the sources syslinux-3.71-pre14
H. Peter Anvin [Wed, 16 Jul 2008 22:42:20 +0000 (15:42 -0700)]
ifcpu64.c32: clean up the sources

Clean up the sources to make them easier to read.

Signed-off-by: H. Peter Anvin <>
12 years agocpuid.h: add __constfunc
H. Peter Anvin [Wed, 16 Jul 2008 22:39:40 +0000 (15:39 -0700)]
cpuid.h: add __constfunc

Add __constfunc to CPUID calls, so gcc knows it can CSE them.

Signed-off-by: H. Peter Anvin <>
12 years agocpufeature.h: remove unused macros syslinux-3.71-pre13
H. Peter Anvin [Wed, 16 Jul 2008 22:25:06 +0000 (15:25 -0700)]
cpufeature.h: remove unused macros

Remove a bunch of unused macros (from Linux) which we don't need or

Signed-off-by: H. Peter Anvin <>
12 years agoifcpu64.c32: simple module to choose a 32, 32pae, or 64-bit kernel
H. Peter Anvin [Wed, 16 Jul 2008 22:21:21 +0000 (15:21 -0700)]
ifcpu64.c32: simple module to choose a 32, 32pae, or 64-bit kernel

A very simple module to choose between a 32-bit, 32-bit PAE, or a
64-bit kernel depending on the capabilities of the CPU.

Signed-off-by: H. Peter Anvin <>
12 years agocpuid.[ch]: various cleanups
H. Peter Anvin [Wed, 16 Jul 2008 22:12:47 +0000 (15:12 -0700)]
cpuid.[ch]: various cleanups

Minor cleanups to the CPUID code

Signed-off-by: H. Peter Anvin <>
12 years agoNEWS: document ADV CBIOS fix. syslinux-3.71-pre12
H. Peter Anvin [Wed, 16 Jul 2008 18:32:09 +0000 (11:32 -0700)]
NEWS: document ADV CBIOS fix.

Signed-off-by: H. Peter Anvin <>
12 years agoadv: fix the handling of the ADV with CBIOS
H. Peter Anvin [Wed, 16 Jul 2008 18:27:00 +0000 (11:27 -0700)]
adv: fix the handling of the ADV with CBIOS

Fix numerous problems in the way we handled the ADV with CBIOS.  The
EBIOS code was largely correct, but the CBIOS code was just busted.

Signed-off-by: H. Peter Anvin <>
12 years agoparseconfig: fix invalid mangle_name assumption
H. Peter Anvin [Wed, 16 Jul 2008 18:25:57 +0000 (11:25 -0700)]
parseconfig: fix invalid mangle_name assumption

Remove assumption that mangle_name leaves DI beyond the end of the
buffer.  This was true back when the mangled filename buffer was an
11-byte DOS filename, but it is definitely not true anymore.

Signed-off-by: H. Peter Anvin <>
12 years agochain.c32: fix test for partition types which can be hidden syslinux-3.71-pre11
Sergey Vlasov [Wed, 16 Jul 2008 11:13:21 +0000 (15:13 +0400)]
chain.c32: fix test for partition types which can be hidden

The result of shift in C is undefined if the shift count is greater
than the width of type.  On x86 the corresponding CPU instruction
masks the shift count with 0x1f, therefore (mask >> (t & ~0x10)) & 1)
gives false positives for types greater than 0x1f (e.g., the partition
type 0x8e (Linux LVM) could be "hidden" to 0x9e).

Signed-off-by: Sergey Vlasov <>
Signed-off-by: H. Peter Anvin <>
12 years agochain.c32: fix bounce buffer handling
Sergey Vlasov [Wed, 16 Jul 2008 11:13:20 +0000 (15:13 +0400)]
chain.c32: fix bounce buffer handling

Fix breakage in the "hide" option support patch:

 - The code which initialized the global variable "dapa" was lost in
   commit 81c203f2, therefore EBIOS access did not work properly.
   Fixed by removing the global variable completely and moving all
   bounce buffer handling into read_sector() and write_sector().

 - write_sector() copied data to the bounce buffer, but then tried
   to use the pointer to the original buffer in BIOS calls.

Signed-off-by: Sergey Vlasov <>
Signed-off-by: H. Peter Anvin <>
12 years agogen-id: only truncate tags starting with syslinux-<version>-
H. Peter Anvin [Tue, 15 Jul 2008 23:10:46 +0000 (16:10 -0700)]
gen-id: only truncate tags starting with syslinux-<version>-

If git-describe comes up with a tag not starting with
syslinux-<version>- then leave it as-is.

12 years agoUse "git describe" in generating build signatures
H. Peter Anvin [Tue, 15 Jul 2008 23:06:14 +0000 (16:06 -0700)]
Use "git describe" in generating build signatures

We got rid of the 10-character limitation a long time ago, so we might
as well use "git describe" in generating the build signatures.

12 years agoReformat overwide comment
H. Peter Anvin [Tue, 15 Jul 2008 16:53:47 +0000 (09:53 -0700)]
Reformat overwide comment

12 years agoNEWS: KEYMAP -> KBDMAP
H. Peter Anvin [Mon, 14 Jul 2008 20:40:54 +0000 (13:40 -0700)]

12 years agokeymap, font: use readc, so we can handle indeterminate file sizes syslinux-3.71-pre10
H. Peter Anvin [Mon, 14 Jul 2008 19:44:21 +0000 (12:44 -0700)]
keymap, font: use readc, so we can handle indeterminate file sizes

The keymap and font commands still assumed that we knew the file size,
which is no longer true.  Fix that by instead using "readc" and
checking the CF.

12 years agogetc: add "readc" function to do block reads
H. Peter Anvin [Mon, 14 Jul 2008 19:43:50 +0000 (12:43 -0700)]
getc: add "readc" function to do block reads

Add "readc" function to do block reads.  Currently it just does a loop
around "call getc/stosb".

12 years agoconio: jump to loadkeys_ret in loadkeys if size not 256 bytes syslinux-3.71-pre9
Sebastian Herbszt [Mon, 14 Jul 2008 15:04:02 +0000 (17:04 +0200)]
conio: jump to loadkeys_ret in loadkeys if size not 256 bytes

Add back jump to loadkeys_ret if the file size was not 256 bytes;
inadvertently deleted when removing DX:AX 16-bitism.

12 years agoDocument unbreaking of KEYMAP syslinux-3.71-pre8
H. Peter Anvin [Sun, 13 Jul 2008 23:09:43 +0000 (16:09 -0700)]
Document unbreaking of KEYMAP

12 years agoFix residual use of DX:AX in the KEYMAP command
H. Peter Anvin [Sun, 13 Jul 2008 23:08:44 +0000 (16:08 -0700)]
Fix residual use of DX:AX in the KEYMAP command

The KEYMAP command still expected length in DX:AX, and so got broken.

12 years agochain.c32: explicitly verify after writing MBR syslinux-3.71-pre7
H. Peter Anvin [Fri, 11 Jul 2008 05:29:49 +0000 (01:29 -0400)]
chain.c32: explicitly verify after writing MBR

If we write the MBR, do verify by reading it back and comparing.
Right now all we do is print an error, though.

12 years agochain.c32: new "hide" option
H. Peter Anvin [Fri, 11 Jul 2008 05:22:15 +0000 (01:22 -0400)]
chain.c32: new "hide" option

Option for chain.c32 to hide primary partitions on the boot drive.

12 years agosyslinux.txt: update; add INITRD
H. Peter Anvin [Thu, 10 Jul 2008 00:33:15 +0000 (20:33 -0400)]
syslinux.txt: update; add INITRD

Add the INITRD statement and a few other updates.

12 years agoDocument fix for RootDir
H. Peter Anvin [Wed, 9 Jul 2008 19:56:42 +0000 (15:56 -0400)]
Document fix for RootDir

12 years agoldlinux: CurrentDir not set if syslinux.cfg is missing
Sebastian Herbszt [Wed, 9 Jul 2008 19:02:39 +0000 (21:02 +0200)]
ldlinux: CurrentDir not set if syslinux.cfg is missing

If a syslinux floppy does not contain a config file (syslinux.cfg) modules are
not being found unless specified with a directory prefix (e.g. /pcitest.c32).
The reason is that CurrentDir is only set if there is a config file present. This is a
possible regression since commit 68eefb79e2cbb590ebf958dd0c50ce00b941abd2.
Before this change RootDir was used in searchdir and now it's CurrentDir unless
the filename starts with '/'. Possible fix is to set CurrentDir to RootDir if no config
file is found.

Actually it seems better to move this to the top of the "check for config file" block.
Initialize CurrentDir to RootDir and change it if a config file is found.

- Sebastian

12 years agoMake optional, so cleaning commands work syslinux-3.71-pre6
H. Peter Anvin [Mon, 7 Jul 2008 23:11:42 +0000 (16:11 -0700)]
Make optional, so cleaning commands work

For cleaning commands, we need to be optional.

12 years agoShare the gen-id stuff between core and memdisk
H. Peter Anvin [Mon, 7 Jul 2008 22:32:21 +0000 (15:32 -0700)]
Share the gen-id stuff between core and memdisk

Both core and memdisk wants to use the gen-id stuff, so let it.

12 years agoCentralize more of the version number machinery
H. Peter Anvin [Mon, 7 Jul 2008 22:21:56 +0000 (15:21 -0700)]
Centralize more of the version number machinery

Centralize more (most) of the version number machinery to

12 years agoDrop macros that just point to other macros
H. Peter Anvin [Mon, 7 Jul 2008 22:00:56 +0000 (15:00 -0700)]
Drop macros that just point to other macros

Drop macros for "date" and "version_str", which are nothing but
redefined names of macros we already define (DATE_STR and VERSION).

12 years agocomboot: re-enable the idle call syslinux-3.71-pre5
H. Peter Anvin [Mon, 7 Jul 2008 21:54:53 +0000 (14:54 -0700)]
comboot: re-enable the idle call

Try again to enable the idle call.

12 years agopcitest: display "1 bus found" instead of "1 buses found"
Sebastian Herbszt [Mon, 7 Jul 2008 20:28:16 +0000 (22:28 +0200)]
pcitest: display "1 bus found" instead of "1 buses found"

Fix the text for pci_bus_list->count == 1 ("1 bus found").

- Sebastian

12 years agocomboot: make sure we CLD at all relevant entry points
H. Peter Anvin [Mon, 7 Jul 2008 20:20:05 +0000 (13:20 -0700)]
comboot: make sure we CLD at all relevant entry points

DF is undefined on entry, so make sure we clear it at all entry points
where it could possibly matter.

12 years add missing "section .text"
H. Peter Anvin [Mon, 7 Jul 2008 19:46:48 +0000 (12:46 -0700)] add missing "section .text"

12 years agocomboot: save/restore all the DOS vectors; handle a few more
H. Peter Anvin [Mon, 7 Jul 2008 19:43:15 +0000 (12:43 -0700)]
comboot: save/restore all the DOS vectors; handle a few more

- save and restore all the DOS vectors around COMBOOT invocations.
- handle INT 28h and INT 29h, and IRET on INT 2Dh, 2Fh, 33h.

12 years agoInclude the git ID in the build string
H. Peter Anvin [Mon, 7 Jul 2008 19:08:47 +0000 (12:08 -0700)]
Include the git ID in the build string

If we're doing an unofficial build from git, put the git id and a
dirty flag in the build string, instead of a timestamp.  This is a lot
more useful.

12 years agoAllow the initrd to be specified on a separate line syslinux-3.71-pre4
H. Peter Anvin [Fri, 4 Jul 2008 01:45:42 +0000 (18:45 -0700)]
Allow the initrd to be specified on a separate line

Allow the initrd to be specified on a separate line from command-line
options (append).  This apparently can help certain tools.

12 years agoNEWS: handle being the only floppy better.
H. Peter Anvin [Thu, 3 Jul 2008 22:32:39 +0000 (15:32 -0700)]
NEWS: handle being the only floppy better.

12 years agodoc/memdisk.txt: document INT 1Eh fields
H. Peter Anvin [Thu, 3 Jul 2008 22:29:57 +0000 (15:29 -0700)]
doc/memdisk.txt: document INT 1Eh fields

Document the fields to recover the original INT 1Eh vector.

12 years agomemdisk: install a DPT if needed in INT 1Eh; better zero-drive detection
H. Peter Anvin [Thu, 3 Jul 2008 22:22:39 +0000 (15:22 -0700)]
memdisk: install a DPT if needed in INT 1Eh; better zero-drive detection

Per the Interrupt list, treat INT 13 08 returning with CL=0 as a
failure, meaning single drive only.

If we find ourselves the only floppy drive, install a DPT into INT
1Eh.  This appears to be needed for PC-DOS 7.0 to boot.  This can be
overridden with the "nodpt" option, and forced with the "dpt" option.

12 years agomemdisk/version.h: bump copyright year
H. Peter Anvin [Thu, 3 Jul 2008 22:22:18 +0000 (15:22 -0700)]
memdisk/version.h: bump copyright year

2008, not 2007

12 years ago.gitignore: make singleton filenames absolute
H. Peter Anvin [Thu, 3 Jul 2008 22:21:36 +0000 (15:21 -0700)]
.gitignore: make singleton filenames absolute

Ignore, for example, version.h, but not memdisk/version.h

12 years agoextlinux: fix handling of /etc/mtab syslinux-3.71-pre3
H. Peter Anvin [Thu, 3 Jul 2008 02:53:58 +0000 (19:53 -0700)]
extlinux: fix handling of /etc/mtab

When we didn't find the filesystem in /proc/mounts, we would go
through /etc/mtab, but then completely botch the parsing thereof.
Move the parsing to a common function to avoid this problem.

12 years agoSimple menu: really avoid disabled entries syslinux-3.71-pre2
H. Peter Anvin [Thu, 3 Jul 2008 01:34:49 +0000 (18:34 -0700)]
Simple menu: really avoid disabled entries

Really, really try to avoid stepping on disabled entries...

12 years ago3.70 is out, next release is 3.71 syslinux-3.71-pre1
H. Peter Anvin [Tue, 1 Jul 2008 05:23:53 +0000 (22:23 -0700)]
3.70 is out, next release is 3.71

12 years agoNEWS: There never was a 3.64
H. Peter Anvin [Tue, 1 Jul 2008 05:23:05 +0000 (22:23 -0700)]
NEWS: There never was a 3.64

There was no 3.64 release; remove the heading.

12 years agocomboot: issue IRET for INT 2Fh
H. Peter Anvin [Tue, 1 Jul 2008 05:21:47 +0000 (22:21 -0700)]
comboot: issue IRET for INT 2Fh

At least one laptop exists which calls INT 2Fh from inside the BIOS!
So just point INT 2Fh to IRET, and hope that's good enough.

12 years agogPXE: Missing files from gPXE sync syslinux-3.70 syslinux-3.70-pre30
H. Peter Anvin [Mon, 30 Jun 2008 22:34:05 +0000 (15:34 -0700)]
gPXE: Missing files from gPXE sync

Files that should have been added before...

12 years agochain.c32: allow "boot" as a drive specification
H. Peter Anvin [Mon, 30 Jun 2008 22:28:16 +0000 (15:28 -0700)]
chain.c32: allow "boot" as a drive specification

Allow "boot" as the drive specification; this can be used both with
partition numbers and with loaders.

12 years agogPXE: update gPXE to get rid of gpxe/src/Config
H. Peter Anvin [Mon, 30 Jun 2008 19:37:48 +0000 (12:37 -0700)]
gPXE: update gPXE to get rid of gpxe/src/Config

gpxe/src/Config versus gpxe/src/config is a problem on case-deficient
filesystems; update to top of tree gPXE so we don't have that problem

12 years it seems to make more sense to put console first
H. Peter Anvin [Sun, 29 Jun 2008 02:09:07 +0000 (19:09 -0700)] it seems to make more sense to put console first

It seems to make more sense to put the console codepage first, since
it is the more significant of the two codepages.  It also makes more
sense in the sense.

12 years agospec: can't put anything in the /etc directory if it's not there syslinux-3.70-pre29
H. Peter Anvin [Sat, 28 Jun 2008 02:26:42 +0000 (19:26 -0700)]
spec: can't put anything in the /etc directory if it's not there

Make sure we create the /etc directory before putting something there.

12 years agogpxe/Makefile: don't remove gpxelinux.0 for "make dist"
H. Peter Anvin [Sat, 28 Jun 2008 02:20:12 +0000 (19:20 -0700)]
gpxe/Makefile: don't remove gpxelinux.0 for "make dist"

After all, "make dist" is about producing the wrapped binaries for

12 years agoBuild _bin.c files in libinstaller; clean up B/I separation
H. Peter Anvin [Sat, 28 Jun 2008 02:15:00 +0000 (19:15 -0700)]
Build _bin.c files in libinstaller; clean up B/I separation

Clean up the BSUBDIR/ISUBDIR separation further.  Build _bin.c files,
which are an intermediate stage toward building the installers, in the
libinstaller directory, since that directory is used by all the
installers anyway.  That also lets us get out of the root.

12 years agoFix "make clean", "make installer"
H. Peter Anvin [Sat, 28 Jun 2008 01:47:02 +0000 (18:47 -0700)]
Fix "make clean", "make installer"

- "make clean" should not clean up things that "make installer" cannot
- "make installer" should not descend into subdirectories which are
  target only, e.g. com32 and sample.

The Linux platform stuff in com32 is old and bitrotted, and was only
for debugging in the first place.  Just ignore it.

12 years agoUpdate gPXE to current git syslinux-3.70-pre28
H. Peter Anvin [Fri, 27 Jun 2008 22:05:14 +0000 (15:05 -0700)]
Update gPXE to current git

There are some build fixes which may be relevant, so pull in the
latest gPXE git.

12 years agogpxe: Separate rules for undionly.kpxe and gpxelinux.0
H. Peter Anvin [Fri, 27 Jun 2008 22:03:13 +0000 (15:03 -0700)]
gpxe: Separate rules for undionly.kpxe and gpxelinux.0

To avoid confusion during subdirectory make, make the undionly.kpxe ->
gpxelinux.0 conversion an explicit rule.

12 years agogPXE: [a20] Send a null command to the KBC after changing A20 syslinux-3.70-pre27
H. Peter Anvin [Fri, 27 Jun 2008 19:56:10 +0000 (12:56 -0700)]
gPXE: [a20] Send a null command to the KBC after changing A20

Send a null command, specifically "pulse outputs" with no outputs
selected, to the KBC after changing A20.  This was apparently done by
DOS, presumably as a synchronization hack, and the authors of the UHCI
spec thought it was inherent.  Therefore, there are systems out there
(e.g. HP DL360 G5) which will stop responsing to "legacy USB" unless
they see the null command, 0xFF, written to port 0x64 at the end of
the A20 toggling sequence.

Signed-off-by: H. Peter Anvin <>
12 years agoisolinux: don't clobber bp in getfssec syslinux-3.70-pre26
H. Peter Anvin [Fri, 27 Jun 2008 01:50:22 +0000 (18:50 -0700)]
isolinux: don't clobber bp in getfssec

The comapi functions get very unhappy if bp is ever clobbered, since
it uses bp as a frame pointer.

12 years agocomboot.doc -> comboot.txt syslinux-3.70-pre25
H. Peter Anvin [Fri, 27 Jun 2008 00:41:52 +0000 (17:41 -0700)]
comboot.doc -> comboot.txt

12 years agoldlinux: handle "first byte E5 change to 05" rule in FAT
H. Peter Anvin [Wed, 25 Jun 2008 20:50:50 +0000 (13:50 -0700)]
ldlinux: handle "first byte E5 change to 05" rule in FAT

FAT has a somewhat obnoxious rule: byte E5 in the first position is
encoded as 05.  If it was *always* that case we could simply fold it
into the codepage tables, but that rule applies only to the first

Note that in the common codepages (incl. 437), E5 is lower-case sigma
(σ), which we currently upper case to upper case sigma (Σ, E4)
preventing a match -- which DOS *doesn't* do (it thinks of the Greek
characters as symbols, not subject to case distinctions.)  Putting
that special case in the codepage-generation scripts seems too ugly,

12 years agocptable: error out on incorrect usage
H. Peter Anvin [Wed, 25 Jun 2008 19:14:05 +0000 (12:14 -0700)]
cptable: error out on incorrect usage

12 years agoAdd more codepage data; support disjoint mappings
H. Peter Anvin [Wed, 25 Jun 2008 19:10:44 +0000 (12:10 -0700)]
Add more codepage data; support disjoint mappings

Add additional codepage data from the Unicode Consortium.
Additionally, add support for generating codepage files for the case
where the filesystem codepage and the display codepage do not match.
The standard Makefile doesn't actually do that, however.

12 years agoextlinux: Fix comment
H. Peter Anvin [Wed, 25 Jun 2008 01:06:09 +0000 (18:06 -0700)]
extlinux: Fix comment

"Bytes left" should be "bytes read"

12 years agomboot.c32: no need to include the ANSI engine syslinux-3.70-pre24
H. Peter Anvin [Tue, 24 Jun 2008 22:28:40 +0000 (15:28 -0700)]
mboot.c32: no need to include the ANSI engine

We don't need the ANSI engine in mboot.c32.