platform/upstream/syslinux.git
14 years agomemdisk: make mstructs.h includable from Linux
H. Peter Anvin [Tue, 22 Jun 2010 00:29:11 +0000 (17:29 -0700)]
memdisk: make mstructs.h includable from Linux

Make mstructs.h includable from a Linux utility.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoutils/Makefile: fix build rules
H. Peter Anvin [Tue, 22 Jun 2010 00:18:02 +0000 (17:18 -0700)]
utils/Makefile: fix build rules

Fix isohybrid build rules.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoisohybrid: fix beginner mistakes
H. Peter Anvin [Tue, 22 Jun 2010 00:17:33 +0000 (17:17 -0700)]
isohybrid: fix beginner mistakes

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agocore: Make cfarcall IF-preserving
H. Peter Anvin [Mon, 21 Jun 2010 22:59:40 +0000 (15:59 -0700)]
core: Make cfarcall IF-preserving

cfarcall does not take a register image on input, so we need to
explicitly preserve IF in the code flow.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agocom32: make __farcall() IF-preserving
H. Peter Anvin [Mon, 21 Jun 2010 22:58:57 +0000 (15:58 -0700)]
com32: make __farcall() IF-preserving

Make __farcall preserve the current value of IF.  If we need to we can
create a __raw_farcall() operation which does not.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agolinux installer: better error message for missing /tmp
George David [Mon, 21 Jun 2010 22:16:58 +0000 (16:16 -0600)]
linux installer: better error message for missing /tmp

Our linux distribution at my job didn't include a /tmp directory. When ever
I tried to use syslinux, I would get the following error:

./syslinux: No such file or directory

I modified the code to report this:

./syslinux: Cannot access the /tmp/ directory.

This would have helped me a lot rather than having to download the source
and run it through the debugger to figure out that my /tmp/ directory was
missing. I suspect if this ever happens again I'll know exactly what was
wrong, but hopefully it will help someone else.

14 years agocomboot: allow the read disk API call to specify a 64-bit LBA
H. Peter Anvin [Mon, 21 Jun 2010 22:12:48 +0000 (15:12 -0700)]
comboot: allow the read disk API call to specify a 64-bit LBA

We already had two MBZ fields reserved, so use one of them to expand
into a 64-bit LBA.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agocore, adv: for CHS mode, the top 40 LBA bits must be zero
H. Peter Anvin [Mon, 21 Jun 2010 22:14:45 +0000 (15:14 -0700)]
core, adv: for CHS mode, the top 40 LBA bits must be zero

The top 40 bits of the LBA must be zero on CHS mode.  Enforce this,
and also fix leak of the drive number into a divide instruction with
resulting overflow.

Reported-by: Gert Hulselmans <gerth@zytor.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agopxelinux: use alignb not alignz in a bss sections
H. Peter Anvin [Mon, 21 Jun 2010 22:14:19 +0000 (15:14 -0700)]
pxelinux: use alignb not alignz in a bss sections

In .bss sections use alignb, not alignz.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agodiskstart: fix CHS mode, reinstate cyl 1023 check syslinux-4.00-pre55
H. Peter Anvin [Mon, 21 Jun 2010 17:39:38 +0000 (10:39 -0700)]
diskstart: fix CHS mode, reinstate cyl 1023 check

Fix loading in CHS mode; we were missing a popad.  Also reinstate the
check for exceeding cylinder 1023.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodiskstart: clean up GPT handling
H. Peter Anvin [Mon, 21 Jun 2010 17:23:20 +0000 (10:23 -0700)]
diskstart: clean up GPT handling

We only need 56 bytes, not 92, and we should check for 0xED as the
partition type.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodns: don't get stuck on no packet received syslinux-4.00-pre54
H. Peter Anvin [Mon, 21 Jun 2010 17:11:59 +0000 (10:11 -0700)]
dns: don't get stuck on no packet received

Make sure the timeout actually gets processed.  The right thing to do
for the receive loop is to check for timeout, then try to receive, and
loop until an acceptable packet has been received; we might as well do
that explicitly.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: Preserve IF through call16()
H. Peter Anvin [Mon, 21 Jun 2010 17:03:03 +0000 (10:03 -0700)]
core: Preserve IF through call16()

