| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The command line pointer depends on real_mode_base, so we can't set it
up until we know where the real mode code will actually land.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
| |
The command line existed before the 2.00 boot protocol, it was the
initrd which was the new addition to that version. Therefore, allow
the command line to be set even for the ancient kernels.
This is necessary to specify a command line for memtest86+.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
| |
The foreground bright bit number is bit 3.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
Introduce display_mask_vga() which does the necessary converting of
UsingVGA into a mask to be AND'd with DisplayMask.
Also, apply TextAttribute when clearing the screen after we've seen a
form feed.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
On ISOLINUX and PXELINUX, CurrentDirName doesn't contain anything
useful when we enter load_env32(). commit 10bb72d1528b ("PATH: Use
installation directory for 'PATH'") didn't handle the case where we
don't have an installation path, or don't find ldlinux.c32 there. If
we find ldlinux.c32 in one of 'search_directories' use that directory
as the PATH string.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
| |
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
into elflink
Pull AsciiDoc-based documentation from Gene Cumm,
* 'doc-elflink-for-mfleming' of git://github.com/geneC/syslinux:
txt/Makefile: make directories
txt/: Remove COMBOOT as of 5.00; spelling; add PATH
NEWS: add txt/
Makefile: add txt/
txt/: Add new AsciiDoc formatted documentation
|
| | |
|
| |
| |
| |
| |
| |
| | |
Also changing markup for AsciiDoc
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
into elflink
Pull XFS changes from Paulo Alcantara,
"feel free to pull my for-upstream branch on zytor. it contains the
cache for directory blocks on XFS, ldlinux.c32 installation support
for XFS and one trivial fix for shortform-directory lookup."
* 'for-upstream' of git://git.zytor.com/users/pcacjr/syslinux:
extlinux: Also install ldlinux.c32 file on XFS
xfs: Flush cache of directory blocks once done with readdir()
xfs: Remove unnecessary free()'s
xfs: Fix bug when listing shortform directory entries
xfs: Add cache for directory blocks
xfs: Make xfs_dir2_entry_name_cmp() inline
xfs: Avoid useless malloc()'s and free()'s
xfs: Make it more verbose on debug
xfs: Improve error and debug printing
xfs: Do some refactoring
|
| | |
| | |
| | |
| | | |
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Those freed memories are all now cached and need to get flushed at some
point.
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The xfs_fmt_local_readdir() function should call xfs_readdir_dir2_local()
instead.
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This cache will avoid lots of malloc() and free() calls for getting an
allocated area for directory blocks whenever listing and finding
directory entries.
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This patch speeds up the process of retrieving and comparing entry names
while looking up inodes.
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Paulo Alcantara <pcacjr@zytor.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Tagging __syslinux_get_serial_info() with __constructor is pretty
useless when the global variables it uses, such as SerialPort, etc,
are assigned *after* the constructor has run. This constructor made
sense when config parsing was done by the core, but parsing is now
performed by ldlinux. We need to explicitly invoke the function to
initialise __syslinux_serial_console_info once we've parsed any config
files.
eprintf.c was introduced in commit 086d698c642f ("ldlinux: Add
eprintf() to print to VGA and serial") because printf() output wasn't
appearing on the serial console. It turns out that the above
__constructor confusion was the real bug.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There was a bug introduced when this code was copied from the old 4.x
assembly implementation, we don't need to update UsingVGA everytime we
read a character, we only need its value when comparing it against the
DisplayMask.
This bug caused every other character to be displayed when only
writing to the text console, as well as other nasties such as making
syslinux_force_text_mode() think it's in VGA mode even when it's in
text mode.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also, because we no longer pass the allocated buffer to __intcall()
and friends we can use malloc() instead of lmalloc(), leaving precious
low memory for other users.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The ansi code won't handle \f the way we want, so we need to
explicitly clear the screen and reset the cursor position, like the
old 4.x code.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It's easy for cur_module and prev_module to get out of sync with
reality (the actual module that is running), so add module_current()
which returns the module at the head of the module_list, i.e. the
module that was loaded most recently. Better still, by using the list
we don't have to do any kind of stacking of module pointers ourselves.
This fixes a bug where cur_module contained a stale pointer (the
module had actually been unloaded) but the pointer value had since
been reallocated for a new module in spawn_load(), meaning that the
following check,
if (!strcmp(cur_module->name, module->name))
was always going to be true, even though *no* module was actually
loaded at this point as we were reloading ldlinux.c32 from
start_ldlinux(). This could have been fixed with a NULL-assignment
after module_unload(), but using the modules_head list to detect the
current module is much cleaner.
Note that the core module loaded in load_env32() is always on the
list, therefore module_current() will always return a valid pointer.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A struct s_hardware is far too large to be placed onto the stack and
was causing us run past the end of the allocated stack and overwrite
the diskcache, which resulted in apparent file system corruption.
Move this hefty object into the bss.
Cc: Erwan Velu <erwanaliasr1@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Don't dereference a NULL ctor/dtor as that can cause us to crash.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of blindly writing through a possible-NULL pointer, check the
return value of malloc().
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Remove the superfluous call from init().
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Failure to do so means we may put a free block in some random location
because ARENA_HEAP_GET() can return something invalid when used to
find the correct free list in __free_block().
This bug manifested as running out of available free memory.
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
git://github.com/geneC/syslinux into elflink
Pull clean up patch from Gene Cumm,
* 'com32lib_spotless_for_mfleming' of git://github.com/geneC/syslinux:
com32/lib: delete *.c32 on key target
|
| |/
| |
| |
| | |
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We need to allow PXELINUX to link with required symbols at runtime
otherwise, when executing prdhcp.c32, the user will be presented with
the following message,
Error: An undefined symbol was referenced
Add pxe_call, dns_resolv and unload_pxe to the symbol whitelist.
Reported-by: Gene Cumm <gene.cumm@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|/
|
|
|
|
|
| |
The LZO decompressor really can't live in the compressed part of the
core, for some odd reason.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
| |
Meant to handle symbols exported from the core, but we just
pregenerate the dynamic section instead.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
| |
Switch LZO decompressor to the "fast safe" version (and bump LZO
source to version 2.06). This allows us to use that decompressor for
module compression later without carrying another decompressor.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
| |
Remove some stale (16-bit compatibility) functions in fs.c.
Add some debugging for inode refcounts.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
| |
io_delay() defined in bios.h depends on outb() defined in <sys/io.h>.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
| |
Conform to 8.3 filenames for essential files.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
| |
Conform to 8.3 filenames for essential files.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
| |
Always strip the modules; they are too big unstripped. Specifically,
we generate unstripped *.elf files, and then convert them to
stripped *.c32 files.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
DOS actually does provide the fully qualified pathname to the
executable, which would be useful to make ldlinux.c32 data rather than
live inside the executable itself -- it has gotten too large.
Also, move some DOS internals -- inline functions only used inside the
dos directory -- out of libinstaller.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old 4.x behaviour for handling CONFIG directives of the form,
CONFIG foo.cfg /bar
was to lookup the absolute pathname of foo.cfg, then chdir to /bar and
finally to parse foo.cfg. The 5.x behaviour reversed the chdir and
parsing steps. This meant if foo.cfg's contents were simply,
INCLUDE say.txt
4.x would include /bar/say.txt and 5.x would include
/boot/syslinux/say.txt (assuming the current working directory was
/boot/syslinux).
What's even worse is that because of the way 'config_cwd' is used in
5.x we'd actually perform the chdir() operation after the first
INCLUDE in foo.cfg, e.g.
INCLUDE say.txt
INCLUDE say.txt
would include /boot/syslinux/say.txt and /bar/say.txt, respectively.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
| |
And return NULL after printing an appropriate error message if the
call failed.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
| |
Any LABEL directive arguments shouldn't include whitespace
characters. If whitespace characters are needed use MENU LABEL.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
commit 14531c47bc95 ("core: Delete code that is duplicated in
ldlinux") erroneously deleted the BOOTIFStr and SYSUUIDStr entries
from the PXELINUX-version of IPAppends, meaning that IPAPPEND 3 and
IPAPPEND 4 didn't append the corresponding strings to the command
line.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to increment the Logical Block Address in eax by the number of
sectors we passed to getlinsec after every invocation, otherwise we'll
start with the same sector everytime.
This bug was discovered when booting an isohybrid image, which failed
to boot after printing the following error,
"Image checksum error, sorry..."
because the isolinux.bin was bigger than 32K, and thus invoked the
getlinsec loop that reads the file in chunks.
Cc: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|