platform/upstream/syslinux.git
14 years agoPXE: fix the EFI localboot hack
H. Peter Anvin [Sat, 6 Feb 2010 01:20:49 +0000 (17:20 -0800)]
PXE: fix the EFI localboot hack

Make the EFI localboot hack work again, by properly detecting the EFI
signature and adjusting the stack properly.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: make gPXE work
H. Peter Anvin [Sat, 6 Feb 2010 00:17:06 +0000 (16:17 -0800)]
pxe: make gPXE work

Make the gPXE interface code work.  gpxelinux.0 now appears
functional.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'master' into fsc
H. Peter Anvin [Fri, 5 Feb 2010 06:02:09 +0000 (22:02 -0800)]
Merge branch 'master' into fsc

Resolved Conflicts:
core/pxelinux.asm

Note: this PXELINUX currently seems to hang with interrupts on trying
to fetch the configuration file -- further debugging will be required.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemdisk: update documentation
H. Peter Anvin [Fri, 5 Feb 2010 04:57:30 +0000 (20:57 -0800)]
memdisk: update documentation

Document the nopass option, eltorito.sys is now in the standard
distro.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: generic handling of single dot (.) in disk-based filesystems syslinux-4.00-pre16
H. Peter Anvin [Fri, 5 Feb 2010 02:15:25 +0000 (18:15 -0800)]
fs: generic handling of single dot (.) in disk-based filesystems

Single dot (.) support is useful to have for readdir.  In some
filesystems we get it for free, but not in others.  Either way, handle
it generically.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: handle WinNT filename case flags
H. Peter Anvin [Fri, 5 Feb 2010 02:07:37 +0000 (18:07 -0800)]
FAT: handle WinNT filename case flags

