profile/ivi/syslinux.git
14 years agogeneric_close_file: use put_inode(), not free_inode()
H. Peter Anvin [Tue, 16 Feb 2010 17:21:09 +0000 (09:21 -0800)]
generic_close_file: use put_inode(), not free_inode()

Nothing other than put_inode() should ever really call free_inode()...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agobtrfs: use generic_load_config syslinux-4.00-pre22
H. Peter Anvin [Tue, 16 Feb 2010 06:47:17 +0000 (22:47 -0800)]
btrfs: use generic_load_config

btrfs can use generic_load_config, so use it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: centralize symlink handling
H. Peter Anvin [Tue, 16 Feb 2010 06:45:59 +0000 (22:45 -0800)]
fs: centralize symlink handling

Put all handling of symbolic links into the central pathname walker.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: reference-count inodes, fix generic loadconfig
H. Peter Anvin [Tue, 16 Feb 2010 04:32:21 +0000 (20:32 -0800)]
fs: reference-count inodes, fix generic loadconfig

Reference-count inodes, so we don't leak them all over the place.
This also lets us hold onto the root inode from the very beginning.
Make the generic loadconfig work again.  Significant cleanups to the
ext2 filesystem core.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: separate bcopyxx code and data; use linker-generated symbols
H. Peter Anvin [Tue, 16 Feb 2010 01:47:09 +0000 (17:47 -0800)]
core: separate bcopyxx code and data; use linker-generated symbols

Separate out bcopyxx code and data, and use linker-generated barrier
symbols instead of inline label hacks.  This makes it possible to link
code into the bcopyxx area if need be.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemmove: don't reverse copy if there is no overlap
H. Peter Anvin [Tue, 16 Feb 2010 00:28:23 +0000 (16:28 -0800)]
memmove: don't reverse copy if there is no overlap

Don't do reverse copies if there is no overlap.  Current x86 CPUs
optimize forward copies, but some of them don't optimize reverse
copies.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agobootsect.inc: change 100000h -> free_high_memory syslinux-4.00-pre21
H. Peter Anvin [Sun, 14 Feb 2010 23:09:04 +0000 (15:09 -0800)]
bootsect.inc: change 100000h -> free_high_memory

We can't load stuff at 100000h... that will overwrite the PM code.
That is what free_high_memory is for.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxelinux: remove USE_PXE_PROVIDED_STACK
H. Peter Anvin [Sun, 14 Feb 2010 23:02:42 +0000 (15:02 -0800)]
pxelinux: remove USE_PXE_PROVIDED_STACK

Remove USE_PXE_PROVIDED_STACK once and for all.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: guard against a nonsensical month number
H. Peter Anvin [Sun, 14 Feb 2010 22:11:15 +0000 (14:11 -0800)]
sysdump: guard against a nonsensical month number

If the month is off the table, don't even try to read it...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: don't force cpuid() to be inlined
H. Peter Anvin [Sun, 14 Feb 2010 22:09:42 +0000 (14:09 -0800)]
sysdump: don't force cpuid() to be inlined

The compiler can usually decide that better than we can...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'master' into pathbased syslinux-4.00-pre20
H. Peter Anvin [Sun, 14 Feb 2010 21:57:50 +0000 (13:57 -0800)]
Merge branch 'master' into pathbased

Resolved Conflicts:
com32/Makefile
com32/include/syslinux/pxe.h
core/pxelinux.asm
core/syslinux.ld

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoconfig: allow a chdir at the time a new configuration file is loaded
H. Peter Anvin [Sun, 14 Feb 2010 21:40:04 +0000 (13:40 -0800)]
config: allow a chdir at the time a new configuration file is loaded

If a directory name/path prefix is appended to a loaded configuration
file, do a chdir at that point.  We finally have all the mechanism to
do this right.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: move to a chdir()-based mechanism for managing cwd syslinux-4.00-pre19
H. Peter Anvin [Sun, 14 Feb 2010 07:42:59 +0000 (23:42 -0800)]
fs: move to a chdir()-based mechanism for managing cwd

Introduce a chdir() system and a way to obtain absolute pathnames.
This should allow us to set the current base directory (filename
prefix for PXE) without breaking access to the configuration file.

As a side benefit, for the "normal" filesystems we no longer need
magic hacks to figure out where we should set our current working
directory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomtools: add MTOOLS_FAT_COMPATIBILITY=1
H. Peter Anvin [Sun, 14 Feb 2010 01:09:27 +0000 (17:09 -0800)]
mtools: add MTOOLS_FAT_COMPATIBILITY=1

