H. Peter Anvin [Tue, 30 Mar 2010 23:17:59 +0000 (16:17 -0700)]
Merge branch 'master' into pathbased
Resolved Conflicts:
com32/modules/Makefile
core/comboot.inc
core/cpuinit.inc
core/idle.inc
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 30 Mar 2010 23:06:39 +0000 (16:06 -0700)]
core: move idle handling into protected mode
Do the actual idling in protected mode. This both allows PM code a
more efficient interface, but also handles bugs in HVM implementations
which don't handle HLT in real mode.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 30 Mar 2010 22:21:16 +0000 (15:21 -0700)]
NEWS: document MEMDISK offset fix
Bodo Stroesser [Tue, 23 Mar 2010 16:56:29 +0000 (17:56 +0100)]
memdisk: MBR not recognized correctly
This fixes a small inaccuracy in memdisk:
get_disk_image_geometry() does not use MBR data to detect disk
geometry, since it checks MBR signature at wrong offset.
This normally does not cause problems, because memdisk guesses a
reasonable value, if no MBR is found.
Signed-off-by: Bodo Stroesser <bstroesser at ts.fujitsu.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 30 Mar 2010 22:18:55 +0000 (15:18 -0700)]
NEWS: update
H. Peter Anvin [Tue, 30 Mar 2010 22:13:58 +0000 (15:13 -0700)]
core: remove do_idle from pollchar
Remove do_idle from pollchar; it is highly inappropriate while, for
example, checking for a keypress during disk activity. Furthermore,
make sure we reset the idle counter on events that indicate actual
disk activity.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 30 Mar 2010 22:05:17 +0000 (15:05 -0700)]
cpuid.c32: very simple low-level CPUID info CLI routine
Add a very simple com32 program to dump a single CPUID leaf.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 30 Mar 2010 22:02:36 +0000 (15:02 -0700)]
core: Workaround for Xen HVM HLT-in-real-mode bug
Xen HVM when used with the "vmxassist" program crashes if HLT is
executed in real mode. Detect a version of Xen old enough to support
"vmxassist", and if it is found, then disable HLT.
See: https://bugzilla.redhat.com/show_bug.cgi?id=570496
Reported-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 30 Mar 2010 20:37:41 +0000 (13:37 -0700)]
Clean up the version/copyright strings reported via the comboot API
Skip leading garbage in the version and copyright strings reported via
the comboot API. Clean up fixes for those, and document the situation.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Tue, 30 Mar 2010 00:34:22 +0000 (17:34 -0700)]
Merge branch 'master' into pathbased
Resolved Conflicts:
MCONFIG.embedded
com32/MCONFIG
com32/include/com32.h
core/com32.inc
core/pxelinux.asm
doc/comboot.txt
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 29 Mar 2010 23:58:30 +0000 (16:58 -0700)]
com32: export the filename of a com32 module to the module itself
Export the filename of the com32 module to the module itself, setting
argv[0].
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 29 Mar 2010 20:50:45 +0000 (13:50 -0700)]
MCONFIG: update gcc options for embedded and com32
Update the gcc options used for embedded and for com32 and make sure
they match.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
H. Peter Anvin [Mon, 29 Mar 2010 20:22:45 +0000 (13:22 -0700)]
mboot: set boot loader name
Set the boot loader name based on syslinux_version()->version_string.
Based on a prior patch by Sebastian Herbszt <herbszt@gmx.de>.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Sebastian Herbszt [Sun, 21 Mar 2010 20:55:00 +0000 (21:55 +0100)]
gpllib: fix call to CPUID function 4
Only call CPUID function 4 if cpuid_level indicates its availability.
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Sebastian Herbszt [Sun, 21 Mar 2010 12:23:17 +0000 (13:23 +0100)]
core: use MY_NAME for syslinux_banner
Use MY_NAME for syslinux_banner in isolinux and pxelinux.
This is already done in ldlinux and extlinux.
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 15 Mar 2010 05:01:19 +0000 (22:01 -0700)]
dir.c32: show long directories in pages
When columnizing large directories, columnize only inside of a page,
i.e. show:
a d g
b e h
c f i
j m p
k n q
l o r
This seems to have the best readability.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Wed, 10 Mar 2010 05:20:55 +0000 (21:20 -0800)]
fat: fix the type of get_inode_mode()
get_inode_mode() returns enum dirent_type.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Wed, 10 Mar 2010 05:19:09 +0000 (21:19 -0800)]
iso9660: set the type of get_inode_type()
get_inode_type() returns enum dirent_type.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 9 Mar 2010 23:48:24 +0000 (15:48 -0800)]
fs: get rid of enum inode_mode
Replace enum inode_mode with the equivalent enum dirent_type.
Alek Du [Tue, 9 Mar 2010 05:34:03 +0000 (13:34 +0800)]
btrfs: Implement readdir operation
Tested with dir.c32. Also use the new IFTODT macro to convert fs inode
mode to internal dirent mode.
Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 9 Mar 2010 05:04:24 +0000 (21:04 -0800)]
sys/dirent.h: conversion macros between d_type and st_mode
Conversion macros to change between d_type and st_mode values.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Tue, 9 Mar 2010 04:56:55 +0000 (20:56 -0800)]
loadconfig: replace printf() with dprintf()
It's a debugging statement, just dprintf() it.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 8 Mar 2010 05:27:15 +0000 (21:27 -0800)]
Changes missing from previous checkin
Add files missing from previous checkin...
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 8 Mar 2010 05:05:51 +0000 (21:05 -0800)]
pxe: move port allocation to a separate file; use dynamic port for DNS
Move all local port number allocation to a separate file, and use that
API to allocate a dynamic port number for DNS queries.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Mon, 8 Mar 2010 04:50:35 +0000 (20:50 -0800)]
pxe: make have_uuid a bool
Make have_uuid a bool, and clarify the logic for setting it.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sun, 7 Mar 2010 05:44:42 +0000 (21:44 -0800)]
core: don't bother zeroing the disk cache and heap
No point in zeroing out the disk cache and the heap. Put those in a
.hugebss section which we align, but don't zero.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sun, 7 Mar 2010 05:30:56 +0000 (21:30 -0800)]
core: page-align .earlybss
Leave the entire first page unmolested.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sun, 7 Mar 2010 05:29:47 +0000 (21:29 -0800)]
core: use assembly for the .stack section
Use assembly to define the .stack section, so that it get proper
attributes.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sun, 7 Mar 2010 02:08:28 +0000 (18:08 -0800)]
pxe: use an inode structure for pxe
Use an inode structure for PXE as well. Even though this is really
rather superfluous in the case of PXE, it eliminates an ugly special
case in the generic code.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sun, 7 Mar 2010 02:02:35 +0000 (18:02 -0800)]
mem: increase the heap size to 128K
Use 128K for the heap, to allow TFTP buffers to be allocated there.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 23:13:36 +0000 (15:13 -0800)]
dir.c32: allow "dir" without an argument to mean "dir ."
People logically expect "dir" to display the current directory.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 23:07:53 +0000 (15:07 -0800)]
ext2: return the correct file types from readdir()
Return the global file types, not the ext2-specific ones.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 22:52:35 +0000 (14:52 -0800)]
dir.c32: sort, columize and page the output
Make the output of dir.c32 actually usable for an average user.
Present the directory contents sorted in columns, and pause for every
screenful.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 22:51:08 +0000 (14:51 -0800)]
core/fs: clean up, fix and improve the internal readdir() interfaces
- Avoid a completely unnecessary malloc/free pair by passing a pointer
to the filesystem driver;
- Make sure d_reclen is always set correctly;
- Make sure the d_type field is set correctly.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 22:50:20 +0000 (14:50 -0800)]
dirent.h: types for the d_type field
Add an enum for the DT_* constants for the d_type field.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 22:49:40 +0000 (14:49 -0800)]
stdcon: make the screen size available
Make the screen size available when using stdcon, not just ansicon.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 22:49:10 +0000 (14:49 -0800)]
qsort: handle the case of zero entries
Avoid bugs when the qsorted array is empty.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 19:55:57 +0000 (11:55 -0800)]
Add 32-bit versions of open file/close file
Add 32-bit API calls for open file and close file.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Sat, 6 Mar 2010 05:02:54 +0000 (21:02 -0800)]
fat: fixing filenames with multiple-of-13 names broke all others
The fix for filenames with names that were multiples of 13 broke all
*other* filenames. Fix both, this time...
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 5 Mar 2010 19:28:06 +0000 (11:28 -0800)]
Merge remote branch 'origin/master' into pathbased
Resolved Conflicts:
version
H. Peter Anvin [Fri, 5 Mar 2010 19:22:52 +0000 (11:22 -0800)]
Merge remote branch 'origin/master' into pathbased
H. Peter Anvin [Fri, 5 Mar 2010 19:19:16 +0000 (11:19 -0800)]
NEWS, version: update for 3.86
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 5 Mar 2010 19:13:28 +0000 (11:13 -0800)]
chain.c32: Fix chaining to MBRs
The change to load the bootsector even when loading a bootstrap from a
file broke the handing of chainloading the MBR of a disk. Fix this.
Debugging-info-by: Thomas Mieslinger <thomas.mieslinger@lundl.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 5 Mar 2010 18:58:42 +0000 (10:58 -0800)]
VFAT: handle filenames with are exact multiples of 13
Filenames in VFAT that are exact multiples of 13 are not
null-terminated; handle that particular subcase.
Reported-by: Gert Hulselmans <gerth@zytor.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 5 Mar 2010 18:29:11 +0000 (10:29 -0800)]
lmalloc: add <string.h> for lzalloc
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 5 Mar 2010 06:54:07 +0000 (22:54 -0800)]
readdir: replace opendir/readdir/closedir API with a 32-bit API
The 16-bit API to opendir/readdir/closedir was confused, had a memory
leak, and was incompatible with Syslinux 3.x anyway. Replace it with
a pure 32-bit API.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 5 Mar 2010 00:54:10 +0000 (16:54 -0800)]
extlinux: centralize file flags setting; add FAT support
Centralize the poking at file flags.
Add FAT support to file flags setting (S bit).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
H. Peter Anvin [Fri, 5 Mar 2010 00:37:49 +0000 (16:37 -0800)]
extlinux: don't report failure after writing a FAT superblock
Missing parens made us return failure after successfully writing a FAT
superblock.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
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>