Handle WinNT-style filename case flags (where it uses a shortname only
but with flags to indicate the filename case.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocodepage: add a lower-case table
H. Peter Anvin [Fri, 5 Feb 2010 01:56:03 +0000 (17:56 -0800)]
codepage: add a lower-case table

Add a lower-case table; necessary for readdir on FAT in the presence
of WinNT case flags.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: cache file position, re-enable codepages
H. Peter Anvin [Fri, 5 Feb 2010 01:40:36 +0000 (17:40 -0800)]
FAT: cache file position, re-enable codepages

Cache the position of the file rather than seeking through the FAT
from the beginning every time.

Re-enable the handling of codepages.  This is not yet fully complete:
when using WinNT case flags, we need an upper->lower case table as
well.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agogPXE: bump the window size to 64K
H. Peter Anvin [Thu, 4 Feb 2010 19:08:29 +0000 (11:08 -0800)]
gPXE: bump the window size to 64K

Change the window size from 4K to 64K to have at least a hope of sane
WAN performance.  Retransmission cost is mostly related to timeouts,
not amount retransmitted, anyway.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agogPXE: suppress the Ctrl+B banner syslinux-3.85-pre5
H. Peter Anvin [Thu, 4 Feb 2010 00:13:28 +0000 (16:13 -0800)]
gPXE: suppress the Ctrl+B banner

Suppress the Ctrl+B banner and zero out the timeout.  It's not very
useful for an integrated product, and very visually annoying on NBP
chainload.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'chainload'
H. Peter Anvin [Thu, 4 Feb 2010 00:06:21 +0000 (16:06 -0800)]
Merge branch 'chainload'

14 years agomenu: add MENU CLEAR option
H. Peter Anvin [Thu, 4 Feb 2010 00:05:59 +0000 (16:05 -0800)]
menu: add MENU CLEAR option

Add MENU CLEAR to clear the screen on menu exit.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomenu: when running hidden, clear the screen before final boot
H. Peter Anvin [Wed, 3 Feb 2010 23:55:47 +0000 (15:55 -0800)]
menu: when running hidden, clear the screen before final boot

Clear away the countdown message before actually running the final
boot.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxelinux: allow chainloading from gpxelinux
H. Peter Anvin [Wed, 3 Feb 2010 23:25:37 +0000 (15:25 -0800)]
pxelinux: allow chainloading from gpxelinux

Use the new "exit hook" functionality in gPXE to allow NBP
chainloading from gpxelinux.0.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxelinux: stop using the PXE-provided stack
H. Peter Anvin [Wed, 3 Feb 2010 23:20:19 +0000 (15:20 -0800)]
pxelinux: stop using the PXE-provided stack

Using the PXE-provided stack complicates things tremendously for gPXE
chainloading support, plus we are hostages to the stack size set up by
the PXE stack (1.5K by spec.)

Use a private stack instead, as the fsc branch already does.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agogpxelinux: use the cached DHCP packet
H. Peter Anvin [Wed, 3 Feb 2010 06:53:18 +0000 (22:53 -0800)]
gpxelinux: use the cached DHCP packet

gPXE 1.0.0 has support for using the cached DHCP packet from the
previous PXE stack, so do that rather than doing another DHCP.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoUpdate gPXE to version 1.0.0
H. Peter Anvin [Wed, 3 Feb 2010 06:41:00 +0000 (22:41 -0800)]
Update gPXE to version 1.0.0

14 years agoFAT: For FAT32, the root directory is a cluster chain syslinux-4.00-pre15
H. Peter Anvin [Tue, 2 Feb 2010 02:21:08 +0000 (18:21 -0800)]
FAT: For FAT32, the root directory is a cluster chain

The old code would set the FAT32 root directory right after the FAT
like everything else... which would just happen to work if the root
directory was in cluster 2.  This is very common for a newly formatted
filesystem, but isn't guaranteed!

Reported-by: Gert Huselmans <gerth@zytor.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'origin/master' into fsc
H. Peter Anvin [Mon, 1 Feb 2010 23:42:39 +0000 (15:42 -0800)]
Merge commit 'origin/master' into fsc

14 years agomkdiskimage: add option -s to make a sparse image syslinux-3.85-pre4
H. Peter Anvin [Mon, 1 Feb 2010 23:41:43 +0000 (15:41 -0800)]
mkdiskimage: add option -s to make a sparse image

It is often fine to have a sparse file for the output image, so add an
-s option to generate a sparse image.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: set QUIET_FLAG if we load Linux "quiet"
H. Peter Anvin [Mon, 1 Feb 2010 17:45:23 +0000 (09:45 -0800)]
core: set QUIET_FLAG if we load Linux "quiet"

If we see the "quiet" flag for the Linux kernel, also suppress the
early Linux kernel messages; for people who want a completely clean
boot.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: remove debugging printf syslinux-4.00-pre14
H. Peter Anvin [Mon, 1 Feb 2010 04:20:09 +0000 (20:20 -0800)]
FAT: remove debugging printf

Remove debugging printf which snuck in...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: fix FAT16/32 next cluster calculation, make more similar to FAT12
H. Peter Anvin [Mon, 1 Feb 2010 04:16:14 +0000 (20:16 -0800)]
FAT: fix FAT16/32 next cluster calculation, make more similar to FAT12

The FAT16/32 next cluster calculations were changed to be somewhat
more like the FAT12 one, but that was done incorrectly: we would end
up reading off the end of the FAT sector we were looking at.  Make it
structurally more similar to the FAT12 calculation, and actually make
it compute correctly.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: fix next_sector implementation syslinux-4.00-pre13
H. Peter Anvin [Sun, 31 Jan 2010 19:10:54 +0000 (11:10 -0800)]
FAT: fix next_sector implementation

"return ++sector;" is a bit subtle and I brainfarted and changed to
"return sector++;" -- change it to "return sector+1;" to make it
obvious we're not looking for a side effect at all here...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'master' into fsc syslinux-4.00-pre12
H. Peter Anvin [Thu, 28 Jan 2010 00:16:14 +0000 (16:16 -0800)]
Merge branch 'master' into fsc

Resolved Conflicts:
core/ldlinux.asm

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agochain.c32: Handle nonlinear logical partitions syslinux-3.85-pre3
H. Peter Anvin [Wed, 27 Jan 2010 23:45:01 +0000 (15:45 -0800)]
chain.c32: Handle nonlinear logical partitions

Some partitioning program, including at least parted, apparently
create the list of logical partition headers nonlinearly with the
partition themselves.  Thus, make it a requirement that then fit
inside the overall extended partition, but not inside the
corresponding sublogical partition.

Reported-by: Gert Huselmans <gerth@zytor.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoopenmem: fix openmem() syslinux-4.00-pre11
H. Peter Anvin [Mon, 25 Jan 2010 23:00:38 +0000 (15:00 -0800)]
openmem: fix openmem()

Correct the implementation of openmem().

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore/fs: abstract filesystem, use cache for ext2 group descriptors
H. Peter Anvin [Mon, 25 Jan 2010 22:53:32 +0000 (14:53 -0800)]
core/fs: abstract filesystem, use cache for ext2 group descriptors

Abstract out the filesystem, remove all references to "this_fs" in the
main filesystem drivers. There is still some in the core (dir.c, fs.c)
which eventually need to be replaced by a properly defined device
marker and root.

The inode structure now contains a reference to its parent filesystem.

The inode structure can now contain additional data at the end of the
structure, this is used for filesystem private data.

TODO: move the filesystem private data into proper structures.

Finally, use the block cache for ext2 block group descriptors.  Trying
to allocate them all at filesystem mount time doesn't work for large
filesystems.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: use an anonymous union
H. Peter Anvin [Mon, 25 Jan 2010 21:44:11 +0000 (13:44 -0800)]
FAT: use an anonymous union

We can use an anonymous union here... we're more or less gcc-specific
anyway, and it cleans up the namespace a lot.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: deal with non-mirrored FATs for FAT32
H. Peter Anvin [Mon, 25 Jan 2010 19:34:33 +0000 (11:34 -0800)]
FAT: deal with non-mirrored FATs for FAT32

FAT32 has the option of non-mirrored FATs, used to improve atomicity
of some operations.  If we have non-mirrored FATs, we need to make
sure to read the one FAT which is currently marked active.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore/fs: make it more explicit sector size is per filesystem
H. Peter Anvin [Mon, 25 Jan 2010 18:57:19 +0000 (10:57 -0800)]
core/fs: make it more explicit sector size is per filesystem

Sector size is per device, and can vary between filesystems.  In
particular, it is time to be getting rid of assumptions of 512-byte
sectors whereever possible.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs.h: fix prototype
H. Peter Anvin [Mon, 25 Jan 2010 17:57:15 +0000 (09:57 -0800)]
fs.h: fix prototype

Another () -> (void)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: Compare cluster count to total number of clusters
H. Peter Anvin [Mon, 25 Jan 2010 17:56:32 +0000 (09:56 -0800)]
FAT: Compare cluster count to total number of clusters

We have to know the total number of clusters, so we might as well make
use of that knowledge.  Treat any impossible cluster number as EOF.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: generate EOF depending on exceeding the number of clusters
H. Peter Anvin [Mon, 25 Jan 2010 17:41:53 +0000 (09:41 -0800)]
FAT: generate EOF depending on exceeding the number of clusters

Generate EOF by comparing to the actual number of clusters.  We have
to compute the number of clusters in the filesystem anyway during
setup, so save the number and use it for the EOF computation.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoldlinux: fix FAT EOF detection
H. Peter Anvin [Mon, 25 Jan 2010 17:34:08 +0000 (09:34 -0800)]
ldlinux: fix FAT EOF detection

We had the wrong highest possible cluster for the FAT; adjust it so
that it matches the definition.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agorunkernel: we only look at the first letter in vga=...
H. Peter Anvin [Mon, 25 Jan 2010 17:30:26 +0000 (09:30 -0800)]
runkernel: we only look at the first letter in vga=...

We only look at the first letter in the handling of the special vga=
strings, make that manifest in the assembly code so we don't end up
with unnecessary warnings.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: handle the cluster number being 1
H. Peter Anvin [Mon, 25 Jan 2010 17:28:26 +0000 (09:28 -0800)]
FAT: handle the cluster number being 1

Any reference to cluster 1 is an error, so treat it the same as
cluster 0 or one of the EOF cluster numbers.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: clean up cluster arithmetic
H. Peter Anvin [Mon, 25 Jan 2010 17:25:41 +0000 (09:25 -0800)]
FAT: clean up cluster arithmetic

a) clean up the computation of the FAT12 FAT entry offset.
b) the highest allocatable cluster is ...ff6, not ...ff0.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: be more explicit why we think a filesystem is bad
H. Peter Anvin [Mon, 25 Jan 2010 00:55:22 +0000 (16:55 -0800)]
FAT: be more explicit why we think a filesystem is bad

