| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Support putting virtual kernels in high memory instead of using a
dedicated segment for it. This both reduces the low memory footprint
by 64K, and allows for functionally unlimited labels (tested with over
a hundred thousand.)
|
|
|
|
|
| |
Make "Hello, World!" a little bit more plain, but do print out its
arguments, if any. Useful for testing.
|
|
|
|
|
|
| |
Don't close the A20 gate (restore to previous state); leave it open.
This is good for performance, but also avoids a nasty race condition
when leaving protected mode to then quickly re-enter protected mode.
|
|
|
|
|
| |
Clean up the interface to simple_pm_call so we generally can avoid a
bunch of push/call/pop/ret boilerplate.
|
|
|
|
|
|
|
|
|
| |
Refactor the bcopy routine to be able to reuse the pm entry and exit
portion to call other "simple" protected-mode routines ("simple" in
the sense that no interrupt thunking support is present or expected.)
Note: consider whether or not it would be preferrable to move the
thunking support into low memory and have it be always present.
|
|
|
|
| |
Suppress a warning about unused arguments.
|
|
|
|
| |
We do dword accesses to the row buffer, so align it to 4 bytes.
|
|
|
|
|
| |
Add macros __aligned() (which takes a byte count), and __alignas()
(which takes a type or expression whose type is used, same as sizeof).
|
|
|
|
| |
Minor cleanups for clarity
|
|
|
|
|
| |
Move the debugging function to a separate header file, so we can
include it at will when convenient.
|
|
|
|
|
|
|
|
|
| |
Set the window size to 2 GB for linear framebuffer, lest the
calculation:
l = min(bytes, win_size-win_off);
... incorrectly returns zero when win_off == 0.
|
|
|
|
|
| |
When the output format is BGRA32, we don't need any conversion at
all. Skip the dummy copy.
|
|
|
|
|
|
| |
Simplify the code by treating linear framebuffer as a degenerate case
of a paged framebuffer (a single window covering all of memory, which
is already in position 0 - the only possible position.)
|
|
|
|
|
|
|
|
| |
Make pixel formatting an integral part of __vesacon_copy_to_screen().
In order to cut down on the dispatch overhead, make the formatting
functions contain the pixel loop, so we only do indirect dispatch
twice per pixel row - once for the formatting and once for copying to
the screen.
|
|
|
|
|
| |
Handle cases where __vesa_info.mi.bpp is not a multiple of 8, e.g. 15.
Remove totally redundant switch statement in vesacon_update_characters().
|
|
|
|
|
| |
Replace the C version of memmove() with a slightly more optimized
assembly version that at least can do dword-sized rep moves.
|
| |
|
|
|
|
|
| |
If there are manufacturers which don't support linear framebuffers out
there, then there is probably someone who want a 15-bit mode, too.
|
|
|
|
|
|
|
| |
Add support for paged ("banked", non-linear-framebuffer) VESA video
modes. Apparently some manufacturers haven't caught on that
non-linear graphics modes have been obsolete for 15 years or so
already.
|
|
|
|
|
| |
There was a comment which applied to SYSLINUX that had been copied
verbatim to the other derivatives; fix.
|
|
|
|
|
| |
The El Torito spec says "13", but it's implicitly hexadecimal. We got
it right in one place and wrong in another. Fix.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Move the prototypes for syslinux_shuffle_boot_[pr]m() from
<syslinux/movebits.h> to <syslinux/boot[pr]m.h>, which anyway has the
required structure definitions. #include <syslinux/movebits.h> in
those files instead of relying on forward structure definitions.
|
| |
|
|
|
|
|
|
|
| |
The file display and graphics routines used their own file management
since the old getc code did not nest. The new one does (necessary to
support INCLUDE), so use the same routines and get rid of the ad hoc
buffer management.
|
|
|
|
|
| |
Don't clobber AH when calling getc; when returning with CF=1 (EOF),
always return with AL=0.
|
| |
|
|
|
|
|
|
|
|
|
| |
Extend the command line size to 2047 characters. The editor probably
doesn't deal all that well with it; as it pretty much needs a
scrolling window of some sort (2047 characters is bigger than an 80x25
screen.)
Worry about that bit later.
|
|
|
|
|
|
|
|
|
| |
Change the command line limit to 2047 characters, which is also the
current kernel limit. As a result, shuffle around the memory layout
to make the larger buffers fit.
TODO: consider moving vgafontbuf to getcseg, and try to make do with
fewer command line-sized buffers.
|
|
|
|
|
|
|
|
|
| |
Remove the last few uses of getcbuf (to extend trackbuf for shuffle
descriptors, and for temp storage during pxelinux config file search.)
As a result, change the way RBFG_brainfuck is handled in pxelinux (at
some point it's probably not worth maintaining anymore, as RBFG is no
longer widely used); add a .bss2 section for the region between the
RBFG zone and the stack.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Make a static guarantee of a minimum of 256 shuffle descriptors.
|
| |
|
|
|
|
| |
Add support for sha256 and sha512 passwords in the simple menu system.
|
|
|
|
|
| |
We need _GNU_SOURCE when compiling for Linux in enough places. Just
move it to the LNXCFLAGS definition in the Makefiles.
|
|
|
|
|
| |
Add a common header file, xcrypt.h, for the various extended crypt
routines (md5, sha256, sha512).
|
|
|
|
|
| |
All the internal symbols in mempcpy.S were "memcpy", which is
obviously wrong.
|
| |
|
|
|
|
| |
Move passwd_compare() into a separate source file, for cleanliness.
|
|
|
|
| |
draw_background() returns int; make it return 0.
|
|
|
|
|
| |
Move the simple menu system into its own subdirectory, to make it more
obvious which source files are part of it.
|
|
|
|
|
| |
Avoid using commas in filenames, since not all systems can handle
them.
|
|
|
|
| |
Add a .bin suffix to generated filenames
|
|
|
|
| |
The string "aborted." was missing a null terminator.
|
| |
|
|
|
|
|
|
| |
Well, it has finally happened: a bug report regarding a BIOS with
emits multiple contiguous memory regions. Handle that case, and
(hopefully) simplify the logic while we're at it.
|