platform/upstream/syslinux.git
14 years agocore: don't use "const volatile" in __jiffies definition
H. Peter Anvin [Mon, 1 Mar 2010 03:28:54 +0000 (19:28 -0800)]
core: don't use "const volatile" in __jiffies definition

It looks like some versions of gcc might have issues with "const
volatile".

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: revamp timeout, improve the unloading of gpxelinux
H. Peter Anvin [Mon, 1 Mar 2010 03:00:17 +0000 (19:00 -0800)]
pxe: revamp timeout, improve the unloading of gpxelinux

Revamp the timeout mechanism, to deal with UDP stacks (like gPXE!)
which lose transmit packets.  gPXE, in particular, will drop a UDP
packet if it doesn't have the recipient in the ARP cache.
Furthermore, it has the poor taste to not even send back an error.

Also, always unload gPXE when present, before exiting.  This should
let us clean up low memory better.  Reconsider if this turns out to be
too slow.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodprintf: make usable on hardware
H. Peter Anvin [Mon, 1 Mar 2010 02:53:47 +0000 (18:53 -0800)]
dprintf: make usable on hardware

Actually configure the serial port used for dprintf, so we can
actually use it on real hardware.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32/lib: remove unused definitions
H. Peter Anvin [Mon, 1 Mar 2010 02:53:08 +0000 (18:53 -0800)]
com32/lib: remove unused definitions

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMCONFIG.embedded: make sure to honor options in MCONFIG.local
H. Peter Anvin [Mon, 1 Mar 2010 02:52:14 +0000 (18:52 -0800)]
MCONFIG.embedded: make sure to honor options in MCONFIG.local

In particular, make sure we can honor debug options in MCONFIG.local.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxelinux: allow "localboot -1" to do INT 18h, just like !pxelinux
H. Peter Anvin [Sun, 28 Feb 2010 23:14:45 +0000 (15:14 -0800)]
pxelinux: allow "localboot -1" to do INT 18h, just like !pxelinux

Allow "localboot -1" to invoke INT 18h, as it does on other
derivatives.  Perhaps that can help track down systems on which the
normal return path just isn't working.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMCONFIG: include MCONFIG.local if one exists
H. Peter Anvin [Sun, 28 Feb 2010 02:57:07 +0000 (18:57 -0800)]
MCONFIG: include MCONFIG.local if one exists

Allow for an MCONFIG.local as a handier way to set things like debug
options.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: drop accidental checkin of -DDEBUG=1 syslinux-4.00-pre30
H. Peter Anvin [Sun, 28 Feb 2010 02:48:37 +0000 (18:48 -0800)]
core: drop accidental checkin of -DDEBUG=1

We should not be compiling with -DDEBUG=1 by default!

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: fix and simplify generic_getfssec() syslinux-4.00-pre29
H. Peter Anvin [Sat, 27 Feb 2010 04:40:21 +0000 (20:40 -0800)]
core: fix and simplify generic_getfssec()

Both simplify and fix generic_getfssec().  The previous version would
occasionally request the same extent twice from the underlying layer.
This is not a big deal for ext2fs for example, but is *very* expensive
on FAT, where any out-of-order next_extent() call means walking the
FAT from the beginning.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoext2: use generic_getfssec syslinux-4.00-pre28
H. Peter Anvin [Sat, 27 Feb 2010 02:15:55 +0000 (18:15 -0800)]
ext2: use generic_getfssec

Use generic_getfssec for ext2.

NOTE: Something seems wrong with the generic_getfssec() loop; running
this on an ext2 filesystem ends up with the code looking up the same
extent twice in a row, which should not happen.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofat: use generic_getfssec(), fix generic_getfssec(), add dprintf
H. Peter Anvin [Sat, 27 Feb 2010 01:15:35 +0000 (17:15 -0800)]
fat: use generic_getfssec(), fix generic_getfssec(), add dprintf

Use generic_getfssec() for the FAT filesystem.  Do a bunch of
calculations based on clusters rather than on sectors, so we don't
have to do the same thing N times for N sectors per cluster.

Fix boundary conditions in generic_getfssec().  Adjust iso9660 to
match the resulting interface change.

Add dprintf's to generic_getfssec() and a few other routines.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoiso9660: use boot_info_table and fix hybrid mode
H. Peter Anvin [Fri, 26 Feb 2010 21:18:26 +0000 (13:18 -0800)]
iso9660: use boot_info_table and fix hybrid mode