Give readable error messages as to why we think a filesystem is bad.
Given the current sizes of the installer, these extra strings are
worth it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoFAT: fix installer on FAT32 filesystems
H. Peter Anvin [Mon, 25 Jan 2010 00:53:37 +0000 (16:53 -0800)]
FAT: fix installer on FAT32 filesystems

The FAT32 superblock has a 12-byte reserved field which wasn't
accounted for in the structure.  As a result, the installer refused to
run on a FAT32 filesystem.  Fix the structure.

Reported-by: Kim Mik <kimmik999999@yahoo.co.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'origin/master' into fsc
H. Peter Anvin [Mon, 25 Jan 2010 00:29:44 +0000 (16:29 -0800)]
Merge commit 'origin/master' into fsc

14 years agoMerge branch 'master' into fsc
H. Peter Anvin [Mon, 25 Jan 2010 00:25:34 +0000 (16:25 -0800)]
Merge branch 'master' into fsc

Conflicts:
com32/lib/MCONFIG
com32/lib/readdir.c

14 years agoAdd support for "vga=current"
H. Peter Anvin [Sat, 23 Jan 2010 01:42:11 +0000 (17:42 -0800)]
Add support for "vga=current"

"vga=current" is a user-friendly synonym for "vga=0x0f04".

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: don't reset the video mode when invoking the kernel
H. Peter Anvin [Fri, 22 Jan 2010 20:14:59 +0000 (12:14 -0800)]
core: don't reset the video mode when invoking the kernel

