profile/ivi/syslinux.git
14 years agocore: clean up SerialIRQPort when uninstalling the interrupt system
H. Peter Anvin [Sat, 5 Sep 2009 00:26:51 +0000 (17:26 -0700)]
core: clean up SerialIRQPort when uninstalling the interrupt system

Make sure SerialIRQPort is zero when there is no active interrupt
system installed.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: when enabling serial IRQs, unmask interrupts at the PIC
H. Peter Anvin [Sat, 5 Sep 2009 00:19:09 +0000 (17:19 -0700)]
core: when enabling serial IRQs, unmask interrupts at the PIC

Some BIOSes only enable interrupts in active use by the BIOS at the
PIC, which presumably don't include the serial ports.  As such, enable
the interrupt lines at the PIC and hope to $DEITY we don't hang due to
a stuck interrupt line.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: remove overzealous calls to cleanup_hardware
H. Peter Anvin [Fri, 4 Sep 2009 23:38:21 +0000 (16:38 -0700)]
core: remove overzealous calls to cleanup_hardware

cleanup_hardware is not needed in core/runkernel.inc: cleanup_hardware
is already invoked from replace_bootstrap.  Furthermore,
cleanup_hardware is defined to preserve all registers, so there is no
need to push/pop ax around it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: add missing calls to cleanup_hardware syslinux-3.83-pre10
H. Peter Anvin [Fri, 4 Sep 2009 22:46:43 +0000 (15:46 -0700)]
core: add missing calls to cleanup_hardware

As we're starting to rely more and more on a modified hardware state,
it is really important to clean up on all exit paths.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxelinux: workaround for EFI CSM bug - BEV stack overwrite on localboot
H. Peter Anvin [Fri, 4 Sep 2009 22:09:50 +0000 (15:09 -0700)]
pxelinux: workaround for EFI CSM bug - BEV stack overwrite on localboot

On at least some machines with an EFI-based BIOS, the Compatibility
Service Module (CSM) puts the BEV stack at an address where the boot
loader is likely to overwrite it.  Implement a workaround which forces
INT 18h instead if an EFI signature is detected in memory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoNEWS: update for 3.83
H. Peter Anvin [Wed, 26 Aug 2009 04:19:26 +0000 (21:19 -0700)]
NEWS: update for 3.83

14 years agohdt: enhance error reporting in the CLI (disk) syslinux-3.83-pre9
Pierre-Alexandre Meyer [Sat, 22 Aug 2009 18:08:04 +0000 (11:08 -0700)]
hdt: enhance error reporting in the CLI (disk)

parse_partition_table can fail for two reasons: disk I/O
error or unrecognized partition layout (non msdos, corrupt, ...).

In the latter case, we were displaying

   Error parsing disk 0x80
   parse_partition_table: error 0

which is confusing. We now display

   Disk 0x80: unrecognized partition layout

or the errno_disk in case of I/O errors.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agohdt: make get_error behaves like perror
Pierre-Alexandre Meyer [Sat, 22 Aug 2009 17:34:40 +0000 (10:34 -0700)]
hdt: make get_error behaves like perror

This simplifies buffer handling.

Misc.: clean some old error code handling.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agohdt: fix CLI crash when parsing unsupported geometries
Pierre-Alexandre Meyer [Sat, 22 Aug 2009 16:42:37 +0000 (09:42 -0700)]
hdt: fix CLI crash when parsing unsupported geometries

Remove extra free() calls: these were needed before the introduction
of the disklib errno. We apparently forgot to remove them.

Reported-by: Gert Hulselmans <hulselmansgert@gmail.com>
Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agohdt: 0.3.4 syslinux-3.83-pre8
erwan [Thu, 20 Aug 2009 04:24:16 +0000 (06:24 +0200)]
hdt: 0.3.4

Impact: New release

0.3.4 is now out !

14 years agohdt: fix disklib display
Pierre-Alexandre Meyer [Thu, 20 Aug 2009 04:20:40 +0000 (21:20 -0700)]
hdt: fix disklib display

We currently display the first sector after the end of an extended.
Fix it (-1).

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agodisklib: fix extended partition code
Pierre-Alexandre Meyer [Thu, 20 Aug 2009 04:12:57 +0000 (21:12 -0700)]
disklib: fix extended partition code