An intcall should always be invoked with interrupts off, but that is
not necessarily the case for a near or far call; in fact it is quite
the exception.  As such, do not filter IF in our register image, and
for our own internal call16() interface, propagate the protected-mode
IF value into real mode, just as we do for the pm_call interface.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: fix handling of lost packets in DNS resolution
H. Peter Anvin [Mon, 21 Jun 2010 07:19:37 +0000 (00:19 -0700)]
pxe: fix handling of lost packets in DNS resolution

When we have lost packets in DNS resolution, or otherwise no
response, both rotate through the known servers and advance through
the timeout table.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: properly null-terminate packet after tftp://
H. Peter Anvin [Mon, 21 Jun 2010 07:18:08 +0000 (00:18 -0700)]
pxe: properly null-terminate packet after tftp://

Properly null-terminate the output from a parsed tftp:// URL.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: correct the parsing of tftp:// URLs
H. Peter Anvin [Mon, 21 Jun 2010 05:59:51 +0000 (22:59 -0700)]
pxe: correct the parsing of tftp:// URLs

Correct the parsing of tftp:// URLs.  DNS handling still needs to be
unbroken.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: don't misidentify non-tftp URLs as tftp
H. Peter Anvin [Mon, 21 Jun 2010 01:42:43 +0000 (18:42 -0700)]
pxe: don't misidentify non-tftp URLs as tftp

Fix reversed test for tftp URLs

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: align the EPA syslinux-4.00-pre53
H. Peter Anvin [Mon, 21 Jun 2010 00:03:38 +0000 (17:03 -0700)]
core: align the EPA

Align the Extended Patch Area.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge syslinux/extlinux patch code and core code
H. Peter Anvin [Mon, 21 Jun 2010 00:01:15 +0000 (17:01 -0700)]
Merge syslinux/extlinux patch code and core code

Merge the SYSLINUX and EXTLINUX patching code and core code, removing
EXTLINUX as a separate derivative.  All the disk-based systems now use
the same code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoReduce sector 1 space pressure; further merge installer code syslinux-4.00-pre52
H. Peter Anvin [Sun, 20 Jun 2010 22:21:05 +0000 (15:21 -0700)]
Reduce sector 1 space pressure; further merge installer code

Reduce sector 1 space pressure by moving objects that aren't needed by
Sector 1 proper into an "extended patch area".  While we're mucking
with the installer code, make the syslxint and extlinux installer code
even more similar.  It should now be pretty straightforward to
outright merge the code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofat: fix off-by-one error in the FAT installer syslinux-4.00-pre51
H. Peter Anvin [Sun, 20 Jun 2010 21:00:57 +0000 (14:00 -0700)]
fat: fix off-by-one error in the FAT installer

Fix off-by-one error in the FAT installer, which caused the install to
incorrectly abort without the patched version of the data.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agolinux/syslinux: handle the null pathname case
H. Peter Anvin [Sun, 20 Jun 2010 03:58:25 +0000 (20:58 -0700)]
linux/syslinux: handle the null pathname case

Fix mishandling of the null pathname case in the syslinux installer,
and generally clean up the handling of the subpath name.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge remote branch 'sha0/for_hpa' into pathbased
H. Peter Anvin [Sun, 20 Jun 2010 02:08:39 +0000 (19:08 -0700)]
Merge remote branch 'sha0/for_hpa' into pathbased

14 years agoMerge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into...
H. Peter Anvin [Sun, 20 Jun 2010 02:05:45 +0000 (19:05 -0700)]
Merge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into pathbased

14 years agopxe: mark ipinfo as IPv4
H. Peter Anvin [Sat, 19 Jun 2010 02:05:10 +0000 (19:05 -0700)]
pxe: mark ipinfo as IPv4

IP information is IPv4 for now.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoMerge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into... syslinux-4.00-pre50
H. Peter Anvin [Sat, 19 Jun 2010 01:45:02 +0000 (18:45 -0700)]
Merge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into pathbased

14 years agocore, pxe: remove stray debugging printf
H. Peter Anvin [Sat, 19 Jun 2010 01:30:44 +0000 (18:30 -0700)]
core, pxe: remove stray debugging printf

Remove debugging printf added for testing.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosysdump: dump ACPI information
H. Peter Anvin [Sat, 19 Jun 2010 01:28:43 +0000 (18:28 -0700)]
sysdump: dump ACPI information

Dump ACPI tables.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosysdump: use lmalloc/lfree
H. Peter Anvin [Sat, 19 Jun 2010 01:27:55 +0000 (18:27 -0700)]
sysdump: use lmalloc/lfree