Don't reset the video mode when invoking the kernel if we're booting
quiet -- it breaks "vga=current" which some distros use for a smooth
graphical transition all the way into the kernel.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore/diskio: correct the EDD parameter query syslinux-4.00-pre10
H. Peter Anvin [Fri, 22 Jan 2010 05:36:52 +0000 (21:36 -0800)]
core/diskio: correct the EDD parameter query

We need to tell the BIOS how big of a buffer we have for the EDD
parameter query.  This caused us to *never* use EDD, which meant that
large filesystems never worked.

Reported-by: Gert Hulselmans <kimmik999999@yahoo.co.uk>
Isolated-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore/diskstart: we don't have 64-bit partition offset just yet...
H. Peter Anvin [Fri, 22 Jan 2010 05:36:07 +0000 (21:36 -0800)]
core/diskstart: we don't have 64-bit partition offset just yet...

We don't actually have a way to receive a 64-bit partition offset yet,
so don't pretend to (on FAT, this field contains other information.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMCONFIG: add debugging version of GCCWARN syslinux-3.85-pre2
H. Peter Anvin [Sun, 10 Jan 2010 21:22:30 +0000 (13:22 -0800)]
MCONFIG: add debugging version of GCCWARN

Add the options that help smoke out bugs.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodmi_processor.c: remove unreachable table values
H. Peter Anvin [Sun, 10 Jan 2010 21:18:48 +0000 (13:18 -0800)]
dmi_processor.c: remove unreachable table values

A uint8_t can't have values all the way up to 0x12e...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodisk/bootloaders.c: fix bogus const in get_bootloader_string()
H. Peter Anvin [Sun, 10 Jan 2010 21:14:59 +0000 (13:14 -0800)]
disk/bootloaders.c: fix bogus const in get_bootloader_string()

get_bootloader_string() takes a mutable first argument; the call chain
does have call paths on which this argument will be modified.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodisk/ata.c: fix signedness weirdness in ata_id_c_string()
H. Peter Anvin [Sun, 10 Jan 2010 21:13:56 +0000 (13:13 -0800)]
disk/ata.c: fix signedness weirdness in ata_id_c_string()

