H. Peter Anvin [Fri, 5 Mar 2010 00:36:32 +0000 (16:36 -0800)]
fat: fix longname matching
Fix longname matching, which was broken due to missing counter
decrement.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Alek Du [Wed, 3 Mar 2010 07:55:15 +0000 (15:55 +0800)]
btrfs: remove global fs ptr and clean up code
Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Wed, 3 Mar 2010 03:11:45 +0000 (19:11 -0800)]
btrfs: get rid of unnecessary _fs variable
Get rid of the unnecessary _fs variable in btrfs_fs_init(). The
compiler would have optimized it out anyway, but it's cleaner if it's
in the source.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Alek Du [Tue, 2 Mar 2010 06:35:22 +0000 (14:35 +0800)]
btrfs: Implement next_extent and call generic_getfssec
Now multiple extent allocation is supported.
Also fixed the symlink file handling and fs_init typo.
Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 17:01:27 +0000 (09:01 -0800)]
pxe: don't allow URL parsing to produce zero bytes; retune
Don't allow URL escapes to produce zero bytes (%00). Also, assume
TFTP URLs are going to be less common than "plain" filenames, so defer
the type testing until we know it's a URL.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 16:54:36 +0000 (08:54 -0800)]
Add simplified toupper, tolower, str[n]casecmp to core
(Missing from previous checkin)
Add simplified toupper(), tolower() and str[n]casecmp()
implementations to the core, good enough for ASCII e.g. for use in URL
parsing, or in config file decoding.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 07:08:52 +0000 (23:08 -0800)]
pxe: handle tftp:// URLs natively
Handle tftp:// URLs natively, instead of relying on gPXE. This also
allows for specifying a nonstandard TFTP port.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 06:15:45 +0000 (22:15 -0800)]
pxe: add a single-tick timeout for PXE stacks which eat transmits
Add a single-tick first-round timeout for PXE stacks which eat the
first transmit under certain circumstances, i.e. gPXE if the ARP table
isn't populated yet.
TODO: encapsulate all send packet/wait for reply code into a common
function.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 06:09:23 +0000 (22:09 -0800)]
gfxboot: remove 16-bit gfxboot module
Get rid of the 16-bit gfxboot module; use gfxboot.c32 instead.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 05:55:59 +0000 (21:55 -0800)]
fs: add no_next_extent() dummy function
Add a no_next_extent() dummy function for filesystems (like iso9660)
which should never end up calling next_extent (because there is only
one extent...)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 05:50:04 +0000 (21:50 -0800)]
core: fs: get rid of the prev_extent member
The prev_extent member was only ever used transiently; instead pass
the new lstart in as an argument and leave the previous value of
next_extent unmolested and thus can be used in-place.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 05:12:46 +0000 (21:12 -0800)]
core: get rid of unmangle_name completely
The notion of "mangle name" is now restricted to producing a canonical
representation, e.g. changing \ -> / for FAT filesystems. However,
the resulting mangled name is now always human-readable, so there
never is any reason to unmangle a name.
Get rid of not just the mangling, but of the resulting unmangled-name
buffers and so on.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 05:04:50 +0000 (21:04 -0800)]
core: remove unmangle_name
Remove the now-obsolete unmangle_name method.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 05:04:16 +0000 (21:04 -0800)]
core: add missing dependencies
We need to account for dependences as far down as we care about.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 04:58:38 +0000 (20:58 -0800)]
pxe: change debugging message to dprintf()
Marking debug messages is what dprintf() is for...
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 03:30:42 +0000 (19:30 -0800)]
memdisk: drop DEBUG from unzip.c
DEBUG doesn't work in unzip.c/inflate.c, so always #undef it.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 1 Mar 2010 03:29:48 +0000 (19:29 -0800)]
pxe: drop UDP close from unload sequence
UDP close is part of the reset sequence, not the unload sequence. Now
we always execute the reset sequence, so drop it from the unload
sequence.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
H. Peter Anvin [Wed, 24 Feb 2010 03:11:13 +0000 (19:11 -0800)]
Merge branch 'pxefix' into pathbased
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>
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>
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>
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>
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>
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>
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>
H. Peter Anvin [Sun, 21 Feb 2010 06:41:34 +0000 (22:41 -0800)]
Merge remote branch 'origin/master' into pathbased
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>
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>
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>
H. Peter Anvin [Tue, 16 Feb 2010 23:09:31 +0000 (15:09 -0800)]
Merge branch 'i915res'
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>