gert1 reported some issues using disklib with HDT. As it turned out, the
code that iterated through ebrs in an extended partition was broken: ebr offsets
need to be relative to the start of that partition.

Misc.: fix memory leak.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
Signed-off-by: Erwan Velu <erwan.velu@free.fr>
14 years agohdt: Fixing memory corruption
erwan [Wed, 19 Aug 2009 22:19:44 +0000 (00:19 +0200)]
hdt: Fixing memory corruption

Impact: Improve stability

In some case, sectors_to_size can return a 8 char long string like "1000
MiB". In such case, some buffer were corrupted.

This is now fixed by a size[9] instead of size[8].

14 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/boot/syslinux/syslinux into...
erwan [Wed, 19 Aug 2009 21:50:50 +0000 (23:50 +0200)]
Merge branch 'master' of git://git./boot/syslinux/syslinux into origin/master

14 years agoMerge commit 'pam/disklib-fixes'
Erwan Velu [Wed, 19 Aug 2009 19:17:49 +0000 (21:17 +0200)]
Merge commit 'pam/disklib-fixes'

14 years agoMEMDISK: generate map files syslinux-3.83-pre7
H. Peter Anvin [Tue, 18 Aug 2009 02:06:01 +0000 (19:06 -0700)]
MEMDISK: generate map files

Generate map files to make debugging less painful.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemdisk: make the stack size configurable
H. Peter Anvin [Mon, 17 Aug 2009 02:51:38 +0000 (19:51 -0700)]
memdisk: make the stack size configurable

Make it possible to configure the stack size on the command line,
so that we can rule that out in case of problems.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomenu: initialize cm (current menu) before empty check
H. Peter Anvin [Mon, 17 Aug 2009 19:26:08 +0000 (12:26 -0700)]
menu: initialize cm (current menu) before empty check

The empty check in the menu system used "cm", but before "cm" had
actually been initialized.  Move the "cm" initialization earlier so we
do the right thing here.

Reported-by: CKSoon <cksoon79@yahoo.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'origin/master'
H. Peter Anvin [Sat, 15 Aug 2009 00:22:01 +0000 (17:22 -0700)]
Merge commit 'origin/master'

14 years agomenu: fix Ctrl-W (word erase) when editing a command line
H. Peter Anvin [Fri, 14 Aug 2009 05:31:13 +0000 (22:31 -0700)]
menu: fix Ctrl-W (word erase) when editing a command line

The Ctrl-W (word erase) key was broken: it would think the command
line got longer, not shorter, resulting in havoc.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoRevert "Run Nindent on com32/include/pngconf.h"
H. Peter Anvin [Thu, 13 Aug 2009 22:27:46 +0000 (15:27 -0700)]
Revert "Run Nindent on com32/include/pngconf.h"

This reverts commit 6361b71f87466877f8fd1273240e8fa4460f8d05.

<pngconf.h> is part of libpng, it should never have been Nindented.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoRevert "Run Nindent on com32/include/png.h"
H. Peter Anvin [Thu, 13 Aug 2009 22:26:49 +0000 (15:26 -0700)]
Revert "Run Nindent on com32/include/png.h"

This reverts commit ab7b6c3380cd9188edbc99693d5562dcca055317.

<png.h> is part of libpng and hence externally maintained; it should
not have been Nindented.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agozlib: remove unused sample programs
H. Peter Anvin [Mon, 10 Aug 2009 18:18:12 +0000 (11:18 -0700)]
zlib: remove unused sample programs

Remove unused sample programs (example.c, minigzip.c); we don' tuse
them and they are just noise.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agozlib: kill gzio.c
H. Peter Anvin [Sun, 9 Aug 2009 22:52:26 +0000 (15:52 -0700)]
zlib: kill gzio.c

Remove gzio.c, which is a zlib-specific stdio-like interface.  We
implement this in the actual filesystem layer, which is much cleaner.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agohdt: Remove extra more_printf calls
Pierre-Alexandre Meyer [Thu, 6 Aug 2009 04:31:13 +0000 (21:31 -0700)]
hdt: Remove extra more_printf calls

Let's rather use string concatenation.

