profile/ivi/syslinux.git
15 years agoRun Nindent on com32/gdbstub/serial.h
H. Peter Anvin [Fri, 29 May 2009 22:10:21 +0000 (15:10 -0700)]
Run Nindent on com32/gdbstub/serial.h

Automatically reformat com32/gdbstub/serial.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/gdbstub/serial.c
H. Peter Anvin [Fri, 29 May 2009 22:10:21 +0000 (15:10 -0700)]
Run Nindent on com32/gdbstub/serial.c

Automatically reformat com32/gdbstub/serial.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/gdbstub/main.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/gdbstub/main.c

Automatically reformat com32/gdbstub/main.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/gdbstub/gdbstub.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/gdbstub/gdbstub.c

Automatically reformat com32/gdbstub/gdbstub.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/simple.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/simple.c

Automatically reformat com32/cmenu/simple.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/tui.h
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/tui.h

Automatically reformat com32/cmenu/libmenu/tui.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/tui.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/tui.c

Automatically reformat com32/cmenu/libmenu/tui.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/syslnx.h
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/syslnx.h

Automatically reformat com32/cmenu/libmenu/syslnx.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/syslnx.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/syslnx.c

Automatically reformat com32/cmenu/libmenu/syslnx.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/scancodes.h
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/scancodes.h

Automatically reformat com32/cmenu/libmenu/scancodes.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/passwords.h
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/passwords.h

Automatically reformat com32/cmenu/libmenu/passwords.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/passwords.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/passwords.c

Automatically reformat com32/cmenu/libmenu/passwords.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/menu.h
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/menu.h

Automatically reformat com32/cmenu/libmenu/menu.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/menu.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/menu.c

Automatically reformat com32/cmenu/libmenu/menu.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/help.h
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/help.h

Automatically reformat com32/cmenu/libmenu/help.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/help.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/help.c

Automatically reformat com32/cmenu/libmenu/help.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/des.h
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/des.h

Automatically reformat com32/cmenu/libmenu/des.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/des.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/des.c

Automatically reformat com32/cmenu/libmenu/des.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/com32io.h
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/com32io.h

Automatically reformat com32/cmenu/libmenu/com32io.h using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/libmenu/com32io.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/libmenu/com32io.c

Automatically reformat com32/cmenu/libmenu/com32io.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/display.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/display.c

Automatically reformat com32/cmenu/display.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRun Nindent on com32/cmenu/complex.c
H. Peter Anvin [Fri, 29 May 2009 22:10:20 +0000 (15:10 -0700)]
Run Nindent on com32/cmenu/complex.c

Automatically reformat com32/cmenu/complex.c using Nindent.

Do this for all files except HDT, gPXE and externally maintained
libraries (zlib, tinyjpeg, libpng).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge branch 'for-3.81'
H. Peter Anvin [Fri, 29 May 2009 06:42:49 +0000 (23:42 -0700)]
Merge branch 'for-3.81'

15 years agoisohybrid: make isolinux.bin and isohybrid two-way compatible syslinux-3.81 syslinux-3.81-pre16
H. Peter Anvin [Wed, 27 May 2009 03:29:31 +0000 (20:29 -0700)]
isohybrid: make isolinux.bin and isohybrid two-way compatible

It turns out we *can* determine if we have the extra partition offset
information after all, by looking at the value of the stack pointer.
This depends on the internals of the old isohdpfx code, but that's
really all we need to worry about.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge branch 'for-3.81'
H. Peter Anvin [Tue, 26 May 2009 16:20:05 +0000 (09:20 -0700)]
Merge branch 'for-3.81'

15 years agoisohdpfx: don't clear %ds before parsing partiting info syslinux-3.81-pre15
H. Peter Anvin [Tue, 26 May 2009 16:14:41 +0000 (09:14 -0700)]
isohdpfx: don't clear %ds before parsing partiting info