In hybrid disk mode, one block will generally *not* equal one sector.
Use the boot_info_table to find the primary volume descriptor.
Remove the now-unused cdrom_read_blocks().

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoiso9660: use generic_getfssec()
H. Peter Anvin [Fri, 26 Feb 2010 20:12:12 +0000 (12:12 -0800)]
iso9660: use generic_getfssec()

Use generic_getfssec() for iso9660.  This is a particularly simple
case, since all iso9660 files (that we support) are contiguous.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: add generic getfssec
H. Peter Anvin [Fri, 26 Feb 2010 20:11:18 +0000 (12:11 -0800)]
fs: add generic getfssec

Add a generic getfssec method which operate on cached extents. This
should avoid the need to each filesystem to implement its own getfssec
loop.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore/readdir.c: remove unused variable
H. Peter Anvin [Fri, 26 Feb 2010 20:10:29 +0000 (12:10 -0800)]
core/readdir.c: remove unused variable

Remove an unused variable in opendir().

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs/iso9660: remove unused variables
H. Peter Anvin [Fri, 26 Feb 2010 19:43:44 +0000 (11:43 -0800)]
fs/iso9660: remove unused variables

Remove variables which are no longer used.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodos: make sure we don't look like a Windows image
H. Peter Anvin [Fri, 26 Feb 2010 18:16:48 +0000 (10:16 -0800)]
dos: make sure we don't look like a Windows image

Some tools might assume that the reloc offset being 64 automatically
means it's really a Windows file.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodoc: document 32-bit-only API calls
H. Peter Anvin [Thu, 25 Feb 2010 06:20:19 +0000 (22:20 -0800)]
doc: document 32-bit-only API calls

As long as we have a pretence of an ABI we should at least keep it
updated.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoopendir: remove unnecessary buffer pointer
H. Peter Anvin [Thu, 25 Feb 2010 06:16:24 +0000 (22:16 -0800)]
opendir: remove unnecessary buffer pointer

We don't need to abuse the InitRD buffer anymore.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoiso9660: make readdir() work syslinux-4.00-pre27
H. Peter Anvin [Thu, 25 Feb 2010 05:42:08 +0000 (21:42 -0800)]
iso9660: make readdir() work

Make readdir work on iso9660.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoopendir: use internal protected-mode interfaces
H. Peter Anvin [Thu, 25 Feb 2010 05:31:02 +0000 (21:31 -0800)]
opendir: use internal protected-mode interfaces

No need to do yet another bounce through lowmem for no good reason.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: searchdir: handle opening a directory
H. Peter Anvin [Thu, 25 Feb 2010 05:29:33 +0000 (21:29 -0800)]
fs: searchdir: handle opening a directory

Handle the case of opening a directory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: cleanups: use PVT() macro for all filesystems; iso9660 cleanups
H. Peter Anvin [Thu, 25 Feb 2010 05:04:29 +0000 (21:04 -0800)]
fs: cleanups: use PVT() macro for all filesystems; iso9660 cleanups

Use a PVT() macro and a structure to access the private inode data for
all filesystems, instead of open-coding the type.

Use a packed structure for iso9660, instead of open-coding pointer
casts.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoisolinux: 7C00h -> TEXT_START
H. Peter Anvin [Thu, 25 Feb 2010 02:38:17 +0000 (18:38 -0800)]
isolinux: 7C00h -> TEXT_START

Use the TEXT_START macro instead of hard-coding 7C00h.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoisolinux: drop dependency on core_xfer_buf in self-loader syslinux-4.00-pre26
H. Peter Anvin [Thu, 25 Feb 2010 02:27:29 +0000 (18:27 -0800)]
isolinux: drop dependency on core_xfer_buf in self-loader

Drop the dependency on core_xfer_buf in the self-loader, and instead
load the data aligned to an offset, and then bulk-move it into place.
diskstart.inc will need to do something similar if/when support is
added for > 1K sectors on BIOS.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore/mem: better dprintf()
H. Peter Anvin [Thu, 25 Feb 2010 02:25:58 +0000 (18:25 -0800)]
core/mem: better dprintf()

Add a few dprintf() statements to the core malloc/free which makes it
easier to track down bugs.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: fix double free of pathbuf, constify iget filename, fix iso9660
H. Peter Anvin [Thu, 25 Feb 2010 02:24:14 +0000 (18:24 -0800)]
core: fix double free of pathbuf, constify iget filename, fix iso9660