Reported-by: Shao Miller <Shao.Miller@yrdsb.edu.on.ca>
Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agogpllib: Introduce typedefs for callbacks
Pierre-Alexandre Meyer [Thu, 6 Aug 2009 04:03:04 +0000 (21:03 -0700)]
gpllib: Introduce typedefs for callbacks

typedefs are evil but useful for function pointers as it makes them more
readable and maintainable.

This fixes a bug by the way: we had

   void *callback(struct driveinfo *, struct part_entry *, int, int)

where we should have had

   void (*callback)(struct driveinfo *, struct part_entry *, int, int)

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agohdt: Don't show partition header if not needed
Pierre-Alexandre Meyer [Thu, 6 Aug 2009 02:19:59 +0000 (19:19 -0700)]
hdt: Don't show partition header if not needed

Don't blindly print the partition header: check if we are able to iterate
through them first.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agohdt: Fix disk menu to use the new disklib interfaces
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 22:59:57 +0000 (15:59 -0700)]
hdt: Fix disk menu to use the new disklib interfaces

Adapt the disk menu to use the new disklib interfaces. This fixes bugs related
to the display of partition numbering and swsusp signature.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agohdt: Make the menu and cli use the new disk interfaces
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 22:11:01 +0000 (15:11 -0700)]
hdt: Make the menu and cli use the new disk interfaces

The disklib interfaces have changed (errno_disk introduced). Update
these changes in hdt (nobody else use them).

Misc: fix get_error declaration.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agogpllib: More errno fixes
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 22:09:47 +0000 (15:09 -0700)]
gpllib: More errno fixes

 * Fix header files due to previous commit
 * Prefix disk errnos with ED to avoid conflicts with classic errno
 * Fix swsusp code to use errno_disk

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agogpllib: Enhance Makefile
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 20:49:37 +0000 (13:49 -0700)]
gpllib: Enhance Makefile

Leverage Make built-ins rather than listing manually all objects files to
compile.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agogpllib: Fix compilation
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 20:48:54 +0000 (13:48 -0700)]
gpllib: Fix compilation

ata.c was missing the inttypes.h header.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agodisklib: Change read/write interface
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 19:42:37 +0000 (12:42 -0700)]
disklib: Change read/write interface

Get rid of the error pointer and use a errno-like error reporting mechanism.
Intent is to make these more like the standard read/write system calls.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agodisklib: Fix write_verify_sectors
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 19:39:21 +0000 (12:39 -0700)]
disklib: Fix write_verify_sectors

Compare the entire chunk (all sectors), not only the first one.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agoMerge commit 'hpa/master' into for-erwan
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 03:23:16 +0000 (20:23 -0700)]
Merge commit 'hpa/master' into for-erwan

Conflicts:
com32/cmenu/libmenu/com32io.h
com32/gplinclude/dmi/dmi.h
com32/gplinclude/dmi/dmi_base_board.h
com32/gplinclude/dmi/dmi_memory.h
com32/gplinclude/dmi/dmi_system.h
com32/gpllib/dmi/dmi.c
com32/gpllib/dmi/dmi_memory.c
com32/include/sys/pci.h
com32/lib/pci/scan.c
com32/modules/Makefile

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agogpllib: refactor partitions detection
Pierre-Alexandre Meyer [Wed, 5 Aug 2009 00:35:32 +0000 (17:35 -0700)]
gpllib: refactor partitions detection

Re-implement the logic to parse extended partitions to correctly go through the
linked list of partitions.

Updated the CLI in hdt and tested it both on Qemu (Debian Lenny installation)
and on DELL E6400 (6 partitions). The output seemed sane.

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>
14 years agoNEWS: document isohybrid -id fixed.
H. Peter Anvin [Mon, 3 Aug 2009 21:14:40 +0000 (14:14 -0700)]
NEWS: document isohybrid -id fixed.

14 years agoisohybrid: convert -id to a binary string
Steffen Winterfeldt [Mon, 3 Aug 2009 13:21:02 +0000 (15:21 +0200)]
isohybrid: convert -id to a binary string

Shouldn't 'isohybrid -id ID' write ID as 32bit number? Currently it ends up
as string messing up the mbr.