The partition information is pointed to by ds:si; although ds
will *usually* be 0 it isn't guaranteed (in particular, it may
very well be 0x40 or 0x60); therefore, move the partition parsing
up before the reset of %ds and %es.  As a side benefit, we get
to use push again...

Also, fix the ordering of the two halves of the GPT LBA!

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodoc: add the Linux kernel coding style document
H. Peter Anvin [Tue, 26 May 2009 04:45:53 +0000 (21:45 -0700)]
doc: add the Linux kernel coding style document

We expect to use Linux kernel coding style, minus the indentation
level.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNindent: indent script from the NASM project
H. Peter Anvin [Tue, 26 May 2009 04:41:43 +0000 (21:41 -0700)]
Nindent: indent script from the NASM project

Add an indentation script from the NASM project.  This is expected to
be the Syslinux coding style for the future.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisohybrid: we are backwards compatible again, change the error msg
H. Peter Anvin [Tue, 26 May 2009 04:04:09 +0000 (21:04 -0700)]
isohybrid: we are backwards compatible again, change the error msg

We are backwards compatible again, at least as long as -partok is not
used.  However, there is no minor version number, so we can't check
for that at this time.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoaltmbr: cap at 439 bytes so the partition select byte follows
H. Peter Anvin [Tue, 26 May 2009 02:13:04 +0000 (19:13 -0700)]
altmbr: cap at 439 bytes so the partition select byte follows

Cap altmbr at 439 bytes, so that the partition select byte is not part
of the file.  This means that:

a) updating the altmbr doesn't clobber the configuration;
b) it is easier to simply concatenate the select byte to the file.

This also matches gptmbr behavior.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisohybrid: revert to a stack format compatible with previous version syslinux-3.81-pre14
H. Peter Anvin [Tue, 26 May 2009 00:48:58 +0000 (17:48 -0700)]
isohybrid: revert to a stack format compatible with previous version

Revert the isohybrid handover protocol so that it has a stack format
compatible with the previous versions; that way we can also revert the
magic number to a compatible one.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocom32: add dependency on com32.ld -> *.elf syslinux-3.81-pre13
H. Peter Anvin [Mon, 25 May 2009 22:43:10 +0000 (15:43 -0700)]
com32: add dependency on com32.ld -> *.elf

All the *.elf files depend on com32.ld, so make that explicit.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNEWS: document altmbr fix
H. Peter Anvin [Mon, 25 May 2009 22:42:57 +0000 (15:42 -0700)]
NEWS: document altmbr fix

15 years agoaltmbr: fix accounting of logical partitions
H. Peter Anvin [Mon, 25 May 2009 22:37:28 +0000 (15:37 -0700)]
altmbr: fix accounting of logical partitions

Unlike the main MBR, we need to keep careful count when we process
logical partitions... and we weren't.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoDon't set the autocr flag on the serial console; clean up crap syslinux-3.81-pre12
H. Peter Anvin [Sun, 24 May 2009 02:33:36 +0000 (19:33 -0700)]
Don't set the autocr flag on the serial console; clean up crap

libutil would set the autocr flag on the serial console, which really
never was any point -- we already do \n -> \r\n conversion explicitly
in the serial code.  This was always very annoying to deal with if the
menu was interrupted.

Furthermore, drop completely unnecessary
initialization/deinitialization routines that completely duplicated
other code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: don't flush the serial port queue for a serial command
H. Peter Anvin [Sun, 24 May 2009 02:20:01 +0000 (19:20 -0700)]
core: don't flush the serial port queue for a serial command

Don't flush the serial port queue when encountering a "serial"
command.  We don't actually want to lose data due to a repeated
"serial", since it's quite likely it's exactly the same as before.

Do flush the queue on hardware cleanup, however.

Also fix some minor bugs, including a bunch of code in the .data
segment.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: add file missing from previous checkin (serirq.inc) syslinux-3.81-pre11
H. Peter Anvin [Sun, 24 May 2009 00:40:17 +0000 (17:40 -0700)]
core: add file missing from previous checkin (serirq.inc)