Use lmalloc/lfree instead of using the fixed (obsolete) bounce buffer.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosysdump: tftp: use lmalloc(), and set the gateway
H. Peter Anvin [Sat, 19 Jun 2010 01:24:14 +0000 (18:24 -0700)]
sysdump: tftp: use lmalloc(), and set the gateway

Use lmalloc() rather than the fixed (obsolete) bounce buffer, and set
the gateway for PXE stacks that need it.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agopxe: centralize all the IP information and export it to modules
H. Peter Anvin [Sat, 19 Jun 2010 01:16:48 +0000 (18:16 -0700)]
pxe: centralize all the IP information and export it to modules

It appears that there still are PXE stacks in the field which needs
the crutch of being pointed to the default gateway.  As such, put all
the IP information into a single memory structure and allow modules to
see it.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoMerge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into...
H. Peter Anvin [Fri, 18 Jun 2010 01:09:46 +0000 (18:09 -0700)]
Merge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into pathbased

14 years agoMerge remote branch 'sha0/boot_args' into pathbased
H. Peter Anvin [Thu, 17 Jun 2010 18:45:14 +0000 (11:45 -0700)]
Merge remote branch 'sha0/boot_args' into pathbased

14 years agoeltorito: Scan upwards instead of downwards
Shao Miller [Fri, 11 Jun 2010 04:15:19 +0000 (04:15 +0000)]
eltorito: Scan upwards instead of downwards

A developer for GRUB4DOS called tinybit has reported that some
BIOSes crash when the DOS ElTorito.Sys driver scans drive number
0xFF.  According to the El Torito specification, drive 0x7F
means "terminate all," so a plausible explanation suggested
by H. Peter Anvin is that the drive 0xFF is a shadow of drive
0x7F, thus contributing to a failure on these BIOSes.

Now we scan from 0x80 through 0xFF, instead.

[ hpa: dropped checkin of eltorito.sys ]

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoMerge remote branch 'sha0/mdiskchk_enh2' into pathbased
H. Peter Anvin [Thu, 17 Jun 2010 18:41:15 +0000 (11:41 -0700)]
Merge remote branch 'sha0/mdiskchk_enh2' into pathbased

14 years agoMerge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into... syslinux-4.00-pre49
H. Peter Anvin [Wed, 16 Jun 2010 18:45:32 +0000 (11:45 -0700)]
Merge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into pathbased

14 years agoMove Linux ioctl header magic into a single file
H. Peter Anvin [Wed, 16 Jun 2010 18:44:27 +0000 (11:44 -0700)]
Move Linux ioctl header magic into a single file

Put all the Linux ioctl header magic into a single shared file, and
try to make it as generally useful as possible.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoinstaller: fix use of FIEMAP
H. Peter Anvin [Wed, 16 Jun 2010 00:24:32 +0000 (17:24 -0700)]
installer: fix use of FIEMAP

Correct the implementation of block mapping using FIEMAP (as opposed
to FIBMAP).

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoextlinux: don't compile with -O0
H. Peter Anvin [Wed, 16 Jun 2010 00:15:02 +0000 (17:15 -0700)]
extlinux: don't compile with -O0

-O0 is good for debugging, but sucks for production.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agodos: fix get_64_sl() and set_64_sl()
H. Peter Anvin [Tue, 15 Jun 2010 23:49:41 +0000 (16:49 -0700)]
dos: fix get_64_sl() and set_64_sl()

We must make sure we actually use the modified pointer returned from
set_fs(), otherwise bad things happen...

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoMerge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into... syslinux-4.00-pre48
H. Peter Anvin [Tue, 15 Jun 2010 23:26:43 +0000 (16:26 -0700)]
Merge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into pathbased

14 years agoFix prototype for generate_extents
H. Peter Anvin [Tue, 15 Jun 2010 23:26:14 +0000 (16:26 -0700)]
Fix prototype for generate_extents

Add missing const

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosyslinux: synchronize generate_extents() with extlinux
H. Peter Anvin [Tue, 15 Jun 2010 23:24:57 +0000 (16:24 -0700)]
syslinux: synchronize generate_extents() with extlinux