14 years agomemdisk: remove unnecessary %ifdef syslinux-3.83-pre6
H. Peter Anvin [Sun, 2 Aug 2009 18:59:03 +0000 (11:59 -0700)]
memdisk: remove unnecessary %ifdef

Remove an %ifdef that the macros take care of anyway.

14 years agomemdisk: don't set CX:DX for INT 13h AH=15h for floppies
H. Peter Anvin [Sun, 2 Aug 2009 18:56:38 +0000 (11:56 -0700)]
memdisk: don't set CX:DX for INT 13h AH=15h for floppies

Win98SE DOS apparently hangs if INT 13h, AH=15h returns the capacity
in CX:DX for floppies... *unless* EDD is enabled.  Confused yet?

This patch also adds some more tracing framework.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMEMDISK: additional EDD DPT Fields
Miller, Shao [Sun, 2 Aug 2009 05:33:36 +0000 (01:33 -0400)]
MEMDISK: additional EDD DPT Fields

We incorrectly used "equ" instead of "dd" (or "db") for strings in
memdisk.inc.  Oops!  My mistake in my 'freedos' branch.  Silly
mistake.  - Shao

14 years agomemdisk: correct the types for the EDD DPT, and write a real one syslinux-3.83-pre5
H. Peter Anvin [Fri, 31 Jul 2009 15:27:58 +0000 (08:27 -0700)]
memdisk: correct the types for the EDD DPT, and write a real one

Fix the sizes of some of the fields in the EDD DPT.  Write a real one
to the best of our ability.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemdisk: don't write the EDD DPT unless we are in EDD mode...
H. Peter Anvin [Fri, 31 Jul 2009 15:24:27 +0000 (08:24 -0700)]
memdisk: don't write the EDD DPT unless we are in EDD mode...

Don't write the EDD DPT unless we're actually in EDD mode!  Otherwise
we end up corrupting memory beyond the defined code.  This was the
reason 5ca2764460883f5e9a5bd83db00f242ea1272e33 worked, by moving
variables out of the corruption zone.

Debugged-by: Shao Miller <Shao.Miller@yrdsb.edu.on.ca>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'andytim/freedos'
H. Peter Anvin [Fri, 31 Jul 2009 05:40:06 +0000 (22:40 -0700)]
Merge commit 'andytim/freedos'

14 years agographics: actually do 32-bit writes to VGA
H. Peter Anvin [Fri, 31 Jul 2009 05:27:16 +0000 (22:27 -0700)]
graphics: actually do 32-bit writes to VGA

Use "rep movsd" to copy data to VGA memory, not "rep movsb".

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years ago[memdisk] Additional EDD Device Parameter Table fields
Shao Miller [Fri, 31 Jul 2009 05:27:05 +0000 (01:27 -0400)]
[memdisk] Additional EDD Device Parameter Table fields

Some additional fields from the EDD-4 spec. draft for the Device Parameter
Table have been added into the structure in setup.c and memdisk.inc.  These
were added in the hopes of resolving a FreeDOS MEMDISK bug on IBM ThinkPads.

14 years agographics: trivial optimization of old-style graphic mode syslinux-3.83-pre4
H. Peter Anvin [Fri, 31 Jul 2009 00:44:12 +0000 (17:44 -0700)]
graphics: trivial optimization of old-style graphic mode

Trivially optimize the old-style graphics by using another level of
temporary buffering in bitplane format, thereby enabling the use of
rep movsd to write the contents to the screen.  This can speed things
up substantially in virtualization environments.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoNEWS: document Thinkpad fix syslinux-3.83-pre3
H. Peter Anvin [Thu, 30 Jul 2009 19:31:10 +0000 (12:31 -0700)]
NEWS: document Thinkpad fix

14 years agomemdisk: move temporary variables away from the EDD data block
H. Peter Anvin [Thu, 30 Jul 2009 19:28:45 +0000 (12:28 -0700)]
memdisk: move temporary variables away from the EDD data block

Move a couple of variables away from the EDD data block.  Without this
change, FreeDOS doesn't boot on Thinkpads.  Unfortunately, this should
have been a null change, so it is really not clear why this happens.
Stack overflows have been ruled out.  Probably need to examine the
FreeDOS kernel in some detail.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemdisk: handle recursive INT 13h invocation
H. Peter Anvin [Thu, 30 Jul 2009 18:24:25 +0000 (11:24 -0700)]
memdisk: handle recursive INT 13h invocation