Fix double free of pathbuf in searchdir().
Constify the pathname passed to ->iget().
Major cleanups of the iso9660 filesystem; it would use insufficiently
dimensioned stack variables and do compares in a rather inefficient
manner.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32: replace hard-coded bounce buffer use in com32/lib syslinux-4.00-pre25
H. Peter Anvin [Wed, 24 Feb 2010 22:18:49 +0000 (14:18 -0800)]
com32: replace hard-coded bounce buffer use in com32/lib

Replace hard-coded bounce buffer uses in com32/lib with lmalloc/lfree.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: fix lowmem malloc
H. Peter Anvin [Wed, 24 Feb 2010 22:16:15 +0000 (14:16 -0800)]
core: fix lowmem malloc

a) initialize *all* the head nodes
b) the lowmem heap needs to be paragraph (16 byte) aligned
c) use a dedicated tag value for headnodes.  The type code should be
   removed and replaced with special tag values for head node and
   free.
d) for libcom32 code called from the core, do NOT present a
   usable bounce buffer; we should only ever use lmalloc/lfree.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32: add lzalloc()
H. Peter Anvin [Wed, 24 Feb 2010 20:01:59 +0000 (12:01 -0800)]
com32: add lzalloc()

Add lzalloc().

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agolmalloc: set errno on failure
H. Peter Anvin [Wed, 24 Feb 2010 19:58:42 +0000 (11:58 -0800)]
lmalloc: set errno on failure

The core function can't set the com32 errno, so we need to do it in
the wrapper.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32: wrapper functions for lowmem allocations
H. Peter Anvin [Wed, 24 Feb 2010 19:56:43 +0000 (11:56 -0800)]
com32: wrapper functions for lowmem allocations

lmalloc(), lfree(), lstrdup()

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: move aligned segments earlier
H. Peter Anvin [Wed, 24 Feb 2010 19:14:04 +0000 (11:14 -0800)]
core: move aligned segments earlier