Synchronize the code for generate_extents() from extlinux to syslinux.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoextlinux: remove debugging printf's
H. Peter Anvin [Tue, 15 Jun 2010 23:23:41 +0000 (16:23 -0700)]
extlinux: remove debugging printf's

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoMerge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into...
H. Peter Anvin [Tue, 15 Jun 2010 23:21:17 +0000 (16:21 -0700)]
Merge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into pathbased

14 years agoSwitch to 64-bit sector pointers everywhere
H. Peter Anvin [Tue, 15 Jun 2010 23:18:24 +0000 (16:18 -0700)]
Switch to 64-bit sector pointers everywhere

Switch to consistent use of 64-bit sector pointers; this should enable
booting even for individual *partitions* larger than 2 TB.  In order
to not slow down the boot too much, switch the initial load from an
enumeration to an extent map.  This means the table gets larger (since
we have to assume the worst case), but it simplifies the Sector 1 code
(since we can push all the hard stuff into the installer), and will
speed up booting in the general case.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agomdiskchk: Add --no-sequential mode
Shao Miller [Tue, 15 Jun 2010 04:34:20 +0000 (00:34 -0400)]
mdiskchk: Add --no-sequential mode

It might be useful to suppress MDISKCHK.COM's classic behaviour
of probing all BIOS drive numbers in search of MEMDISKs.  Some BIOSes
might not enjoy being probed.

Reported-by: bylokk
Reported-by: Gert Hulselmans <gerth@zytor.com>
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agomemdisk: Correct El Torito termination response
Shao Miller [Tue, 15 Jun 2010 03:36:34 +0000 (23:36 -0400)]
memdisk: Correct El Torito termination response

Two changes to the INT 0x13, AH=0x7B El Torito function:

1. Support the DL=0x7F "terminate all" parameter
2. Only respond to DL=0x7F or DL=our particular emulated drive number

This prevents tools like Bart Lagerweij's El Torito tools from
receiving false positives when probing all drive numbers.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agoeltorito: Include drive 0xFF in scan
Shao Miller [Mon, 14 Jun 2010 22:50:56 +0000 (18:50 -0400)]
eltorito: Include drive 0xFF in scan

Although drive 0xFF could yield a false positive as the El Torito
booted-from drive number, some users of GRUB4DOS actually use
this drive number, so we should include it in our scan.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agoMerge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into...
H. Peter Anvin [Tue, 15 Jun 2010 00:34:24 +0000 (17:34 -0700)]
Merge branch 'pathbased' of ssh://terminus.zytor.com/pub/git/syslinux/syslinux into pathbased

14 years agocore: add hlt to infinite loop
H. Peter Anvin [Mon, 14 Jun 2010 22:43:40 +0000 (15:43 -0700)]
core: add hlt to infinite loop

We should never hit it, but if we do, don't burn the CPU to a crisp.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoImplement !GPT protocol in Syslinux core; handle offset > 2 TB
H. Peter Anvin [Mon, 14 Jun 2010 22:38:35 +0000 (15:38 -0700)]
Implement !GPT protocol in Syslinux core; handle offset > 2 TB

Implement the !GPT handover protocol in the Syslinux core, and handle
partition offsets above 2 TB.  We do not yet handle filesystem sizes
above 2 TB, but that should be a reasonably straightforward extension
at this time (need to switch to 8-byte block pointers).

This finally meant moving getlinsec out of the boot sector, since it
no longer fits.  Instead have a very simple getonesec implementation
in the boot sector.  getlinsec still fits in Sector 1, although it
doesn't leave space for very many block pointers.  That's still better
than adding yet another boot loader stage, however.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agogptmbr: change synthetic partition type to 0xED
H. Peter Anvin [Mon, 14 Jun 2010 16:58:01 +0000 (09:58 -0700)]
gptmbr: change synthetic partition type to 0xED

The committee didn't like re-using 0xEE for this purpose and wants
0xED instead.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge remote branch 'sherbszt/gfxboot32' into pathbased
H. Peter Anvin [Sun, 13 Jun 2010 22:55:27 +0000 (15:55 -0700)]
Merge remote branch 'sherbszt/gfxboot32' into pathbased

14 years agofat: handle .. pointing back to the root directory
H. Peter Anvin [Sun, 13 Jun 2010 21:18:23 +0000 (14:18 -0700)]
fat: handle .. pointing back to the root directory

.. pointing back to the root directory will have a cluster number of
0, even for FAT32 where there is an actual cluster number for the root
directory.  Handle this as a special case.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agogfxboot: set media type
Sebastian Herbszt [Sun, 13 Jun 2010 21:00:39 +0000 (23:00 +0200)]
gfxboot: set media type