Some systems, e.g. a lot of Thinkpads, invoke INT 13h recursively from
within the stack itself.  This is generally a bad idea as it re-runs
any INT 13h hooks (including the ones that DOS installs!), but it
should work.  Keep a counter of recursive invocations and simply
bypass the whole system including the DL shift if the invocation is
recursive.

With this, MS-DOS boots on a Thinkpad T61.  FreeDOS is still broken,
though, but apparently in a different manner...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoPXELINUX: allow filenames up to 251 characters long syslinux-3.83-pre2
H. Peter Anvin [Wed, 29 Jul 2009 03:19:14 +0000 (20:19 -0700)]
PXELINUX: allow filenames up to 251 characters long

At least one users really need this, so be nice and provide it...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'syslinux-3.83-pre1'
H. Peter Anvin [Mon, 27 Jul 2009 18:15:43 +0000 (11:15 -0700)]
Merge commit 'syslinux-3.83-pre1'

Conflicts:
com32/modules/chain.c

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoNEWS: document chain.c32 ISOLINUX fix. syslinux-3.83-pre1
H. Peter Anvin [Fri, 24 Jul 2009 00:24:13 +0000 (17:24 -0700)]
NEWS: document chain.c32 ISOLINUX fix.

14 years agochain.c32: set DL properly when loaded from ISOLINUX
H. Peter Anvin [Fri, 24 Jul 2009 00:23:04 +0000 (17:23 -0700)]
chain.c32: set DL properly when loaded from ISOLINUX

When loaded from ISOLINUX, we still have a valid boot drive.  Set it!
This permits the use of chainloaded boot loaders.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agogfxboot: remove obsolete message regarding pxelinux support
Sebastian Herbszt [Sat, 18 Jul 2009 15:06:32 +0000 (17:06 +0200)]
gfxboot: remove obsolete message regarding pxelinux support

PXELINUX is supported by the gfxboot module.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
15 years agogfxboot: parse TIMEOUT keyword
Sebastian Herbszt [Sat, 18 Jul 2009 15:05:22 +0000 (17:05 +0200)]
gfxboot: parse TIMEOUT keyword

Parse the TIMEOUT keyword from the config file and pass it to gfxboot core.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
15 years agogfxboot: only call gfxboot core if labels are specified
Sebastian Herbszt [Sat, 18 Jul 2009 15:03:29 +0000 (17:03 +0200)]
gfxboot: only call gfxboot core if labels are specified

Only call gfxboot core if labels are specified in the config file.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
15 years agogfxboot: display error message if bootlogo file not found
Sebastian Herbszt [Sat, 18 Jul 2009 15:01:19 +0000 (17:01 +0200)]
gfxboot: display error message if bootlogo file not found

Display an error message if the user specified bootlogo file is not found.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
15 years agogfxboot: change handling of keywords
Sebastian Herbszt [Sat, 18 Jul 2009 14:53:09 +0000 (16:53 +0200)]
gfxboot: change handling of keywords

Makes handling of keywords more flexible.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
15 years agodosutil/Makefile: more complete structure
H. Peter Anvin [Sun, 5 Jul 2009 21:15:12 +0000 (14:15 -0700)]
dosutil/Makefile: more complete structure

More complete and consistent structure for dosutil/Makefile.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodosutil: update mdiskchk, add Makefile
H. Peter Anvin [Sun, 5 Jul 2009 08:04:50 +0000 (01:04 -0700)]
dosutil: update mdiskchk, add Makefile