Move the aligned segments downward, to provide for the largest
possible contiguous lowmem heap.  This minimizes the necessary lowmem
footprint.  (Note: the heap doesn't actually need to be contiguous,
but having it not be makes it harder to size.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: use better malloc; add low memory malloc; fix com32 exit
H. Peter Anvin [Wed, 24 Feb 2010 06:32:32 +0000 (22:32 -0800)]
core: use better malloc; add low memory malloc; fix com32 exit

Use a better malloc for the core.  In particular, use the same core
that we should eventually be able to use for the entire system in
Syslinux 5 -- with module awareness, etc.

This code can also accommodate multiple heaps.  Set up a separate heap
for lowmem; the intent is to use explicit lowmem allocations instead
of the static bounce buffer.  The lowmem allocation is also exported
via the pmapi mechanism, so modules can safely allocate lowmem.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: clean up/fix generation of ipappend strings
H. Peter Anvin [Wed, 24 Feb 2010 03:35:11 +0000 (19:35 -0800)]
pxe: clean up/fix generation of ipappend strings

Clean up and fix the generation of the ipappend strings.  In
particular, BOOTIF= was generated into a buffer which was too small.
Put the buffer definitions in C while we're at it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs/pxe: drop the use of PKTBUF_SEG
H. Peter Anvin [Wed, 24 Feb 2010 03:16:34 +0000 (19:16 -0800)]
fs/pxe: drop the use of PKTBUF_SEG

Drop the use of a magic PKTBUF_SEG, and instead just have a high
memory buffer for each file, and a single lowmem buffer that we reuse
at will.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'pxefix' into pathbased
H. Peter Anvin [Wed, 24 Feb 2010 03:11:13 +0000 (19:11 -0800)]
Merge branch 'pxefix' into pathbased

14 years agopxe: set the block size in the fs structure
H. Peter Anvin [Wed, 24 Feb 2010 03:09:44 +0000 (19:09 -0800)]
pxe: set the block size in the fs structure

For better or worse, we use block counts for communicating with the
filesystem.  It would therefore be rather polite to tell them what
block size we expect.

This fixes a boot failure with the new loadhigh routine.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: add a direct 32-bit API
H. Peter Anvin [Wed, 24 Feb 2010 02:14:12 +0000 (18:14 -0800)]
core: add a direct 32-bit API

Add a direct 32-bit API to some functions; initially read file only.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopathbased:btrfs use iget interface and leverage general search routing
Alek Du [Mon, 22 Feb 2010 07:09:12 +0000 (15:09 +0800)]
pathbased:btrfs use iget interface and leverage general search routing

Now btrfs won't export its own searchdir, it uses the iget and
iget_root interface.

Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore/com32.inc: warn about possible double use of core_xfer_buf
H. Peter Anvin [Mon, 22 Feb 2010 01:55:57 +0000 (17:55 -0800)]
core/com32.inc: warn about possible double use of core_xfer_buf

core_xfer_buf is still used as bounce buffer by libcom32 code linked
into the core.  This is likely unsafe -- needs to be fixed.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: rewrite loadhigh in C
H. Peter Anvin [Mon, 22 Feb 2010 01:53:23 +0000 (17:53 -0800)]
core: rewrite loadhigh in C

Rewrite the loadhight function in C, and eliminate double usage of
xfer_buf_seg.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocom32: go back to using real_mode_seg as bounce buffer
H. Peter Anvin [Mon, 22 Feb 2010 00:07:54 +0000 (16:07 -0800)]
com32: go back to using real_mode_seg as bounce buffer

Go back to using real_mode_seg as bounce buffer; this reserves
xfer_buf_seg strictly for the in-core filesystem code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: let xfer_buf_seg, real_mode_seg be assigned by the linker
H. Peter Anvin [Sun, 21 Feb 2010 23:42:03 +0000 (15:42 -0800)]
core: let xfer_buf_seg, real_mode_seg be assigned by the linker

Use the linker to assign xfer_bug_seg and real_mode_seg.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge remote branch 'origin/master' into pathbased
H. Peter Anvin [Sun, 21 Feb 2010 06:41:34 +0000 (22:41 -0800)]
Merge remote branch 'origin/master' into pathbased

14 years agolibpci: merge BIOS read and BIOS write
H. Peter Anvin [Sun, 21 Feb 2010 06:26:39 +0000 (22:26 -0800)]
libpci: merge BIOS read and BIOS write

Save a few bytes by merging the very similar BIOS read and BIOS write
functions.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoi915resolution: use libpci to access PCI config space syslinux-3.85 syslinux-3.85-pre13
H. Peter Anvin [Wed, 17 Feb 2010 04:12:57 +0000 (20:12 -0800)]
i915resolution: use libpci to access PCI config space

Use libpci to access PCI config space.  This *hopefully* will make it
less likely that some old machine hangs when failing to set the
requested video mode.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoNEWS: document i915resolution merge. syslinux-3.85-pre12
H. Peter Anvin [Tue, 16 Feb 2010 23:11:09 +0000 (15:11 -0800)]
NEWS: document i915resolution merge.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'i915res'
H. Peter Anvin [Tue, 16 Feb 2010 23:09:31 +0000 (15:09 -0800)]
Merge branch 'i915res'

14 years agocore: use vk_append for function 0016h temp storage syslinux-4.00-pre24
H. Peter Anvin [Tue, 16 Feb 2010 22:53:51 +0000 (14:53 -0800)]
core: use vk_append for function 0016h temp storage

a) we have to copy the command line tail earlier - the pm_*
   calls may use xfer_buf_seg in particular.
b) use vk_append rather than trackbuf; vk_append should definitely
   be unused.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: remove stray -DDEBUG
H. Peter Anvin [Tue, 16 Feb 2010 22:27:10 +0000 (14:27 -0800)]
core: remove stray -DDEBUG

Remove stray -DDEBUG that should not have been committed.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoext2: handle symlinks larger than a single block
H. Peter Anvin [Tue, 16 Feb 2010 22:09:03 +0000 (14:09 -0800)]
ext2: handle symlinks larger than a single block

There is no law that symlinks has to be a single block only.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoext2: a zero block number is actually legit
H. Peter Anvin [Tue, 16 Feb 2010 21:57:30 +0000 (13:57 -0800)]
ext2: a zero block number is actually legit

It may not happen in normal operation, but a zero block value is legit
and means an all-zero block.  For anything which uses the cache, we
have dealt with that by always keeping a zero block in the cache.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoext2: drop any 64K limit
H. Peter Anvin [Tue, 16 Feb 2010 21:52:09 +0000 (13:52 -0800)]
ext2: drop any 64K limit