Fix signedness weirdness in ata_id_c_string(), thus killing a warning.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: remove unused variable in syslinux_getadv()
H. Peter Anvin [Sun, 10 Jan 2010 21:09:57 +0000 (13:09 -0800)]
com32/lib: remove unused variable in syslinux_getadv()

Remove unused variable, thus removing a warning.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agozlib: fix warning in crc32.c
H. Peter Anvin [Sun, 10 Jan 2010 21:07:39 +0000 (13:07 -0800)]
zlib: fix warning in crc32.c

Fix a signed/unsigned warning in crc32.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: fix external prototype for __vesacon_open()
H. Peter Anvin [Sun, 10 Jan 2010 21:05:26 +0000 (13:05 -0800)]
com32/lib: fix external prototype for __vesacon_open()

The external prototype for __vesacon_open() was incorrect; this is a
good example of why external prototypes are bad, incidentally.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: fix inappropriate & in sys/colortable.c
H. Peter Anvin [Sun, 10 Jan 2010 21:03:47 +0000 (13:03 -0800)]
com32/lib: fix inappropriate & in sys/colortable.c

The & is incorrect... not actively harmful, but generates a warning.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: add cast in __parse_argv()
H. Peter Anvin [Sun, 10 Jan 2010 20:59:48 +0000 (12:59 -0800)]
com32/lib: add cast in __parse_argv()

ALIGN_UP_FOR() returns the type of the original pointer, but we want
it to be the type that we're actually going to use.  Perhaps
ALIGN_UP_FOR() should be changed, but for now, just add the proper
cast.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agolibgcc: fix signedness warning in __moddi3()
H. Peter Anvin [Sun, 10 Jan 2010 20:57:48 +0000 (12:57 -0800)]
libgcc: fix signedness warning in __moddi3()

Intentional cross-signedness pointer passing, add a cast.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: fix unused argument warning in fdopendir()
H. Peter Anvin [Sun, 10 Jan 2010 20:56:07 +0000 (12:56 -0800)]
com32/lib: fix unused argument warning in fdopendir()

fdopendir() is a stub, and probably will remain such.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: fix unused parameter warning in chdir()
H. Peter Anvin [Sun, 10 Jan 2010 20:55:11 +0000 (12:55 -0800)]
com32/lib: fix unused parameter warning in chdir()

chdir() is a stub at the moment... to be fixed in Syslinux 4.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemdisk: fix non-prototype function declaration
H. Peter Anvin [Sun, 10 Jan 2010 20:54:24 +0000 (12:54 -0800)]
memdisk: fix non-prototype function declaration

() is not a prototype, use (void)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: fix warning in str*cmp()
H. Peter Anvin [Sun, 10 Jan 2010 20:53:51 +0000 (12:53 -0800)]
com32/lib: fix warning in str*cmp()

Shut up a warning about initializing pointer across signedness.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: fix warnings in opendir/readdir/closedir
H. Peter Anvin [Sun, 10 Jan 2010 20:53:04 +0000 (12:53 -0800)]
com32/lib: fix warnings in opendir/readdir/closedir

Missing #include <stdlib.h>, nested comment in readdir.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMakefile: replace -W -Wall with centralized $(GCCWARN)
H. Peter Anvin [Sun, 10 Jan 2010 20:48:06 +0000 (12:48 -0800)]
Makefile: replace -W -Wall with centralized $(GCCWARN)

Replace -W -Wall hardcoded into a bunch of Makefiles with $(GCCWARN),
a centralized variable defined in the root MCONFIG.  Add
-Wstrict-prototypes to the list of global warnings: we should never
have non-prototyped declarations.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocmenu: clean up some () that should be (void)
H. Peter Anvin [Sun, 10 Jan 2010 20:41:26 +0000 (12:41 -0800)]
cmenu: clean up some () that should be (void)

() is not a prototype, and means (...) not (void) in C.
Replace with (void).

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoNEWS: document Grub4DOS chainloading
H. Peter Anvin [Sun, 10 Jan 2010 20:38:12 +0000 (12:38 -0800)]
NEWS: document Grub4DOS chainloading