Set media type according to the drive number and cd mode.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
14 years agoifcpuXX: Support multiple parameters with labels
Shao Miller [Sat, 12 Jun 2010 15:03:28 +0000 (08:03 -0700)]
ifcpuXX: Support multiple parameters with labels

The ifcpu.c32 and ifcpu64.c32 modules take arguments including
the form <true_label> -- <false_label>.  It is convenient to
allow these labels to be not just a single word, but to include
parameters.  This is useful for <TAB>-editing and modifying the
command-line to include parameters you'd like to pass.

Not-yet-tested: Shao Miller <shao.miller@yrdsb.edu.on.ca>

14 years agogptmbr: save four bytes
H. Peter Anvin [Sat, 12 Jun 2010 00:21:35 +0000 (17:21 -0700)]
gptmbr: save four bytes

Save four bytes by observing that none of our code relies on
saturate_stosl not actually corrupting %eax.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agogptmbr: fix offset for MSW of partition end
H. Peter Anvin [Sat, 12 Jun 2010 00:19:52 +0000 (17:19 -0700)]
gptmbr: fix offset for MSW of partition end

Fix the offset for the MSW of the partition endpoint.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agogptmbr: implement the new T13-approved GPT protocol
H. Peter Anvin [Sat, 12 Jun 2010 00:03:24 +0000 (17:03 -0700)]
gptmbr: implement the new T13-approved GPT protocol

My GPT-based protocol was modified by the UEFI and T13 committees (the
former responsible for the GPT format, the latter for EDD and
therefore for the disk-related part of the BIOS specification.)  This
is thus now on its way to become an official protocol, so change the
implementation to match.

This still needs testing, and the Syslinux core needs to be adjusted
to leverage the extended information.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agomdiskchk: Support three new features
Shao Miller [Tue, 9 Mar 2010 23:33:35 +0000 (18:33 -0500)]
mdiskchk: Support three new features

MDISKCHK.COM now supports three new modes:

mdiskchk.com --mbfts
  This mode will scan between free base memory and
  0xA00000 looking for MEMDISK mBFTs.  For each one
  found, its detail will be reported.

mdiskchk.com --safe-hooks
  This mode will attempt to walk the chain of INT 13h
  "safe hooks".  For each MEMDISK "safe hook" found,
  its detail will be reported.

mdiskchk.com --batch-output
  This mode suppresses the normal detail report and
  instead outputs a list of DOS SET commands.  This
  is useful if one wishes to populate a batch file
  and call that batch file to set DOS environment
  variables, so that programs have access to those
  MEMDISK kernel arguments passed at boot-time.

These command-line options may be combined.

For example, your AUTOEXEC.BAT might go:
  @echo off
  echo @echo off>setenv.bat
  mdiskchk.com -m -s -b>>setenv.bat
  call setenv.bat>nul

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agomemdisk: Force 32-bit mBFT "safe hook" pointer field
Shao Miller [Tue, 9 Mar 2010 23:24:41 +0000 (18:24 -0500)]
memdisk: Force 32-bit mBFT "safe hook" pointer field

When mstructs.h is used by MDISKCHK.COM, pointers have
a 16-bit size and thus the mBFT structure sizeof() is
smaller under OpenWatcom.  We now union this pointer
member with a uint32_t to force the field to at least
32 bits.

There is another pointer in this header file which is
already unioned with a uint32_t, due to that field's
dual-purpose.  That field is fine under OpenWatcom.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agomemdisk: Move dpt_t into common structures header
Shao Miller [Tue, 9 Mar 2010 22:57:08 +0000 (17:57 -0500)]
memdisk: Move dpt_t into common structures header

This needs to be in here in order for the header file
to be useful to any C file other than setup.c.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agomemdisk: mBFT includes the MDI
Shao Miller [Tue, 9 Mar 2010 22:13:26 +0000 (17:13 -0500)]
memdisk: mBFT includes the MDI

Instead of padding the mBFT so its size is correct, we
actually put the MDI struct in there, since the last
commit provided it.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agomemdisk: Change patch area to include the entire MDI
Shao Miller [Tue, 9 Mar 2010 21:54:17 +0000 (16:54 -0500)]
memdisk: Change patch area to include the entire MDI