It's perfectly legitimate to have a bigger FAT area than is needed,
and it is often done for alignment.  Tell mtools not to throw a hissy
fit over it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agochain.c: part_info -> partinfo syslinux-3.85-pre11
H. Peter Anvin [Sun, 14 Feb 2010 00:46:22 +0000 (16:46 -0800)]
chain.c: part_info -> partinfo

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoNEWS: update for 3.85 release
H. Peter Anvin [Sun, 14 Feb 2010 00:45:11 +0000 (16:45 -0800)]
NEWS: update for 3.85 release

14 years agochain.c32: add option to set hidden sectors; load boot sector for NTLDR
H. Peter Anvin [Sat, 13 Feb 2010 22:45:42 +0000 (14:45 -0800)]
chain.c32: add option to set hidden sectors; load boot sector for NTLDR

Add an option to update the in-memory version of FAT/NTFS hidden
sectors (== partition offset); load the boot sector for NTLDR.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxelinux: complete but disable debugging code, not for production syslinux-3.85-pre10
H. Peter Anvin [Sat, 13 Feb 2010 01:02:50 +0000 (17:02 -0800)]
pxelinux: complete but disable debugging code, not for production

Disable some debugging code that was never intended for production
use.  The intent is to track down specific memory-clobbering bugs.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: document the stack location, use STACK_TOP throughout
H. Peter Anvin [Sat, 13 Feb 2010 00:49:55 +0000 (16:49 -0800)]
core: document the stack location, use STACK_TOP throughout

The global absolute symbol STACK_TOP defined in layout.inc can be used
by the linker script as well as by anything else that needs to know
where the stack is.  Also document why we do it differently for
PXELINUX.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxelinux: move the stack to avoid AMI BIOS bug
H. Peter Anvin [Fri, 12 Feb 2010 21:37:20 +0000 (13:37 -0800)]
pxelinux: move the stack to avoid AMI BIOS bug

There is apparently some AMI BIOSes which leave a BEV stack just below
7c00h, which means that they can't return from the PXE NBP.  Thus, for
PXELINUX, move the stack down a few kilobytes.

This particularly refers to the "rouilj/ops12" system my private
sysdump archive.

Reported-and-tested-by: John Rouillard <rouilj@renesys.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: fix cwd setting for FAT/iso9660/extfs syslinux-4.00-pre18
H. Peter Anvin [Thu, 11 Feb 2010 00:21:55 +0000 (16:21 -0800)]
fs: fix cwd setting for FAT/iso9660/extfs

Fix the cwd setting for FAT, iso9660 and ext*fs.
In particular:

When FS_THISIND is set in the filesystem flags, only memoize the
parent directory iff we are currently doing a config file walk.  Use
this feature for ext*fs as well, this makes the pathbased branch fully
featured.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopathbased: Add FAT support to extlinux and let FAT be "true" pathbased
Alek Du [Mon, 8 Feb 2010 02:54:31 +0000 (10:54 +0800)]
pathbased: Add FAT support to extlinux and let FAT be "true" pathbased

Now extlinux can install FAT partition now, and FAT honors patched
path area.

Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopathbased: fix relative path in the extlinux installer
Alek Du [Mon, 8 Feb 2010 02:40:09 +0000 (10:40 +0800)]
pathbased: fix relative path in the extlinux installer

Fix a bug in the extlinux installer where the relative path is not
found correctly.

Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'fsc' into pathbased
H. Peter Anvin [Wed, 10 Feb 2010 23:59:46 +0000 (15:59 -0800)]
Merge branch 'fsc' into pathbased

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

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agovesa: for jpg or png images, tile the image across the screen
H. Peter Anvin [Mon, 8 Feb 2010 22:37:48 +0000 (14:37 -0800)]
vesa: for jpg or png images, tile the image across the screen

If we specify a smaller image than the screen size, tile it across the
screen rather than leaving a big black box.  This may have to be made
configurable.

Also note that Syslinux currently does not handle the case of an image
bleeding off the end of the screen.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: quiet gcc warning
H. Peter Anvin [Mon, 8 Feb 2010 22:37:20 +0000 (14:37 -0800)]
sysdump: quiet gcc warning

Null change to quiet a gcc warning.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemdisk: make "nopass" type-specific, add "nopassany"
H. Peter Anvin [Mon, 8 Feb 2010 17:13:11 +0000 (09:13 -0800)]
memdisk: make "nopass" type-specific, add "nopassany"