Add the file serirq.inc missing from previous checkin.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: remove obsolete comment
H. Peter Anvin [Sun, 24 May 2009 00:39:12 +0000 (17:39 -0700)]
core: remove obsolete comment

Remove comment about flipping A20 for each 64K block copied.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: add a proper interrupt handler for the serial console
H. Peter Anvin [Sun, 24 May 2009 00:37:18 +0000 (17:37 -0700)]
core: add a proper interrupt handler for the serial console

If we enable interrupts for the serial console, add a proper interrupt
handler.  Since we don't know what vector we'll end up using, or if we
are shared with other devices, simply hook *all* the interrupts and
poll the serial port then.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoidle: set NoHalt back to 0 as it should be syslinux-3.81-pre10
H. Peter Anvin [Thu, 21 May 2009 23:15:42 +0000 (16:15 -0700)]
idle: set NoHalt back to 0 as it should be

NoHalt was set to 1 temporarily for debugging; return it to 0.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisohybrid: add missing isohdppx.S file
H. Peter Anvin [Thu, 21 May 2009 23:07:44 +0000 (16:07 -0700)]
isohybrid: add missing isohdppx.S file

Add a file missing from previous checkin
e462c28ffaca0132c1761736bc93cb06a41dc7a6.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoDrop support for ACPI 3 E820 extended memory attributes
H. Peter Anvin [Thu, 21 May 2009 23:03:15 +0000 (16:03 -0700)]
Drop support for ACPI 3 E820 extended memory attributes

Drop all support for ACPI 3 E820 extended memory attributes.  There
are BIOSes in the field that report completely bogus information here,
resulting in no memory at all being detected (we then fall back to
E801 detection, but that is problematic in its own ways.)

There is strong reasons to believe at this point that the extended
memory attributes are not usable in their current form, so drop them
and revert back to simple 20-byte support, including for MEMDISK
spoofing.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNEWS: update isohybrid changes
H. Peter Anvin [Thu, 21 May 2009 22:39:22 +0000 (15:39 -0700)]
NEWS: update isohybrid changes

15 years agoisohybrid: support booting from partition; fix CBIOS booting
H. Peter Anvin [Thu, 21 May 2009 22:36:50 +0000 (15:36 -0700)]
isohybrid: support booting from partition; fix CBIOS booting

Fix CBIOS in isohybrid mode.  Also allow an isohybrid image to be
booted from a partition.  Unfortunately this breaks compatibility
between differing versions of isohybrid and isolinux.bin.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisohybrid: allow selecting the _c and _f versions of the prefix
H. Peter Anvin [Thu, 21 May 2009 20:34:12 +0000 (13:34 -0700)]
isohybrid: allow selecting the _c and _f versions of the prefix

Allow selecting the _f or _c versions of the prefix in addition to the
default one.  This is specified with the -forcehd0 or -ctrlhd0
options.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoidle: handle PXE stacks which improperly disable interrupts syslinux-3.81-pre9
H. Peter Anvin [Thu, 21 May 2009 17:25:43 +0000 (10:25 -0700)]
idle: handle PXE stacks which improperly disable interrupts

At least Etherboot (and all-but-super-recent versions of gPXE) PXE
ROMs improperly disable interrupts when calling an intercepted version
of INT 15h and 1Ah; this is due to the old trick of using "ret 2" to
return... this avoids resetting the flags for status, but it also
doesn't restore the value of the interrupt flag.  Needless to say,
this causes serious issues.

Work around it by adding explicit pushf/popf or STI in places known to
have issues, but also add an STI in reset_idle, and add an error alert
in do_idle if we ever get called with interrupts disabled.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agochain.c32: remove clobber of drivename/partition
H. Peter Anvin [Thu, 21 May 2009 14:22:53 +0000 (07:22 -0700)]
chain.c32: remove clobber of drivename/partition