14 years agochain.c32: simplify the grub4dos support
H. Peter Anvin [Sun, 10 Jan 2010 20:36:30 +0000 (12:36 -0800)]
chain.c32: simplify the grub4dos support

Grub4dos (like Grub in general) uses the same partition numbers as
Linux (and chain.c32), minus one.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agochain.c32: add grldr= command for Grub4dos
Kim Mik [Sun, 10 Jan 2010 14:57:40 +0000 (14:57 +0000)]
chain.c32: add grldr= command for Grub4dos

grldr of Grub4dos wants the partition number in DH:
0xff: whole drive
0-3:  primary partitions
4-*:  logical partitions

Hmmm... there really isn't a huge reason not to do this
unconditionally, at least unless it's known to cause problems.  It
would be better, of course, if grldr used the standard DS:SI, but it
doesn't, so oh well.

Some info of a Grub4dos developer (Tinybit):
  GRLDR can be loaded at any address with alignment 16(i.e., a possible
  segment base address). Generally you want to load it at 0000:7C00, or at
  2000:0000. Of course you never load it at 0000:0000 or similar.

  Before jumping to the entry point at the very beginning of GRLDR, you
  should setup DL=(BIOS drive) and DH=(partition number). For partition
  numbers, 0 - 3 are primary, 4 - 0xFE are logical. (DH=0xFF) stands for
  whole drive(unpartitioned). DH will later be passed to
  install_partition(the third byte, from bit 16 to bit 23).

http://www.boot-land.net/forums/index.php?showtopic=8457&st=20&start=20 post #22

14 years agoUpdate README for 2010
H. Peter Anvin [Thu, 7 Jan 2010 05:37:27 +0000 (21:37 -0800)]
Update README for 2010

14 years agoChange () prototypes to (void)
H. Peter Anvin [Thu, 7 Jan 2010 05:26:44 +0000 (21:26 -0800)]
Change () prototypes to (void)

() means the same as (...) in C, not the same as (void) as it does in
C++.  It is generally misused to mean (void), though.  Actually write
what we mean... this is C, after all.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'master' into fsc
H. Peter Anvin [Wed, 6 Jan 2010 19:35:05 +0000 (11:35 -0800)]
Merge branch 'master' into fsc

Resolved Conflicts:
core/configinit.inc
version

Resolved Undetected Conflicts:
 core/ui.inc

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoUpdate date to 2010
H. Peter Anvin [Wed, 6 Jan 2010 19:31:58 +0000 (11:31 -0800)]
Update date to 2010

14 years agocore: Remove the built-in default
H. Peter Anvin [Wed, 6 Jan 2010 19:28:24 +0000 (11:28 -0800)]
core: Remove the built-in default

The built-in default is rarely if ever used anymore and highly
confusing to users.  Remove it entirely.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'master' into fsc
H. Peter Anvin [Thu, 31 Dec 2009 00:04:30 +0000 (16:04 -0800)]
Merge branch 'master' into fsc

14 years agodosutil: don't remove targets which need Watcom even for "make spotless"
H. Peter Anvin [Thu, 31 Dec 2009 00:03:22 +0000 (16:03 -0800)]
dosutil: don't remove targets which need Watcom even for "make spotless"

Most systems won't have Watcom installed, so don't remove
Watcom-generated binaries even with "make spotless".

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agobtrfs: use malloc instead of static allocation for chunk map
Du, Alek [Tue, 29 Dec 2009 07:58:06 +0000 (23:58 -0800)]
btrfs: use malloc instead of static allocation for chunk map

Now when we have malloc() available, use it instead of static allocation.

Signed-off-by: Alek Du <alek.du@intel.com>
LKML-Reference: <1262073486-21321-1-git-send-email-alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agobtrfs: change func() to func(void)
H. Peter Anvin [Tue, 29 Dec 2009 04:07:52 +0000 (20:07 -0800)]
btrfs: change func() to func(void)

"void func()" means "void func(...)" in C, but "void func(void)" in
C++.  However, we want the "void func(void)" meaning, but this is C.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agochain.c32: stylistic comments/usage output changes
Kim Mik [Tue, 29 Dec 2009 01:00:25 +0000 (01:00 +0000)]
chain.c32: stylistic comments/usage output changes