Previously, the patch area began after the beginning of
the MDI, but continued past its end.  This is difficult
to express with C structures, so we've simply changed
the patch area to include the entire MDI.  So it now
includes the MDI size and MEMDISK version info, which
we simply make constant to avoid modifying.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agomemdisk: Use MEMDISK header to access "safe hook"
Shao Miller [Tue, 9 Mar 2010 21:02:39 +0000 (16:02 -0500)]
memdisk: Use MEMDISK header to access "safe hook"

This commit moves the MEMDISK header structure into
the common structures header file.

It also adds the "safe hook" structure to the MEMDISK
header structure, since that matches what's in the hook
binaries.  Thus, we access the "safe hook" via the
header pointer, instead of separately.

Tested against a DOS floppy image including an
experimental MDISKCHK.COM and also gainst WinVBlock.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agomemdisk: Use real_addr_t for SEG:OFF fields
Shao Miller [Tue, 9 Mar 2010 19:45:12 +0000 (14:45 -0500)]
memdisk: Use real_addr_t for SEG:OFF fields

We used uint32_t in a few places where it's also handy
to refer to those fields' segment and offset components.
Now we can do so via the real_addr_t union type.

Additionally, there are a couple of places where we now
have pointer fields instead of uint32_t fields, because
we know what kind of struct the field is pointing to.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agomemdisk: Move common structures into headers
Shao Miller [Tue, 9 Mar 2010 07:08:36 +0000 (02:08 -0500)]
memdisk: Move common structures into headers

Since MDISKCHK.COM (and possibly COM32 modules) could make use of
structures found in MEMDISK's setup.c, we move these into a new
header file mstructs.h.

Also, since the OpenWatcom compiler uses a structure packing prefix
and GCC uses a structure packing postfix, we accomodate this with
preprocessor definitions around those structures needing to be
packed.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agosyslinux: Correctly handle the case of installing into the root
H. Peter Anvin [Thu, 10 Jun 2010 01:38:38 +0000 (18:38 -0700)]
syslinux: Correctly handle the case of installing into the root

When installing into the root directory, we should logically search
the root directory first.  Thus, we need to make sure the current path
is "/" not "".

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosetadv: asprintf() doesn't return an error code
H. Peter Anvin [Thu, 10 Jun 2010 01:28:34 +0000 (18:28 -0700)]
setadv: asprintf() doesn't return an error code