Remove a clobber of drivename and partition, after we have spent time
computing what the should have been...

Reported-by: Luciano Miguel Ferreira Rocha <strange@nsk.no-ip.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisohybrid: add options, change default ptype to 0x17 syslinux-3.81-pre8
H. Peter Anvin [Thu, 21 May 2009 02:06:42 +0000 (19:06 -0700)]
isohybrid: add options, change default ptype to 0x17

Add support for setting a variety of options in isohybrid.  Also
change the default partition type to 0x17, "Windows hidden IFS", as
that seems to make Windows less unhappy.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNEWS: add note about linux.c32 having a quiet command
H. Peter Anvin [Wed, 20 May 2009 22:56:02 +0000 (15:56 -0700)]
NEWS: add note about linux.c32 having a quiet command

15 years agomeminfo: distinguish between no flags and flags=1 syslinux-3.81-pre7
H. Peter Anvin [Wed, 20 May 2009 22:49:36 +0000 (15:49 -0700)]
meminfo: distinguish between no flags and flags=1

For debugging reasons it's important to know if we have no flags at
all or if we get flags = 1.  Print [-] in the case of no flags at all.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoDon't run to comboot API with interrupts off syslinux-3.81-pre6
H. Peter Anvin [Mon, 18 May 2009 23:29:30 +0000 (16:29 -0700)]
Don't run to comboot API with interrupts off

We have historically run the comboot API with interrupts off due to
concerns about stack overflow.  However, this is a really bad idea: we
can easily spend a fair bit of time servicing one of these routines,
especially when doing things like waiting for I/O.

In particular, do_idle should *never* be run with interrupts disabled.

Switch to running with interrupts enabled everywhere unless we have
specific reasons not to do so.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore/conio.inc: when reading the serial port, drop read of IIR syslinux-3.81-pre5
H. Peter Anvin [Mon, 18 May 2009 21:57:37 +0000 (14:57 -0700)]
core/conio.inc: when reading the serial port, drop read of IIR

Drop the read of the IIR when reading the serial port.  First of all,
we weren't protecting AL so we clobbered the actual data; second of
all, this isn't actually necessary as reading RDR will clear the
interrupt condition per the UART spec.

It's worth noting that enabling interrupts here will do bad things if
the interrupts aren't edge-triggered (since we don't actually have an
interrupt routine to clear the interrupt condition); this also means
bad things will happen if the interrupt line is shared.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore/pxeidle.inc: fix pops with no matching push
H. Peter Anvin [Mon, 18 May 2009 21:28:18 +0000 (14:28 -0700)]
core/pxeidle.inc: fix pops with no matching push

In check_for_arp, we dropped the segment register pushes, but we need
to drop the pops, too.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoTry to HLT the processor during idle syslinux-3.81-pre4
H. Peter Anvin [Mon, 18 May 2009 20:42:19 +0000 (13:42 -0700)]
Try to HLT the processor during idle

Try to HLT the processor during idle.  All the events we care about
should have interrupts associated with them, except possibly the
serial console.  Try to deal with the serial console by waiting some
time before going into HLT, and giving the user the option of enabling
the serial console interrupt, on the assumption that the BIOS will
simply IRET.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agobcopyxx: remove 16-bitisms syslinux-3.81-pre3
H. Peter Anvin [Sun, 17 May 2009 02:07:19 +0000 (19:07 -0700)]
bcopyxx: remove 16-bitisms