Comments fix and usage output corrected for chain.c32

- Gert Hulselmans

Signed-off-by: Gert Hulselmans <kimmik999999@yahoo.co.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'origin/master' into fsc syslinux-4.00-pre9
H. Peter Anvin [Tue, 29 Dec 2009 01:52:38 +0000 (17:52 -0800)]
Merge commit 'origin/master' into fsc

Resolved Conflicts:
version

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'sherbszt/gfxboot32' syslinux-3.85-pre1
H. Peter Anvin [Tue, 29 Dec 2009 01:51:07 +0000 (17:51 -0800)]
Merge commit 'sherbszt/gfxboot32'

14 years agogfxboot: add .gitignore file
H. Peter Anvin [Tue, 29 Dec 2009 01:48:03 +0000 (17:48 -0800)]
gfxboot: add .gitignore file

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoisolinux: export kaboom
H. Peter Anvin [Tue, 29 Dec 2009 01:46:43 +0000 (17:46 -0800)]
isolinux: export kaboom

We need to export kaboom in all cases...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'liu/master' into fsc
H. Peter Anvin [Tue, 29 Dec 2009 01:38:48 +0000 (17:38 -0800)]
Merge commit 'liu/master' into fsc

Resolved Conflicts:
core/fs.c
core/fs/ext2/ext2.c

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoeltorito: align some pointlessly misaligned data items
H. Peter Anvin [Tue, 29 Dec 2009 00:51:34 +0000 (16:51 -0800)]
eltorito: align some pointlessly misaligned data items

Align some data items (including the jump table) which were misaligned
for no clear reason.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agochain.c: do a proper copy operation for the cmldr signature
H. Peter Anvin [Tue, 29 Dec 2009 00:24:48 +0000 (16:24 -0800)]
chain.c: do a proper copy operation for the cmldr signature

Instead of writing into memory that we might not own, create a proper
copy operation using syslinux_add_movelist().

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agochain.c32: add support for booting the Recovery Console of Windows NT/2K/XP
Kim Mik [Mon, 28 Dec 2009 21:42:55 +0000 (21:42 +0000)]
chain.c32: add support for booting the Recovery Console of Windows NT/2K/XP

The following patch for chain.c32 adds support to boot the Recovery Console of Windows NT/2K/XP.
Normally when you want to boot the recovery console, you need to patch "cmdcons\0" into the
bootsectorof the partition (8 bytes starting at 0x3 (4th byte)).

We can do this patching in memory:
  strcpy((char *) 0x7c03, "cmdcons");

To boot the recovery console with chain.c32:
  chain.c32 cmldr=/cmldr

- Gert Hulselmans

14 years agoMerge commit 'contrib/master'
H. Peter Anvin [Tue, 29 Dec 2009 00:13:41 +0000 (16:13 -0800)]
Merge commit 'contrib/master'

14 years agochain.c32: fixing implicit declaration of function ‘syslinux_force_text_mode’
Kim Mik [Mon, 28 Dec 2009 20:23:45 +0000 (20:23 +0000)]
chain.c32: fixing implicit declaration of function ‘syslinux_force_text_mode’

When building chain.c32:

$ make chain.c32
gcc -Wp,-MT,chain.o,-MD,./..chain.o.d -std=gnu99 -m32 -fno-stack-protector -mregparm=3 -DREGPARM=3 -march=i386 -Os -W -Wall -march=i386 -fomit-frame-pointer -D__COM32__ -nostdinc -iwithprefix include -I../../com32/libutil/include -I../../com32/include -I../../com32/gplinclude -c -o chain.o chain.c
chain.c: In function ‘do_boot’:
chain.c:552: warning: implicit declaration of function ‘syslinux_force_text_mode’
ld -m elf_i386 -T ../../com32/lib/com32.ld -o chain.elf chain.o ../../com32/libutil/libutil_com.a ../../com32/gpllib/libcom32gpl.a ../../com32/lib/libcom32.a /usr/lib/gcc/i486-linux-gnu/4.4.1/libgcc.a
objcopy -O binary chain.elf chain.c32

The following was missing:
  #include <syslinux/video.h>