asprintf() doesn't return an error number, but a count of characters
(which we don't need.)

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosyslxopt: add missing break;
H. Peter Anvin [Thu, 10 Jun 2010 01:27:53 +0000 (18:27 -0700)]
syslxopt: add missing break;

Add missing break; in the command-line parser.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoloadconfig: fold FAT pathname search into generic_load_config
H. Peter Anvin [Wed, 9 Jun 2010 18:07:19 +0000 (11:07 -0700)]
loadconfig: fold FAT pathname search into generic_load_config

Fold the FAT pathname searching into generic_load_config; make it a
simple set of loops.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosyslinux: provide for backwards compatibility
H. Peter Anvin [Thu, 10 Jun 2010 00:45:47 +0000 (17:45 -0700)]
syslinux: provide for backwards compatibility

Provide for backwards command-line compatibility, together with
warning messages where appropriate.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosyslinux: don't break -o just yet; print warning and resume
H. Peter Anvin [Thu, 10 Jun 2010 00:20:10 +0000 (17:20 -0700)]
syslinux: don't break -o just yet; print warning and resume

-o has been supported for a very long time; recommend using -t
instead, but for now proceed with an error message.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoUnify instances of integer log2
H. Peter Anvin [Wed, 9 Jun 2010 18:21:52 +0000 (11:21 -0700)]
Unify instances of integer log2

Unify multiple open-coded instances of integer binary logarithm.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoClean up warnings in previous checkin
H. Peter Anvin [Wed, 9 Jun 2010 18:20:41 +0000 (11:20 -0700)]
Clean up warnings in previous checkin

Clean up warnings in checkin
146c34a2 Make syslinux installer real "pathbased"

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoMake syslinux installer real "pathbased"
Alek Du [Wed, 9 Jun 2010 05:28:33 +0000 (22:28 -0700)]
Make syslinux installer real "pathbased"

The previous merging extlinux/syslinux patch is not sufficient, the
syslinux is not real "patchbased", hence:

* fill currentdir in patcharea
* search "extlinux.conf" and "syslinux.cfg" for generic_load_config
* define boot_image and boot_sector macro for ldsyslinux
  this could make further merging extlinux and syslinux possible

Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agomboot.c32: don't rely on possibly incomplete fields
H. Peter Anvin [Tue, 8 Jun 2010 21:37:14 +0000 (14:37 -0700)]
mboot.c32: don't rely on possibly incomplete fields

Since load_end_addr and bss_end_addr may be incomplete, we can't
actually use them for information.  An alternative would be to
actually modify these fields in-memory, but it is unclear if that is
permitted by the spec.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agomboot.c32: handle non-self-terminating images
H. Peter Anvin [Tue, 8 Jun 2010 17:58:48 +0000 (10:58 -0700)]
mboot.c32: handle non-self-terminating images

Handle non-ELF Multiboot images with 0 entries for data and/or bss
end, which means "until end of the file" and "nothing" for the two fields,
respectively.

Reported-and-tested-by: Thomas Bächler <thomas@archlinux.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agomenu docs: document MENU SAVE caveat with RAID-1
Ferenc Wagner [Mon, 31 May 2010 16:40:24 +0000 (18:40 +0200)]
menu docs: document MENU SAVE caveat with RAID-1

The usual RAID-1 ADV constraint...

Signed-off-by: Ferenc Wagner <wferi@niif.hu>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoextlinux: add a --menu-save option
Thomas Bächler [Mon, 7 Jun 2010 19:23:46 +0000 (21:23 +0200)]
extlinux: add a --menu-save option

Add the --menu-save option to set the MENU SAVE value from the running
system using extlinux.

From: Thomas Bächler <thomas@archlinux.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoextlinux docs: recommend the --raid option
Ferenc Wagner [Mon, 31 May 2010 15:14:41 +0000 (17:14 +0200)]
extlinux docs: recommend the --raid option

When booting from RAID, recommend --raid.

Signed-off-by: Ferenc Wagner <wferi@niif.hu>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agodocs: explain the danger of IPAPPEND 1
Ferenc Wagner [Mon, 31 May 2010 16:53:20 +0000 (18:53 +0200)]
docs: explain the danger of IPAPPEND 1

Explain what the actual issue with IPAPPEND 1 is, and what the
constraints on using it really are.

Signed-off-by: Ferenc Wagner <wferi@niif.hu>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agochain.c32: add support for loading GRUB stage2
Paul Bolle [Fri, 4 Jun 2010 12:14:49 +0000 (14:14 +0200)]
chain.c32: add support for loading GRUB stage2

This adds (basic) support for GRUB stage2 image files.

Loading a stage2 image will probably give you a GRUB prompt, with GRUB's
"root" set at "(hd0)" (ie, entire first disk). Maybe the "root" will
differ in less common setups. (One can of course select another disk
and/or partition with GRUB's "root" command.)

This has only been tested with version 3.2 stage2 images (as used by
GRUB 0.97). I'm not familiair with differences with other versions.

GRUB's loading mechanism allows to somehow provide stage2 with the
selected disk and partition, BSD slice, etc. (ie, to tell stage2 what
it's "root" is). I don't yet understand the notation used in that
mechanism. Besides, since stage2 images will not necessarily be loaded
from the disk (and partition, etc.) they were installed to, it seems
best to just use the first disk.

GRUB stage1_5 image files load quite similarly. However, for some
reason, a short test only got those images to print an error ("Error
17"). This could be related to the partition info these images are
provided with when they're loaded. I have never used stage1_5 images,
and do not know how to properly use and configure those, so my test
stopped there, and stage1_5 images are not supported.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agogfxboot: use syslinux_derivative_info()
Sebastian Herbszt [Sun, 30 May 2010 20:18:14 +0000 (22:18 +0200)]
gfxboot: use syslinux_derivative_info()

Use syslinux_derivative_info() instead of open coding it.

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
14 years agoMENU IMMEDIATE: hotkeys which do not require Enter syslinux-4.00-pre47
H. Peter Anvin [Fri, 28 May 2010 01:22:21 +0000 (18:22 -0700)]
MENU IMMEDIATE: hotkeys which do not require Enter

The normal behavior for a hotkey is to jump to a specific menu entry.
With MENU IMMEDIATE, it activates the menu entry as well.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agoMerge remote branch 'origin/master' into pathbased syslinux-4.00-pre46
H. Peter Anvin [Fri, 21 May 2010 03:36:16 +0000 (20:36 -0700)]
Merge remote branch 'origin/master' into pathbased

14 years agoisohybrid: use getopt_long_only()
H. Peter Anvin [Fri, 21 May 2010 03:35:24 +0000 (20:35 -0700)]
isohybrid: use getopt_long_only()

For compatibility with isohybrid.pl, use getopt_long_only() so long
options are accepted with a single dash.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge remote branch 'origin/master' into pathbased
H. Peter Anvin [Fri, 21 May 2010 03:32:21 +0000 (20:32 -0700)]
Merge remote branch 'origin/master' into pathbased

Resolved Conflicts:
com32/modules/cat.c

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoisohybrid: create a C version
P. J. Pandit [Fri, 21 May 2010 03:29:52 +0000 (20:29 -0700)]
isohybrid: create a C version

Some Linux distributions have complained about Perl as a prerequisite
for isohybrid, so create a C version.

[ hpa: modified the array generator to put it all in one script ]

14 years agocat.c32: handle multiple files, use argv[0], copy 4K at a time
H. Peter Anvin [Fri, 21 May 2010 03:12:44 +0000 (20:12 -0700)]
cat.c32: handle multiple files, use argv[0], copy 4K at a time

Loop over multiple files, use argv[0] for the program name, and copy
4K at a time.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agounify common parts of extlinux and syslinux installer
Alek Du [Wed, 19 May 2010 01:39:57 +0000 (09:39 +0800)]
unify common parts of extlinux and syslinux installer

Thus we can share same command line options and reduce a lot of dup
code...

Seems like a big patch, but the changes are quite safe, no much logical
change.

Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosyslinux: fix sector arrays
Alek Du [Thu, 20 May 2010 10:24:35 +0000 (18:24 +0800)]
syslinux: fix sector arrays

The first sector ptr is in bs->NextSector not in the array in
the patch_area. And actually the ADV sectors counting is wrong for a
while ...

Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoRestore skip CR and LF in the comboot API copies of the banner strings
H. Peter Anvin [Mon, 17 May 2010 21:14:21 +0000 (14:14 -0700)]
Restore skip CR and LF in the comboot API copies of the banner strings

The comboot API should not report leading CR and LF in the banner
strings.  This was done in 3.86, but apparently was lost due to
mismerge (52c9d5ba2af4e1f77aa2486a2af2bcab0b0af52c) in the 4.00 branch.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agocore: fix "sector size" confusion syslinux-4.00-pre45
H. Peter Anvin [Fri, 14 May 2010 22:22:00 +0000 (15:22 -0700)]
core: fix "sector size" confusion

Fix the case where the "sector size" used by the pm filesystem driver
isn't the same thing as the SECTOR_SIZE/SECTOR_SHIFT macros used in
the assembly code.  This is a per-device property, and in the
particular case of isolinux hybrid, they are not even currently the
same (for all others, they are the same for now, but not necessarily
in the future.)

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agodiskstart: print CHS/EDD instead of CBIOS/EBIOS
H. Peter Anvin [Fri, 14 May 2010 22:20:45 +0000 (15:20 -0700)]
diskstart: print CHS/EDD instead of CBIOS/EBIOS

The terms CHS or EDD are more well-known, so use them.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agocomboot: fix comapi_open
Sebastian Herbszt [Sat, 1 May 2010 13:28:49 +0000 (15:28 +0200)]
comboot: fix comapi_open

Fix breakage introduced by commit e375515ddc712f1f69ee21337db2a3267caa5d49
(Add 32-bit versions of open file/close file).

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: need to track the current position past discontinuities syslinux-4.00-pre44
H. Peter Anvin [Thu, 13 May 2010 22:40:35 +0000 (15:40 -0700)]
FAT: need to track the current position past discontinuities

When we have a discontiguous file (broken extent), then we need to
keep track of where the next extent starts, not where the current
extent ends.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agodiskio: compare to the proper pointer
H. Peter Anvin [Thu, 13 May 2010 22:39:29 +0000 (15:39 -0700)]
diskio: compare to the proper pointer

We need to compare against the advanced pointer, not the original one.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agofat: fix confusion between byte and sector counts
H. Peter Anvin [Thu, 13 May 2010 21:38:04 +0000 (14:38 -0700)]
fat: fix confusion between byte and sector counts

clust_shift is in units of sectors, not in bytes; this was mixed up in
the extent finder.

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