Remove a couple of 16-bitisms in the bcopy code, since it is now
running in perfectly ordinary 32-bit mode.  In particular,
prefer 32-bit registers to 16-bit registers, and drop "a32" prefixes
(which do nothing.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agobcopyxx/memmove: fix alignment logic for reverse moves
H. Peter Anvin [Sun, 17 May 2009 02:02:38 +0000 (19:02 -0700)]
bcopyxx/memmove: fix alignment logic for reverse moves

The alignment logic for reverse moves is reversed, because the initial
edi, and therefore edx, points to the last byte, not to one byte
beyond the end.  Therefore, in the fully aligned case it will end in
11 binary, not in 00 binary as for the forward case.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoFix clobber of the command line when using F-keys+LSS graphics
H. Peter Anvin [Fri, 15 May 2009 23:24:34 +0000 (16:24 -0700)]
Fix clobber of the command line when using F-keys+LSS graphics

Fix a half-entered command line when getting clobbered when pressing
an F key that in turn invokes an LSS graphic.  This was used by
duplexing the command line buffer as LSS decompression space.

Allocate a separate buffer, but move the legacy graphic variables to
.bss2 to avoid overflow.

Reported-by: Михаил <from.miha@gmail.com>
Debugged-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agolinux.c32: replace the kernel name with BOOT_IMAGE= syslinux-3.81-pre2
H. Peter Anvin [Tue, 5 May 2009 20:56:49 +0000 (13:56 -0700)]
linux.c32: replace the kernel name with BOOT_IMAGE=

The BOOT_IMAGE= argument is generated by replacing the kernel name in
the argument array.  As a result, we shouldn't advance argp.  Move the
code around slightly, to make it more obvious that that is what is
happening.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agolinux.c32: honor the "quiet" flag
H. Peter Anvin [Tue, 5 May 2009 16:50:00 +0000 (09:50 -0700)]
linux.c32: honor the "quiet" flag

Honor the "quiet" flag for linux.c32, since some distros have odd
notions about these things.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agobcopyxx: EDX already points to the GDT; no reason to recompute
H. Peter Anvin [Tue, 5 May 2009 04:56:06 +0000 (21:56 -0700)]
bcopyxx: EDX already points to the GDT; no reason to recompute

We already have the EDX register pointing to the GDT, so recomputing
the address of the GDT is completely pointless.  This shaves an
additional few bytes off the bcopyxx safe area (now down to 543 bytes
including the 128-byte stack and the 15-byte alignment slop.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoload_linux.c: quiet warning
H. Peter Anvin [Tue, 5 May 2009 04:07:28 +0000 (21:07 -0700)]
load_linux.c: quiet warning

Quiet a (harmless) compiler warning.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoload_linux.c: consider a zImage kernel to be non-relocatable
H. Peter Anvin [Tue, 5 May 2009 00:36:54 +0000 (17:36 -0700)]
load_linux.c: consider a zImage kernel to be non-relocatable

It's pretty safe to say there has never been a working relocatable
Linux zImage kernel, and the semantics for them are iffy at best.
Consider zImage kernels to be non-relocatable.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoload_linux.c: when relocating, need to update code32_start
H. Peter Anvin [Tue, 5 May 2009 00:34:46 +0000 (17:34 -0700)]
load_linux.c: when relocating, need to update code32_start

The normal value for code32_start is based on the kernel load address
(in fact, it usually *is* the kernel load address); accordingly, it
needs to be updated if the kernel is relocated.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoload_linux.c: add missing header file
H. Peter Anvin [Tue, 5 May 2009 00:25:20 +0000 (17:25 -0700)]
load_linux.c: add missing header file

We need <minmax.h> for min().

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agolinux.c32: cap the stack pointer to 0xfff0
H. Peter Anvin [Tue, 5 May 2009 00:22:27 +0000 (17:22 -0700)]
linux.c32: cap the stack pointer to 0xfff0

Linux itself is fine with sp = 0 for a 64K segment, but perhaps other
things aren't.  Just to be safe, set the stack pointer to 64K-16
bytes.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNEWS: document linux.c32 fix. syslinux-3.81-pre1
H. Peter Anvin [Tue, 5 May 2009 00:17:08 +0000 (17:17 -0700)]
NEWS: document linux.c32 fix.

15 years agoshuffler: fix setting up esp in real-mode shuffles
H. Peter Anvin [Tue, 5 May 2009 00:13:16 +0000 (17:13 -0700)]
shuffler: fix setting up esp in real-mode shuffles

The value of esp set in real-mode shuffles was wrong.  This
unfortunately broke linux.c32 :(

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopoweroff: add copyright notice
Sebastian Herbszt [Mon, 4 May 2009 21:42:24 +0000 (23:42 +0200)]
poweroff: add copyright notice

Add a copyright notice.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNext version will probably be 3.81
H. Peter Anvin [Mon, 4 May 2009 21:30:53 +0000 (14:30 -0700)]
Next version will probably be 3.81

15 years agocore: remove vestiges of using nasm -f bin syslinux-3.80
H. Peter Anvin [Mon, 4 May 2009 21:12:11 +0000 (14:12 -0700)]
core: remove vestiges of using nasm -f bin

Remove a few things that are specific to NASM's "bin" backend, which
we no longer use.  Newer versions of NASM print warning messages which
are unnecessary.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNEWS: drop plans for a 3.76 release
H. Peter Anvin [Mon, 4 May 2009 21:11:41 +0000 (14:11 -0700)]
NEWS: drop plans for a 3.76 release

The aim now is for a 3.80 release instead...

15 years agoDocument poweroff module.
H. Peter Anvin [Mon, 4 May 2009 18:35:55 +0000 (11:35 -0700)]
Document poweroff module.

15 years agopoweroff COMBOOT module
Sebastian Herbszt [Mon, 4 May 2009 18:05:20 +0000 (20:05 +0200)]
poweroff COMBOOT module

This module is able to power off a system via APM.
It was tested on QEMU, Bochs and VMware.

Possible usage:

TIMEOUT 3000
TOTALTIMEOUT 9000
ONTIMEOUT poweroff.com

- Sebastian

15 years agomboot: handle ELF Multiboot kernel where paddr != vaddr
H. Peter Anvin [Mon, 4 May 2009 01:35:46 +0000 (18:35 -0700)]
mboot: handle ELF Multiboot kernel where paddr != vaddr

The way Grub handles ELF Multiboot kernels where paddr != vaddr is to
load at the paddr, but to also adjust the entry point (e_entry) so
that the previous vaddr becomes a paddr.  Since the Multiboot spec is
pretty much "Grub wins", follow this behavior.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoshuffler: when looking for temporary memory, it has to be *free!* syslinux-3.80-pre8
H. Peter Anvin [Sun, 3 May 2009 22:23:01 +0000 (15:23 -0700)]
shuffler: when looking for temporary memory, it has to be *free!*

free_area() ended up looking for any area of memory, not necessarily a
*free* area of memory.  This had predictably disastrous consequences.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomovebits: make the user-space test cases slightly easier
H. Peter Anvin [Sun, 3 May 2009 22:07:52 +0000 (15:07 -0700)]
movebits: make the user-space test cases slightly easier

Make it a bit easier to write user-space test cases; use fgets+sscanf
so comment lines end up getting ignored.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoshuffler: correctly handle one-to-many relationships syslinux-3.80-pre7
H. Peter Anvin [Sun, 3 May 2009 00:27:03 +0000 (17:27 -0700)]
shuffler: correctly handle one-to-many relationships

One-to-many relationships, in which one chunk of a file is used in
more than one place, tends to naturally show up in decoding certain
fileformats, including (but not limited to) Microsoft SDI.  Make the
shuffler library handle those cases correctly, and remove a
special-purpose hack in sdi.c.

This is based on the observation that all one-to-many relationships
can be treated as a one-to-one shuffle followed by
destination-to-destination copies; i.e. one copy is (arbitrarily)
assigned the "master copy" status, and all aliases are then copied
from the master copy when the master copy is already in its final
place.  All other copies can then be simply ignored for the duration
of the shuffle, just as zero-memory is.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoshuffle: align the shuffle safe area
H. Peter Anvin [Sun, 3 May 2009 00:26:06 +0000 (17:26 -0700)]
shuffle: align the shuffle safe area

For performance, align the shuffle safe area to a dword boundary.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agosyslinux_dump_memmap(): make it easier to spot errors
H. Peter Anvin [Sun, 3 May 2009 00:00:38 +0000 (17:00 -0700)]
syslinux_dump_memmap(): make it easier to spot errors

Instead of stopping the memmap dump on SMT_END, stop it only on a null
pointer.  That way we can see if we have any bogus entries with
SMT_END.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agosyslinux_add_memmap(): fix failures at address zero, more?
H. Peter Anvin [Sat, 2 May 2009 23:58:46 +0000 (16:58 -0700)]
syslinux_add_memmap(): fix failures at address zero, more?

syslinux_add_memmap() would fail miserably and corrupt the list if an
entry was added at address zero.  Quite possibly other addresses would
have similar problems.  Furthermore, we did an extra "optimization
pass" which should never have been necessary if the algorithm had been
correct in the first place.

This should hopefully fix ALL those bugs.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomboot: align the stack to a 16-byte boundary
H. Peter Anvin [Sat, 2 May 2009 20:55:42 +0000 (13:55 -0700)]
mboot: align the stack to a 16-byte boundary

Align the stack to a 16-byte boundary, just in case...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomboot: move setting regs.eax to mboot_run()
H. Peter Anvin [Sat, 2 May 2009 20:52:04 +0000 (13:52 -0700)]
mboot: move setting regs.eax to mboot_run()

The setting of regs.eax in map_image() doesn't really make any sense;
move it to mboot_run() instead.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomboot: move map initialization out of map_image()
H. Peter Anvin [Sat, 2 May 2009 20:47:29 +0000 (13:47 -0700)]
mboot: move map initialization out of map_image()

The amap/mmap initialization were buried randomly inside map_image(),
which at the very least makes the code needlessly hard to read.
Furthermore, it is at least possible that we may want to be able to
map multiple images in the future.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoui.inc: when looking for whitespace in kernel names look for <= ' '
H. Peter Anvin [Sat, 2 May 2009 19:25:48 +0000 (12:25 -0700)]
ui.inc: when looking for whitespace in kernel names look for <= ' '

Our somewhat generous definition of whitespace is less than or equal
to 32 (' '); we do not include 127 and 255 which are printable
characters in the PC codepages (in the latter case, NBSP.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopxechain: remove unused ipaddrbuf
Sebastian Herbszt [Sat, 2 May 2009 16:24:10 +0000 (18:24 +0200)]
pxechain: remove unused ipaddrbuf

Remove unused ipaddrbuf.

15 years agocore: make vk_rname default to mangled vk_vname
Sebastian Herbszt [Sat, 2 May 2009 17:07:15 +0000 (19:07 +0200)]
core: make vk_rname default to mangled vk_vname

Change pc_label in parseconfig.inc to default vk_rname to mangled
vk_vname.  Also change spaces to tabs.  This gives a usable error
message in the case where the user selects a label without any kernel
information.

15 years agogfxboot: increase bss alignment to 4K syslinux-3.80-pre6
H. Peter Anvin [Fri, 1 May 2009 18:10:45 +0000 (11:10 -0700)]
gfxboot: increase bss alignment to 4K

Increase the bss alignment (and therefore the alignment of buffers) to
4K rather than 512 bytes -- this in anticipation of future hard disks
with 4K sectors.  This only changes the actual bss location by 1.5K.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agogfxboot: align buffers and move them into bss
H. Peter Anvin [Fri, 1 May 2009 18:07:59 +0000 (11:07 -0700)]
gfxboot: align buffers and move them into bss

Align I/O buffers to a multiple of 512 bytes, as required by the
Syslinux ABI.  Furthermore, move them from data to bss, so that they
don't occupy space in the image file.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Acked-by: Sebastian Herbszt <herbszt@gmx.de>
15 years agoNEWS: document isohybrid fix
H. Peter Anvin [Fri, 1 May 2009 18:02:28 +0000 (11:02 -0700)]
NEWS: document isohybrid fix

15 years agoisohybrid: preserve MBR id in isohybrid
Pascal Terjan [Fri, 24 Apr 2009 17:00:05 +0000 (19:00 +0200)]
isohybrid: preserve MBR id in isohybrid

When running isohybrid again it's nice to preserve the MBR id

There was some partial code to support setting the id using non
existing to_int, but no way to use it.

Signed-off-by: Pascal Terjan <pterjan@mandriva.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisohybrid: support iso images over 2GB
Pascal Terjan [Fri, 24 Apr 2009 16:59:17 +0000 (18:59 +0200)]
isohybrid: support iso images over 2GB

"use integer" limits integers to 2^31-1 on 32 bits, which makes
imgsize to be -1 on DVD images

Signed-off-by: Pascal Terjan <pterjan@mandriva.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoDocument boot-once fix.
H. Peter Anvin [Thu, 30 Apr 2009 22:57:44 +0000 (15:57 -0700)]
Document boot-once fix.

15 years agoADV: EDD "write with verify" is AL=01h or AL=02h, not AL=80h
H. Peter Anvin [Thu, 30 Apr 2009 22:55:29 +0000 (15:55 -0700)]
ADV: EDD "write with verify" is AL=01h or AL=02h, not AL=80h

The "write with verify" functionality in EDD is AL=01h or AL=02h
depending on EDD version, not AL=80h.  Since it is apparently
version-dependent, don't even try to do it; furthermore, some BIOSes
are known to reject a write with this feature requested no matter
what.  At some point we may want to explicitly read back to verify.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocmenu: add .gitignore file
H. Peter Anvin [Thu, 30 Apr 2009 21:06:53 +0000 (14:06 -0700)]
cmenu: add .gitignore file

Add .gitignore file for .c files created from .menu files.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomboot: disable DEBUG
H. Peter Anvin [Thu, 30 Apr 2009 17:04:35 +0000 (10:04 -0700)]
mboot: disable DEBUG

Disable DEBUG in mboot.c32, which was accidentally enabled in a
previous commit.

Reported-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNEWS: update
H. Peter Anvin [Thu, 30 Apr 2009 01:49:44 +0000 (18:49 -0700)]
NEWS: update

15 years agolinux.c32: move handling of mem= and vga= into the library function syslinux-3.80-pre5
H. Peter Anvin [Thu, 30 Apr 2009 01:39:06 +0000 (18:39 -0700)]
linux.c32: move handling of mem= and vga= into the library function

Move the handling of mem= and vga= into syslinux_boot_linux(), so that
the user of that function doesn't need to worry about it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: make localboot another vkernel type syslinux-3.80-pre4
H. Peter Anvin [Wed, 29 Apr 2009 22:55:21 +0000 (15:55 -0700)]
core: make localboot another vkernel type

Change "localboot" to be another vkernel type.  It still needs some
special treatment (because it doesn't take a filename), but overall
this makes it a lot cleaner than what it was before.  It should also
avoid the problem of empty labels (e.g. menu quit) doing weird things.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoshuffle_pm: remove unused variables and includes
H. Peter Anvin [Wed, 29 Apr 2009 05:03:30 +0000 (22:03 -0700)]
shuffle_pm: remove unused variables and includes

Remove unused variables and #include statements
from syslinux_shuffle_boot_pm().

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemscan: use the contents of the ebda_seg, not the pointer itself
H. Peter Anvin [Wed, 29 Apr 2009 05:01:48 +0000 (22:01 -0700)]
memscan: use the contents of the ebda_seg, not the pointer itself

Use the contents of the ebda_seg variable, not the address...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>