Make "nopass" specific to the current drive type.  Add new option
"nopassany", which also clobbers the drive counts of both types.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: use the same serial receive threshold as the core syslinux-3.85-pre9
H. Peter Anvin [Mon, 8 Feb 2010 04:08:46 +0000 (20:08 -0800)]
sysdump: use the same serial receive threshold as the core

Match the core with regards to the serial receive threshold.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: make ymodem work even on a serial console
H. Peter Anvin [Mon, 8 Feb 2010 04:06:27 +0000 (20:06 -0800)]
sysdump: make ymodem work even on a serial console

Make it possible to do a ymodem transfer even on the port used for a
serial console.  Furthermore, on a serial console, get the parameters
from the serial console information, so port number and speed don't
have to be specified.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: don't include final null byte in version file
H. Peter Anvin [Mon, 8 Feb 2010 01:17:35 +0000 (17:17 -0800)]
sysdump: don't include final null byte in version file

We don't want the null byte at the end as part of the version file.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: ymodem: actually retransmit a block if we get NAK
H. Peter Anvin [Mon, 8 Feb 2010 01:05:08 +0000 (17:05 -0800)]
sysdump: ymodem: actually retransmit a block if we get NAK

Incorrectly nested loops, we need to actually retransmit if we get a
NAK reply...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: actually make the new backend system work syslinux-3.85-pre8
H. Peter Anvin [Mon, 8 Feb 2010 00:26:40 +0000 (16:26 -0800)]
sysdump: actually make the new backend system work

With these changes, both TFTP and Ymodem seem to actually work.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: change to a two-phase generate/output model, buffer in memory
H. Peter Anvin [Sun, 7 Feb 2010 23:14:21 +0000 (15:14 -0800)]
sysdump: change to a two-phase generate/output model, buffer in memory

Instead of outputting data as it is generated, buffer it all in memory
and then output it all at once.  This not only gives us exact size and
so on before we start, but turns out to be faster at least for TFTP.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: serial: add missing header file
H. Peter Anvin [Sun, 7 Feb 2010 20:14:46 +0000 (12:14 -0800)]
sysdump: serial: add missing header file

Missing header file -> warning.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: be_tftp.c: fix prototype
H. Peter Anvin [Sun, 7 Feb 2010 20:14:14 +0000 (12:14 -0800)]
sysdump: be_tftp.c: fix prototype

The init function now takes an additional length argument.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: *actually* generate the proper version string
H. Peter Anvin [Sun, 7 Feb 2010 20:13:34 +0000 (12:13 -0800)]
sysdump: *actually* generate the proper version string

Make the gen-id.sh script actually do the right thing...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: handle the case of more than one DMI table
H. Peter Anvin [Sun, 7 Feb 2010 19:56:19 +0000 (11:56 -0800)]
sysdump: handle the case of more than one DMI table

On the offchance a system has more than one valid DMI table, record
them all.  Also record the address of the signature structure and of
the table itself.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: record the sysdump version used to generate a bundle
H. Peter Anvin [Sun, 7 Feb 2010 19:55:41 +0000 (11:55 -0800)]
sysdump: record the sysdump version used to generate a bundle

Record the sysdump version used to actually generate a data set.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: dump CPUID information syslinux-3.85-pre7
H. Peter Anvin [Sun, 7 Feb 2010 08:09:31 +0000 (00:09 -0800)]
sysdump: dump CPUID information

Dump CPUID information in as generic of a way as is possible, given
the ugliness in certain places.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: remove unused variable
H. Peter Anvin [Sun, 7 Feb 2010 08:08:50 +0000 (00:08 -0800)]
sysdump: remove unused variable

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: be more explicit about what we are doing
H. Peter Anvin [Sun, 7 Feb 2010 07:26:53 +0000 (23:26 -0800)]
sysdump: be more explicit about what we are doing

Print more information on the console about what is going on.  That
can help detect problems if we find a machine which hangs on sysdump.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: fix the dumping of the e820 memory information
H. Peter Anvin [Sun, 7 Feb 2010 07:26:32 +0000 (23:26 -0800)]
sysdump: fix the dumping of the e820 memory information

Need to advance the pointer...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: fix hacking of the DMI structure address
H. Peter Anvin [Sun, 7 Feb 2010 07:26:00 +0000 (23:26 -0800)]
sysdump: fix hacking of the DMI structure address

Fix the hacking of the DMI structure address, for dmidecode's sake.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: dump memory map information
H. Peter Anvin [Sun, 7 Feb 2010 07:10:24 +0000 (23:10 -0800)]
sysdump: dump memory map information

