| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Rewrite the algorithm to prefer entries which can be directly moved
into their target slots; this should reduce the number of descriptors
in most cases (although not necessarily *all* cases.)
Try to clean up the code some while we're at it... the code is
confusing enough as it is.
|
| |
|
|
|
| |
The old code could fail to coalesce backwards in the case where a
range is totally obliterated. For now, just scan the whole list.
|
| |
|
|
|
|
| |
Use the syslinux_memmap data structure for the free memory list. This
means we get range coalescing; this sometimes generates lists that are
vastly shorter than without range coalescing.
|
| |
|
|
|
| |
Handle the case of an upward move when there is something in the way.
This happens when loading an SDI image.
|
| | |
|
| |
|
|
|
| |
Actually implement the library function syslinux_ipappend_strings(),
which had been in the header files but not in the actual library.
|
| |
|
|
|
|
|
|
|
|
|
| |
The memory used to hold shuffle descriptors must be unused during the
entire execution of the shuffle sequence, and therefore needs to be
free at input *and* output time.
Once we have picked a region for the shuffle descriptors, we can free
this working copy and start over with a clean memory map, the only
thing we do there is mark as reserved the memory used by the
descriptors.
|
| |
|
|
|
| |
Only use 64 as a static guarantee of the number of shuffle
descriptors; corresponding to 768 bytes of memory.
|
| |
|
|
|
| |
Query the maximum number of shuffle descriptors, and use that number
as the descriptor block size.
|
| |
|
|
|
|
| |
It is safe to assume that the number of moves will never decrease as
the reserved memory space increases; thus, no need to do individual
increments; skip ahead.
|
| |
|
|
|
| |
Allocate high memory out of the way to hold the shuffle descriptors,
and generate continuation descriptors as needed.
|
| |\
| |
| |
| |
| |
| | |
Conflicts:
extlinux/extlinux.c
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
size == 0 means delete item; we don't want a header then.
size > 255 is always an error.
|
| | | |
|
| |/
|
|
|
| |
Initial support for the auxillary data vector, a storage mechanism
intended to support boot-once and similar features.
|
| |
|
|
|
| |
Put (disabled) debugging code in shuffle.c and load_linux.c for future
needs.
|
| | |
|
| | |
|
| |
|
|
|
| |
Seems the su_heapend field was never set up right; also sanitize the
way the pre-2.02 command line is handled.
|
| |
|
|
|
| |
If we have a modern kernel which is loaded high, we can allow a lot
more space for the real-mode heap.
|
| |
|
|
| |
Add syslinux_run_kernel_image() wrapper function for API function 0016h.
|
| |
|
|
| |
Add API wrapper function for the Local Boot function.
|
| | |
|
| |
|
|
|
|
|
|
| |
Add implementations of a few more syslinux wrapper functions:
syslinux_run_command()
syslinux_run_default()
syslinux_final_cleanup()
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Move <syslinux.h> to <syslinux/idle.h> since that was all that was there;
do_idle() in libutil can simply be a macro for syslinux_idle() or
sched_yield() as appropriate.
|
| |
|
|
|
|
| |
cpio has annoying alignment constraints; make it possible to enforce
them without adding padding to the end of last member (which breaks things
which relies on gzip and need to know the final length.)
|
| |
|
|
|
|
| |
Library support for constructing initramfs. This version is *not*
complete, as it doesn't take into account alignment requirements
properly.
|
| | |
|
| |
|
|
|
| |
Beginnings of higher-level functions for PXE support. For now, only
pxe_get_cached_info() is actually supported.
|
| | |
|
| |
|
|
|
| |
- Add an API function to shuffle and boot which sets *all* RM registers;
- Move those structures to <syslinux/bootpm.h> and <syslinux/bootrm.h>
|
| |
|
|
|
|
| |
The shuffle and boot interface, including the library support, should now
work as advertised. Add an ELF-loading module as a demo, and it's probably
useful for someone, too.
|
|
|
Initial checkin of a wrapper infrastructure for the "shuffle and boot"
interface, both real and protected mode. This code automatically will
figure out the necessary sequence of moves, taking into account swaps
and overlaps as necessary.
|