Update mdiskchk and add a Makefile.  Note that since this needs
OpenWatcom to compile, we still check in the binary file (which is
quite small, anyway.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCreate a dosutil subdirectory and move mdiskchk there
H. Peter Anvin [Sat, 27 Jun 2009 00:44:22 +0000 (17:44 -0700)]
Create a dosutil subdirectory and move mdiskchk there

DOS utilities aren't really "samples".  Create a dedicated "dosutil"
directory, and move mdiskchk there for now.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoextlinux: remove duplicate "const char *program;"
Gilles Espinasse [Sat, 20 Jun 2009 00:21:19 +0000 (17:21 -0700)]
extlinux: remove duplicate "const char *program;"

Remove redundant declaration.

15 years agoMerge branch 'syslinux-3.8x'
H. Peter Anvin [Sun, 14 Jun 2009 23:21:10 +0000 (16:21 -0700)]
Merge branch 'syslinux-3.8x'

15 years agoNEWS: document chainloading fix
H. Peter Anvin [Sun, 14 Jun 2009 23:03:54 +0000 (16:03 -0700)]
NEWS: document chainloading fix

15 years agoPXELINUX: when chaining an NBP, restore *all* registers
H. Peter Anvin [Sun, 14 Jun 2009 23:01:30 +0000 (16:01 -0700)]
PXELINUX: when chaining an NBP, restore *all* registers

On at least ASUS A8N-E, unless *all* registers are restored to pre-PXE
status, localboot doesn't work.  We were clobbering DS, ESI and EDX
when chainloading an NBP, which meant that localboot wouldn't work in
the chainloaded NBP.  Fix this.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agobootsect: zero memory above a chainloaded boot sector/NBP
H. Peter Anvin [Sun, 14 Jun 2009 21:32:42 +0000 (14:32 -0700)]
bootsect: zero memory above a chainloaded boot sector/NBP

Windows RIS has been reported to make inappropriate use of data found
in uninitialized memory.  To avoid that, clear memory between
a chainloaded boot sector or NBP and Free Base Memory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocom32.h: cleanups, make OFFS_VALID() take the pointer size into account
H. Peter Anvin [Wed, 10 Jun 2009 05:50:55 +0000 (22:50 -0700)]
com32.h: cleanups, make OFFS_VALID() take the pointer size into account

Clean up some of the constructs in com32.h, and make OFFS_VALID() take
the pointer type into account for the range check -- the whole object
needs to fit within the segment.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: don't use the stack before bootstrap
H. Peter Anvin [Tue, 9 Jun 2009 18:34:00 +0000 (11:34 -0700)]
memdisk: don't use the stack before bootstrap

Under some certain circumstances, it might not be safe to use the
stack as it was set up, so use a jump instead of a call to invoke the
bootstrap.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge commit 'syslinux-3.82'
H. Peter Anvin [Tue, 9 Jun 2009 17:49:31 +0000 (10:49 -0700)]
Merge commit 'syslinux-3.82'

Conflicts:
com32/menu/menumain.c

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopxelinux: actually stop parsing on a null option syslinux-3.82
H. Peter Anvin [Tue, 9 Jun 2009 17:19:25 +0000 (10:19 -0700)]
pxelinux: actually stop parsing on a null option

Stop the OACK parsing on a null option, even if it isn't the very
first option.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopxelinux: revert to using TFTP error 8
H. Peter Anvin [Tue, 9 Jun 2009 15:51:45 +0000 (08:51 -0700)]
pxelinux: revert to using TFTP error 8

The main reason for ERROR is OACK parsing failure, so revert to using
error code 8 (but a fixed text error.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopxelinux: cleaner test for OACK trailing null bytes
H. Peter Anvin [Tue, 9 Jun 2009 14:29:13 +0000 (07:29 -0700)]
pxelinux: cleaner test for OACK trailing null bytes

Instead of looking for a string of null bytes at the end of the OACK
string, simply abort parsing if we run into a null byte where an
option is expected; either we are seeing junk at the end of the
packet, or we are hopelessly confused about how to make sense of the
rest of the packet -- in either case, ignoring is the "liberal"
option.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoPXELINUX: handle OACK packets with extra NULs, cleaner TFTP error syslinux-3.82-pre5
H. Peter Anvin [Tue, 9 Jun 2009 05:19:41 +0000 (22:19 -0700)]
PXELINUX: handle OACK packets with extra NULs, cleaner TFTP error

There are apparently TFTP servers in the field which will send OACK
packets with extra NUL bytes appended at the end.  If we find an OACK
packet where the only thing left at some point during processing is
NULs, then just consider the packet processed.

We have reported all TFTP protocol errors as "tsize required", which
is definitely not true anymore.  Change error code to 0 (undefined)
and the error string to "TFTP error".  When this code gets converted
to C we'll do better.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: additional cleanups
H. Peter Anvin [Mon, 8 Jun 2009 03:59:52 +0000 (20:59 -0700)]
memdisk: additional cleanups

Additional stylistic cleanups.  Rename "syscall" to "intcall" (we
can't call it __intcall without clashing with com32.h); use macros
instead of copying variables to different places with only the type
being different.

Also, only change the rm/pm jump instructions when actually relocating
the code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: add missing memmove.S
H. Peter Anvin [Mon, 8 Jun 2009 01:47:35 +0000 (18:47 -0700)]
memdisk: add missing memmove.S

We need memmove.S in the memdisk directory...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: minor cleanups
H. Peter Anvin [Mon, 8 Jun 2009 01:46:59 +0000 (18:46 -0700)]
memdisk: minor cleanups

Minor cleanups to the source base; make die() also print an error
message and move die() into conio.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: relocate real-mode code before booting
H. Peter Anvin [Mon, 8 Jun 2009 01:25:09 +0000 (18:25 -0700)]
memdisk: relocate real-mode code before booting

Relocate the real-mode code before booting.  This allows the target
bootstrap to be loaded at an arbitrary address, not necessarily
0x7c00, and to be almost arbitrarily long.

Add some initial infrastructure for other bootstrap addresses, too.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: move rm_args initialization to C code; export rm_size
H. Peter Anvin [Mon, 8 Jun 2009 00:13:58 +0000 (17:13 -0700)]
memdisk: move rm_args initialization to C code; export rm_size

Move the rm_args initialization (and the associated sti) to C code.
Export the total size of the real-mode code to the protected-mode
code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: set up a limited-size real-mode stack
H. Peter Anvin [Mon, 8 Jun 2009 00:06:59 +0000 (17:06 -0700)]
memdisk: set up a limited-size real-mode stack

Limit the size of the real-mode stack.  This should limit the amount
of memory needed for a relocated real-mode code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: remove hard-coded assumptions for a specific RM segment
H. Peter Anvin [Mon, 8 Jun 2009 00:04:03 +0000 (17:04 -0700)]
memdisk: remove hard-coded assumptions for a specific RM segment

Remove some hard-coded assumptions about having an RM segment at a
specific location.  This should allow us to relocate the RM code once
the PM code knows where DOS free memory ends.  This in turn allows the
PM code to load the boot sector almost anywhere it wants to go in low
memory, as is required for 100% compliant El Torito support.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: remove the requirement that CS_BASE < 64K
H. Peter Anvin [Sun, 7 Jun 2009 22:16:24 +0000 (15:16 -0700)]
memdisk: remove the requirement that CS_BASE < 64K

Remove the requirement that CS_BASE is below 64K, based on its use in
the A20 test code.  This means it can now be located anywhere in high
memory, but it is still a constant.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: move the heap to high memory
H. Peter Anvin [Sun, 7 Jun 2009 22:12:39 +0000 (15:12 -0700)]
memdisk: move the heap to high memory

Instead of using a heap arbitrarily allocated in low memory, move it
to a chunk of bss in high memory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: don't hard-code 0:7C00 as the entry point
H. Peter Anvin [Sun, 7 Jun 2009 21:44:30 +0000 (14:44 -0700)]
memdisk: don't hard-code 0:7C00 as the entry point

Make it possible for the setup code to override SS:SP and CS:IP.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: pass in the address of the real-mode code
H. Peter Anvin [Sun, 7 Jun 2009 21:36:07 +0000 (14:36 -0700)]
memdisk: pass in the address of the real-mode code

Pass in the address of the real-mode code instead of hard-coding it in
two separate places.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: prevent buggy INT 13h from leaving IF=0 syslinux-3.82-pre4
H. Peter Anvin [Fri, 5 Jun 2009 00:24:58 +0000 (17:24 -0700)]
core: prevent buggy INT 13h from leaving IF=0

If it can happen for CD-ROM BIOSes, it can probably happen elsewhere,
too; make sure we don't leave interrupts disabled after broken INT 13h
calls.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agosimple menu: make ONTIMEOUT work with MENU HIDDEN
Sergey Vlasov [Thu, 4 Jun 2009 15:14:48 +0000 (19:14 +0400)]
simple menu: make ONTIMEOUT work with MENU HIDDEN

The command invoked when no keys were pressed for the specified time
(ONTIMEOUT) may be different from the menu item initially selected
when the menu is displayed (DEFAULT or MENU DEFAULT).  Unfortunately,
this did not work together with MENU HIDDEN (which is exactly the case
when having a separate ONTIMEOUT command makes the most sense).

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge branch 'syslinux-3.8x'
H. Peter Anvin [Mon, 1 Jun 2009 04:53:53 +0000 (21:53 -0700)]
Merge branch 'syslinux-3.8x'

Conflicts:
NEWS

15 years agobin2hex: actually account for the number of bytes written syslinux-3.82-pre3
H. Peter Anvin [Fri, 29 May 2009 22:47:20 +0000 (15:47 -0700)]
bin2hex: actually account for the number of bytes written

Unlike C, in Perl printf() doesn't return the number of bytes written.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisohdpfx: actually generate the stack frame isolinux expects syslinux-3.82-pre2
H. Peter Anvin [Mon, 1 Jun 2009 04:29:59 +0000 (21:29 -0700)]
isohdpfx: actually generate the stack frame isolinux expects

Actually generate the stack frame isolinux expects.  This is not the
optimal order, but it appears to be what both earlier and later
versions of isolinux expects...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisolinux: can't clobber edx when dx contains the drive number...
H. Peter Anvin [Mon, 1 Jun 2009 04:29:12 +0000 (21:29 -0700)]
isolinux: can't clobber edx when dx contains the drive number...

Use ebx to hold the upper half of the partition offset, not edx.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoNEWS: add changes since 3.81 syslinux-3.82-pre1
H. Peter Anvin [Mon, 1 Jun 2009 03:25:43 +0000 (20:25 -0700)]
NEWS: add changes since 3.81

15 years agocore: when calling abort_check, we're not idle
H. Peter Anvin [Mon, 1 Jun 2009 03:23:58 +0000 (20:23 -0700)]
core: when calling abort_check, we're not idle

When we call abort_check, we're not idle even though we are polling
the keyboard.  Handle that by calling reset_idle near the top.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoisolinux: bsHidden can't be in data; it is set before checksumming
H. Peter Anvin [Mon, 1 Jun 2009 03:19:33 +0000 (20:19 -0700)]
isolinux: bsHidden can't be in data; it is set before checksumming

We cannot put bsHidden in initializated data, as it is set before we
run the global checksumming.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoversion: next version will be 3.82
H. Peter Anvin [Mon, 1 Jun 2009 03:19:17 +0000 (20:19 -0700)]
version: next version will be 3.82

15 years agoisolinux: handle systems which disables interrupts in El Torito
H. Peter Anvin [Mon, 1 Jun 2009 03:13:08 +0000 (20:13 -0700)]
isolinux: handle systems which disables interrupts in El Torito

At least one system has been identified which disables interrupts when
El Torito INT 13h is executed.  Thus, save/restore IF around INT 13h.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agobin2hex: actually account for the number of bytes written
H. Peter Anvin [Fri, 29 May 2009 22:47:20 +0000 (15:47 -0700)]
bin2hex: actually account for the number of bytes written

Unlike C, in Perl printf() doesn't return the number of bytes written.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAssume the next version will be 3.82
H. Peter Anvin [Fri, 29 May 2009 22:41:43 +0000 (15:41 -0700)]
Assume the next version will be 3.82

15 years agoAdd back spaces around ellipses in case statements
H. Peter Anvin [Fri, 29 May 2009 22:25:40 +0000 (15:25 -0700)]
Add back spaces around ellipses in case statements

GNU C allows the ellipsis (...) to be used in case statements to
indicate a range.  However, it requires spaces around it to be valid.
Nindent stripped those off, put them back.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoRevert "Run Nindent on mbr/adjust.h"
H. Peter Anvin [Fri, 29 May 2009 22:22:39 +0000 (15:22 -0700)]
Revert "Run Nindent on mbr/adjust.h"

This reverts commit f3ae12c8f7a2af6656c613549555f2b08b2d9708.

adjust.h is an assembly file, not C.

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