There is no point in maintaining a 64K limit; this is handled at a
lower level in the disk I/O library if appropriate.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: move the disk cache into high memory
H. Peter Anvin [Tue, 16 Feb 2010 21:49:33 +0000 (13:49 -0800)]
fs: move the disk cache into high memory

Move the disk cache out of the DOS memory area.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoext2: fix confusion between logical and physical block numbers
H. Peter Anvin [Tue, 16 Feb 2010 21:37:42 +0000 (13:37 -0800)]
ext2: fix confusion between logical and physical block numbers

Fix a minor confusion between logical and physical block numbers in
the new iterative bmap implementation.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocache: fix cache initialization
H. Peter Anvin [Tue, 16 Feb 2010 21:36:59 +0000 (13:36 -0800)]
cache: fix cache initialization

Fix the cache initialization; in particular make sure dev->cache_head
actually gets set.  Also, just use a plain division to figure out how
many entries we can fit in the cache.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: move cache_init() into fs_init, to handle special needs
H. Peter Anvin [Tue, 16 Feb 2010 20:22:12 +0000 (12:22 -0800)]
fs: move cache_init() into fs_init, to handle special needs

Move cache_init() into the fs_init methods, to accommodate special
handling, e.g. the all-zero zero block for ext2.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoext2: fix bmap block number breakage
H. Peter Anvin [Tue, 16 Feb 2010 20:21:48 +0000 (12:21 -0800)]
ext2: fix bmap block number breakage

Fix the handling of block numbers in the bmap loop.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocache: fix _get_cache_block() return, add lock_cache_block()
H. Peter Anvin [Tue, 16 Feb 2010 20:20:36 +0000 (12:20 -0800)]
cache: fix _get_cache_block() return, add lock_cache_block()

Correct the return value from _get_cache_block(), and add a method for
locking a block permanently in the cache.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocache: update the metadata cache design
H. Peter Anvin [Tue, 16 Feb 2010 20:01:19 +0000 (12:01 -0800)]
cache: update the metadata cache design

- instead of get_cache_block() returning a descriptor, have
  get_cache() returning const void *.
- have a subfunction to allow getting a block without reading it
  from disk, and returning the cache descriptor.  This will be
  used in ext2 to pre-seed block 0 with all zero.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: move fs-related C files into fs/
H. Peter Anvin [Tue, 16 Feb 2010 18:35:34 +0000 (10:35 -0800)]
core: move fs-related C files into fs/

Move filesystem-related C files into the fs/ directory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: remove obsolete assembly strecpy.inc
H. Peter Anvin [Tue, 16 Feb 2010 18:33:21 +0000 (10:33 -0800)]
core: remove obsolete assembly strecpy.inc

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agocore: remove obsolete assembly cache.inc
H. Peter Anvin [Tue, 16 Feb 2010 18:32:29 +0000 (10:32 -0800)]
core: remove obsolete assembly cache.inc

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agofs: use malloc'd mutable pathname buffers syslinux-4.00-pre23
H. Peter Anvin [Tue, 16 Feb 2010 17:33:28 +0000 (09:33 -0800)]
fs: use malloc'd mutable pathname buffers

Use malloc'd mutable pathname buffers during pathname walks.  This
avoids the need for very large static buffers, as well as the need to
copy character by character.  It also handles the symlink case fairly
nicely.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoext2: clean up types in the bmap functions
H. Peter Anvin [Tue, 16 Feb 2010 17:24:21 +0000 (09:24 -0800)]
ext2: clean up types in the bmap functions

No need to take an explicit fs pointer when we're passing an inode
anyway...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
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 agoMakefile: dos/copybs.com now in dosutil
H. Peter Anvin [Mon, 15 Feb 2010 23:22:24 +0000 (15:22 -0800)]
Makefile: dos/copybs.com now in dosutil

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agodosutil: move copybs here, update Makefile
H. Peter Anvin [Mon, 15 Feb 2010 23:19:54 +0000 (15:19 -0800)]
dosutil: move copybs here, update Makefile

Move copybs to dosutil, change the Makefile to deal with UPX being
able to compress (e.g. very small files.)

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 agoMerge branch 'master' into i915res syslinux-3.85-pre63
H. Peter Anvin [Mon, 8 Feb 2010 22:39:20 +0000 (14:39 -0800)]
Merge branch 'master' into i915res

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>