Dump the memory map information - e820 et al.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: add PCI config space dumping
H. Peter Anvin [Sun, 7 Feb 2010 06:54:06 +0000 (22:54 -0800)]
sysdump: add PCI config space dumping

Dump PCI configuration space.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: add support for dumping DMI tables
H. Peter Anvin [Sun, 7 Feb 2010 06:28:01 +0000 (22:28 -0800)]
sysdump: add support for dumping DMI tables

Add support for dumping DMI tables; hopefully in a way that is
compatible with dmidecode.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: add back ymodem support; clean up memory dump structure
H. Peter Anvin [Sun, 7 Feb 2010 05:55:03 +0000 (21:55 -0800)]
sysdump: add back ymodem support; clean up memory dump structure

Now we just need more front ends (information providers)...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: add missing return statement in cpio_writefile()
H. Peter Anvin [Sun, 7 Feb 2010 01:47:15 +0000 (17:47 -0800)]
sysdump: add missing return statement in cpio_writefile()

cpio_writefile() should return the actual return value...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: add missing prototype for pxe_dns()
H. Peter Anvin [Sun, 7 Feb 2010 01:46:21 +0000 (17:46 -0800)]
pxe: add missing prototype for pxe_dns()

All global functions should have a prototype...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: dump vesa modes, generate usable timestamps
H. Peter Anvin [Sun, 7 Feb 2010 01:43:11 +0000 (17:43 -0800)]
sysdump: dump vesa modes, generate usable timestamps

Dump all the VESA modes; give functional timestamps for the cpio
members.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: first working version (can dump lowmem over TFTP)
H. Peter Anvin [Sun, 7 Feb 2010 00:38:53 +0000 (16:38 -0800)]
sysdump: first working version (can dump lowmem over TFTP)

Most of the infrastructure for sysdump, and enough to make it useful.
Sysdump will produce a gzipped cpio archive containing individual data
members; for now only a memory dump of lowmem.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32: add library function for DNS lookup
H. Peter Anvin [Sun, 7 Feb 2010 00:31:26 +0000 (16:31 -0800)]
com32: add library function for DNS lookup

Add a library function for DNS lookup

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosyslinux/pxe.h use the same type as <com32.h> for a far pointer
H. Peter Anvin [Sun, 7 Feb 2010 00:29:41 +0000 (16:29 -0800)]
syslinux/pxe.h use the same type as <com32.h> for a far pointer

<syslinux/pxe.h> was using segoff16_t, <com32.h> was using far_ptr_t
for the same thing -- use the same type so the macros are available
for both.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxelinux: give our own IP address in the "derivate info" API call
H. Peter Anvin [Sun, 7 Feb 2010 00:28:05 +0000 (16:28 -0800)]
pxelinux: give our own IP address in the "derivate info" API call

Add our own IP address to the "get derivative-specific info" API call.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosysdump: port memdump to com32 with the intent of enhancing it
H. Peter Anvin [Sat, 6 Feb 2010 19:24:24 +0000 (11:24 -0800)]
sysdump: port memdump to com32 with the intent of enhancing it

Port memdump to com32, with the intent of modifying and enhancing it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemdump: srecs need a length, and max 32 data bytes
H. Peter Anvin [Sat, 6 Feb 2010 02:17:10 +0000 (18:17 -0800)]
memdump: srecs need a length, and max 32 data bytes

Length + 32 data bytes max...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agomemdump: allow outputting S-records
H. Peter Anvin [Sat, 6 Feb 2010 02:03:14 +0000 (18:03 -0800)]
memdump: allow outputting S-records

Allow outputting S-records, for users who only have the capability of
passively monitoring a serial port as opposed to being able to capture
the contents directly.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'master' into fsc syslinux-4.00-pre17
H. Peter Anvin [Sat, 6 Feb 2010 01:28:27 +0000 (17:28 -0800)]
Merge branch 'master' into fsc

Resolved Conflicts:
core/pxelinux.asm

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
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 agopxelinux: call reset_pxe before local boot syslinux-3.85-pre6
H. Peter Anvin [Sat, 6 Feb 2010 00:41:02 +0000 (16:41 -0800)]
pxelinux: call reset_pxe before local boot

Reset the PXE configuration before we do a local boot.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agogPXE: change heap size to 512K
H. Peter Anvin [Thu, 4 Feb 2010 19:18:36 +0000 (11:18 -0800)]
gPXE: change heap size to 512K

Change heap size from 128K to 512K to accommodate larger TCP windows.

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>