- Gert Hulselmans

14 years agoNEWS, version: prepare for 3.85
H. Peter Anvin [Tue, 22 Dec 2009 23:56:03 +0000 (15:56 -0800)]
NEWS, version: prepare for 3.85

14 years agoMerge commit 'origin/master' into fsc
H. Peter Anvin [Tue, 22 Dec 2009 23:55:11 +0000 (15:55 -0800)]
Merge commit 'origin/master' into fsc

14 years agocom32: syslinux_report_video_mode returns void
H. Peter Anvin [Tue, 22 Dec 2009 23:53:43 +0000 (15:53 -0800)]
com32: syslinux_report_video_mode returns void

syslinux_report_video_mode() never gave a return value, to have it
return void unless we need something else.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agovesa: formatting fix
H. Peter Anvin [Tue, 22 Dec 2009 23:53:15 +0000 (15:53 -0800)]
vesa: formatting fix

Code formatting fix in screencpy.c

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agovesamenu: unbreak the default background
H. Peter Anvin [Tue, 22 Dec 2009 23:52:41 +0000 (15:52 -0800)]
vesamenu: unbreak the default background

Unbreak the default background image; it would clobber all of memory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: clean up the call to disk_init() syslinux-4.00-pre8
H. Peter Anvin [Tue, 22 Dec 2009 20:42:20 +0000 (12:42 -0800)]
core: clean up the call to disk_init()

Move direct references to registers up as far as possible to make the
code easier to read.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: canonicalize ROOT_FS_OPS
H. Peter Anvin [Tue, 22 Dec 2009 20:23:06 +0000 (12:23 -0800)]
core: canonicalize ROOT_FS_OPS

ROOT_FS_OPS belongs in .rodata, and make it the same format.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoisolinux: fs_init now takes a pointer to an array of filesystems
H. Peter Anvin [Tue, 22 Dec 2009 20:22:26 +0000 (12:22 -0800)]
isolinux: fs_init now takes a pointer to an array of filesystems

fs_init now takes a pointer to an array of filesystems, not a pointer
to a single filesystem type.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: update to match the new fs_init interface
H. Peter Anvin [Tue, 22 Dec 2009 20:10:43 +0000 (12:10 -0800)]
pxe: update to match the new fs_init interface

fs_init now takes a pointer to an array of filesystems, so provide it
as such.  Furthermore, fs_init needs to return a nonnegative value to
be considered successful.

Finally, handle the case of 64-bit partition offsets being passed in
to fs_init (in ebx:ecx in the disk-based derivatives.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agobtrfs: reduce size by computing the crc32c table on the fly
H. Peter Anvin [Tue, 22 Dec 2009 18:24:14 +0000 (10:24 -0800)]
btrfs: reduce size by computing the crc32c table on the fly

The crc32c algorithm requires a largish table (1K), however, it can be
computed at runtime using a fairly trivial piece of code.  Even with
compression, this is substantially smaller.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agobtrfs: add btrfs file system support to extlinux syslinux-4.00-pre7
Alek Du [Thu, 17 Dec 2009 03:14:48 +0000 (11:14 +0800)]
btrfs: add btrfs file system support to extlinux

the extlinux.sys will be installed in btrfs first 64K blank area, and the
extlinux.conf must be in root dir...

Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge commit 'syslinux-3.84'
H. Peter Anvin [Tue, 22 Dec 2009 17:45:59 +0000 (09:45 -0800)]
Merge commit 'syslinux-3.84'

Resolved Conflicts:
Makefile

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'master' into fsc
H. Peter Anvin [Tue, 22 Dec 2009 17:38:43 +0000 (09:38 -0800)]
Merge branch 'master' into fsc

Resolved Conflicts:
com32/Makefile
com32/lib/sys/open.c
com32/modules/Makefile
dos/Makefile
dos/com16.ld
dos/syslinux.c
version

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agospec: don't actually package the dosutil directory proper syslinux-3.84
H. Peter Anvin [Fri, 18 Dec 2009 23:29:51 +0000 (15:29 -0800)]
spec: don't actually package the dosutil directory proper

No need to actually package the dosutil directory per se.

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