H. Peter Anvin [Tue, 4 Mar 2008 00:55:15 +0000 (16:55 -0800)]
Drop unnecessary CLD instructions.
The EFI ABI spec states that DF=0 on ABI boundaries, and gcc expects
this. Assume it is safe to rely upon everywhere; drop unnecessary cld
instructions, except on entry and (obviously) after std.
H. Peter Anvin [Tue, 4 Mar 2008 00:50:17 +0000 (16:50 -0800)]
VESA library: add support for reading lss16 images
Add support for reading lss16 images, for compatibility with the CLI.
H. Peter Anvin [Tue, 4 Mar 2008 00:46:36 +0000 (16:46 -0800)]
Make description of the lss16 format match reality
The comment in ppmtolss16 is perhaps how the lss16 format *should*
work, but not actually how it *does* work.
H. Peter Anvin [Mon, 3 Mar 2008 23:53:51 +0000 (15:53 -0800)]
Merge commit 'origin/master' into nolen
H. Peter Anvin [Mon, 3 Mar 2008 06:20:08 +0000 (22:20 -0800)]
simple menu: break off execute() into its own source file
Break off execute() into its own source file, with the intent of being
able to re-use it for a CLI module.
H. Peter Anvin [Sun, 2 Mar 2008 20:02:45 +0000 (12:02 -0800)]
Add missing file <syslinux/zio.h>
This include file has been inadvertently omitted from previous
checkins.
H. Peter Anvin [Sun, 2 Mar 2008 20:01:11 +0000 (12:01 -0800)]
Merge commit 'origin/master' into nolen
Erwan [Sun, 2 Mar 2008 09:09:54 +0000 (10:09 +0100)]
License change for CPU detection modules
H. Peter Anvin wrote:
> Erwan: I would have to get you to do this, since it would mean
> changing the license (trying to keep libcom32 under the BSD/MIT
> licenses), and you have them under your own copyright (as opposed to
> mine), which means I can't do this change.
Please find attached the patch to changing the license to MIT on modules
I did contribute in com32/modules/.
H. Peter Anvin [Sun, 2 Mar 2008 00:04:05 +0000 (16:04 -0800)]
Move mboot documentation to the doc/ directory
H. Peter Anvin [Sat, 1 Mar 2008 23:56:29 +0000 (15:56 -0800)]
Fix two *.doc files which sadly didn't get renamed...
H. Peter Anvin [Sat, 1 Mar 2008 20:46:54 +0000 (12:46 -0800)]
Add a slightly edited version of SubmittingPatches.
H. Peter Anvin [Fri, 29 Feb 2008 20:02:36 +0000 (12:02 -0800)]
Document the file renaming from .doc -> .txt
H. Peter Anvin [Fri, 29 Feb 2008 19:59:49 +0000 (11:59 -0800)]
Add transparent decompression support to elf.c32
Use zloadfile() to support file decompression in elf.c32.
H. Peter Anvin [Fri, 29 Feb 2008 19:57:36 +0000 (11:57 -0800)]
Generic framework for reading compressed files using standard I/O
Add zopen(), zfopen(), and zloadfile() to transparently open and
uncompress a gzip file (adding support for other formats is quite
trivial.
Once a file handle or file pointer is received, it can be treated like
any other one (fstat will report it as a socket, since the length is
unknown.)
H. Peter Anvin [Fri, 29 Feb 2008 00:04:08 +0000 (16:04 -0800)]
Rename text documentation from *.doc to *.txt
Rename plaintext documentation from doc/*.doc to doc/*.txt, to avoid
the chronic problem of web sites thinking they're in MS-Word format.
Sigh. As if Microsoft somehow had a monopoly on the word "document".
H. Peter Anvin [Thu, 28 Feb 2008 00:17:23 +0000 (16:17 -0800)]
Tighten close_file, fix SYSLINUX new file API
Define close_file slightly tighter:
- It is permitted to call close_file with a zero filehandle
- close_file zeros SI
Fix the handling of the new API in SYSLINUX. It appears file_left was
never actually initialized; it simply didn't matter since the old code
would either trip on reaching the end of the FAT chain or count the
data it needed. Now operating according to spec.
H. Peter Anvin [Wed, 27 Feb 2008 23:09:08 +0000 (15:09 -0800)]
Don't use "syslinux.cfg" to refer to config files in general
When printing error messages about configuration files, don't
necessarily call it "syslinux.cfg".
H. Peter Anvin [Wed, 27 Feb 2008 21:47:18 +0000 (13:47 -0800)]
Change the "tsize" error message since it no longer applies
Fix the tsize error message to indicate that it now, in fact, refers
to an invalid TFTP response.
H. Peter Anvin [Wed, 27 Feb 2008 21:22:16 +0000 (13:22 -0800)]
SYSLINUX, EXTLINUX: support the new getfssec API
Support the new getfssec API which returns number of bytes read in
SYSLINUX and EXTLINUX. Untested so far, but it's a reasonably easy
change.
H. Peter Anvin [Wed, 27 Feb 2008 21:02:03 +0000 (13:02 -0800)]
comboot.inc: use the correct upper limit
The exact upper limit is 65536-256-2 = 65278 = 0xFEFE bytes.
H. Peter Anvin [Wed, 27 Feb 2008 20:56:20 +0000 (12:56 -0800)]
comboot.inc: update test for oversized files
The test for oversized COMBOOT files have to be updated to be an a
posteori test, since the length might not be known a priori.
H. Peter Anvin [Wed, 27 Feb 2008 20:51:29 +0000 (12:51 -0800)]
Un-inline fclose()
gcc complains that fclose() is too big to be inlined with -Os, so
humour it and move fclose() out of line.
H. Peter Anvin [Wed, 27 Feb 2008 20:48:04 +0000 (12:48 -0800)]
background.c: remove unused filesize() function
Remove obsolete and now unused filesize() function.
H. Peter Anvin [Wed, 27 Feb 2008 20:44:52 +0000 (12:44 -0800)]
realloc(): put an absolute upper limit on slack
With loadfile() doing megabyte-sized trial-and-error allocations, we
want to be able to do really set the size on the final allocation;
thus constrain the amount of permitted slack to 4K max.
H. Peter Anvin [Wed, 27 Feb 2008 20:40:31 +0000 (12:40 -0800)]
Comboot/Com32 changes for unspecified file lengths
Handle unspecified file length for comboot/com32 modules; do changes
to the appropriate part of libcom32 to handle this properly.
H. Peter Anvin [Wed, 27 Feb 2008 18:56:34 +0000 (10:56 -0800)]
Document the nolen changes.
H. Peter Anvin [Wed, 27 Feb 2008 18:53:40 +0000 (10:53 -0800)]
PXELINUX: make TFTP work without any OACK
Make the TFTP stack handle the case where no options are acknowledged,
so we don't even get an OACK; instead we get the first data packet
immediately.
H. Peter Anvin [Wed, 27 Feb 2008 18:44:40 +0000 (10:44 -0800)]
PXELINUX: make TFTP work without tsize
Make the TFTP stack no longer require the tsize option.
Note: getc relies on DI not being clobbered by getfssec. Be more
careful about not clobbering registers unless documented.
H. Peter Anvin [Wed, 27 Feb 2008 03:57:26 +0000 (19:57 -0800)]
getc: support for unknown file sizes
Handle unknown file sizes in getc
H. Peter Anvin [Wed, 27 Feb 2008 03:55:59 +0000 (19:55 -0800)]
isolinux: getfssec now outputs bytes read
ISOLINUX support for the API changes needed to handle unknown file
sizes.
H. Peter Anvin [Wed, 27 Feb 2008 01:18:59 +0000 (17:18 -0800)]
Revamp runkernel.inc for "lengthless" operation
Revamp runkernel.inc to be able to operate without a priori known
length.
H. Peter Anvin [Tue, 26 Feb 2008 22:50:05 +0000 (14:50 -0800)]
Remove pngtopnm dependency from the samples/ directory
Ship syslogo.ppm.gz instead of syslogo.png, thereby eliminating a
dependency on pngtopnm which apparently isn't installed by default on
some distros.
H. Peter Anvin [Tue, 26 Feb 2008 05:10:12 +0000 (21:10 -0800)]
extlinux: compile hack for old distros
Some old distros would have <linux/fs.h> poison the namespace with a
non-glibc "struct statfs". Hack around it.
H. Peter Anvin [Tue, 26 Feb 2008 01:30:06 +0000 (17:30 -0800)]
Merge commit 'origin/nodxax' into nolen
Conflicts:
pxelinux.asm
H. Peter Anvin [Tue, 26 Feb 2008 00:55:44 +0000 (16:55 -0800)]
Remove additional use of DX:AX
Remove an additional use of DX:AX for file size
H. Peter Anvin [Sat, 23 Feb 2008 07:17:23 +0000 (23:17 -0800)]
pxelinux: fix inadvertent breakage of TFTP
Fix the following bogus edit in previous checkin:
- mov eax,[si+tftp_filesize]
+ mov eax,[si+tftp_bytesleft]
H. Peter Anvin [Sat, 23 Feb 2008 06:55:06 +0000 (22:55 -0800)]
Finally get rid of the old DX:AX for file length 16-bitism
Finally scrub the code and get rid of the old uses of DX:AX for file
size (rather than EAX).
H. Peter Anvin [Sat, 23 Feb 2008 06:32:20 +0000 (22:32 -0800)]
fstat(): report files of unknown length as sockets
H. Peter Anvin [Fri, 22 Feb 2008 19:16:45 +0000 (11:16 -0800)]
Allow MENU EXIT to specify a menu tag
Allow MENU EXIT to "exit" to an arbitrary menu. This is really just a
variant of "MENU GOTO", but it allows displaying an exit marker.
H. Peter Anvin [Fri, 22 Feb 2008 19:03:34 +0000 (11:03 -0800)]
Fix the handling of hotkeys in MENU LABEL on submenus
Two bugs:
- We didn't strip ^ symbols inheriting from MENU LABEL to MENU TITLE
- We did consider_for_hotkey() with the wrong menu (the submenu
itself, as opposed to the parent menu.)
As part of these changes, make a function available to create an
uninitialized, mutable refstring (that can be constructed and then
used as a refstring, that is.)
H. Peter Anvin [Fri, 22 Feb 2008 03:35:04 +0000 (19:35 -0800)]
PXELINUX: no longer require a tsize option
No longer require a tsize option; this means handle
RRQ -> DATA as well as RRQ -> OACK.
H. Peter Anvin [Fri, 22 Feb 2008 03:32:59 +0000 (19:32 -0800)]
Document intent at no longer providing file length a priori
We intend to no longer guarantee that we know the file size ahead of
time.
H. Peter Anvin [Fri, 22 Feb 2008 02:53:22 +0000 (18:53 -0800)]
This probably will be version 3.70...
H. Peter Anvin [Fri, 22 Feb 2008 02:49:43 +0000 (18:49 -0800)]
NEWS: Document Bruce Robson's Adaptec bug fix
H. Peter Anvin [Fri, 22 Feb 2008 02:17:49 +0000 (18:17 -0800)]
realloc(): try to protect a block in the path of a growing object
When we realloc() a block larger, try to protect the free block
following it from being immediately allocated by something else by
placing it at the end of the freelist instead of the beginning.
H. Peter Anvin [Fri, 22 Feb 2008 01:59:56 +0000 (17:59 -0800)]
realloc(): better implementation allowing in-place growth
Change the realloc() implementation to allow in-place growth. This is
an important step in handling files without knowing their sizes a
priori.
H. Peter Anvin [Wed, 20 Feb 2008 23:56:33 +0000 (15:56 -0800)]
"begin Ymodem download" is supposed to be an imperative...
H. Peter Anvin [Wed, 20 Feb 2008 02:40:37 +0000 (18:40 -0800)]
Fix MENU TITLE -> MENU LABEL inheritance
Correctly make it so MENU TITLE can be inherited upward as MENU TITLE
unless one is provided.
H. Peter Anvin [Wed, 20 Feb 2008 02:34:14 +0000 (18:34 -0800)]
Make sure color directives get attached to the proper menu.
Color directives would always end up attached to the root menu, no
matter what menu declaration they where actually located in.
H. Peter Anvin [Wed, 20 Feb 2008 02:27:35 +0000 (18:27 -0800)]
simple menu: fix the handling of '+' and '-' given disabled entries
When encountering disabled entries, we want to keep going. Given that
these particular keys have nonstandard scrolling, but the handling there.
H. Peter Anvin [Wed, 20 Feb 2008 02:25:08 +0000 (18:25 -0800)]
Fix the scrollbar handling for insanely huge menus
The handling of the scrollbar for insanely huge menus was broken,
causing it to disappear off the bottom of the menu window.
H. Peter Anvin [Wed, 20 Feb 2008 02:21:08 +0000 (18:21 -0800)]
simple menu: remember the cursor position on a per-menu basis
For each menu, remember what the current position of the cursor and
the scroll is.
H. Peter Anvin [Wed, 20 Feb 2008 02:14:24 +0000 (18:14 -0800)]
Add support for MENU EXIT; no marker for MENU GOTO
H. Peter Anvin [Wed, 20 Feb 2008 02:13:47 +0000 (18:13 -0800)]
When entering a new menu, go to the default entry for that menu.
H. Peter Anvin [Wed, 20 Feb 2008 01:15:18 +0000 (17:15 -0800)]
Document MENU START
H. Peter Anvin [Wed, 20 Feb 2008 00:52:36 +0000 (16:52 -0800)]
Whitespace cleanup...
H. Peter Anvin [Wed, 20 Feb 2008 00:48:21 +0000 (16:48 -0800)]
com32: remove dependency files for "make tidy"
H. Peter Anvin [Wed, 20 Feb 2008 00:47:09 +0000 (16:47 -0800)]
Add dependency generation for com32 samples.
H. Peter Anvin [Wed, 20 Feb 2008 00:45:42 +0000 (16:45 -0800)]
Add dependency generation for com32 modules.
H. Peter Anvin [Wed, 20 Feb 2008 00:44:52 +0000 (16:44 -0800)]
Add dependency generation for the simple menu system
H. Peter Anvin [Wed, 20 Feb 2008 00:42:40 +0000 (16:42 -0800)]
Set m->title for both root and submenus
H. Peter Anvin [Wed, 20 Feb 2008 00:41:44 +0000 (16:41 -0800)]
Allow MENU LABEL <-> MENU TITLE for submenus to work both ways
Allow either "MENU LABEL" or "MENU TITLE" to default for each other.
H. Peter Anvin [Wed, 20 Feb 2008 00:37:50 +0000 (16:37 -0800)]
Allow an included file to be treated as a submenu.
H. Peter Anvin [Wed, 20 Feb 2008 00:25:26 +0000 (16:25 -0800)]
Document hierarchial menus so far...
H. Peter Anvin [Wed, 20 Feb 2008 00:16:03 +0000 (16:16 -0800)]
simple menu: The use of realloc() requires indirect pointers
Since we store pointers to struct menu_entry, we can't put it in
storage that is subject to realloc(). Accordingly, make menu_entries
an indirect array instead.
H. Peter Anvin [Tue, 19 Feb 2008 23:33:36 +0000 (15:33 -0800)]
simple menu: first cut at working submenus
With this edit, the submenu system seems to have minimal
functionality.
H. Peter Anvin [Tue, 19 Feb 2008 23:33:15 +0000 (15:33 -0800)]
refstr: handle NULL in refstr[n]dup()
H. Peter Anvin [Tue, 19 Feb 2008 22:08:50 +0000 (14:08 -0800)]
Simple menu: use refstrings consistently; now works again
Switch consistently to using refstrings; we now seem to have original
functionality back.
H. Peter Anvin [Tue, 19 Feb 2008 22:08:06 +0000 (14:08 -0800)]
refstr_get(): handle NULL, force inline
Make refstr_get() handle NULL correctly; force it to be an inline
since it seems to make no difference for code size.
H. Peter Anvin [Tue, 19 Feb 2008 22:07:44 +0000 (14:07 -0800)]
[v]rsprintf(): actually set the return pointer...
H. Peter Anvin [Tue, 19 Feb 2008 19:15:20 +0000 (11:15 -0800)]
submenu snapshot: it compiles now...
H. Peter Anvin [Mon, 18 Feb 2008 23:58:01 +0000 (15:58 -0800)]
Actually implement strnlen()
Actually implement strnlen(), which was in the header files but not in
the library.
H. Peter Anvin [Mon, 18 Feb 2008 23:55:53 +0000 (15:55 -0800)]
Actually implement syslinux_ipappend_strings()
Actually implement the library function syslinux_ipappend_strings(),
which had been in the header files but not in the actual library.
H. Peter Anvin [Sun, 17 Feb 2008 22:11:13 +0000 (14:11 -0800)]
Submenu support: development snapshot
Development snapshot before converting to refstrings
H. Peter Anvin [Tue, 19 Feb 2008 02:09:03 +0000 (18:09 -0800)]
memdump: fix typo
H. Peter Anvin [Sun, 17 Feb 2008 03:16:40 +0000 (19:16 -0800)]
VESA: work around bug in the Bochs VESA BIOS
The Bochs VESA BIOS returns a value other than 1 for the number of
banks in unbanked modes. Ignore the number of banks if bank_size == 0
(the spec says that for unbanked modes, banks == 1 && bank_size == 0;
for banked modes banks > 1 and bank_size != 0).
H. Peter Anvin [Sun, 17 Feb 2008 02:44:57 +0000 (18:44 -0800)]
rllback: improve compression by allowing two-byte run lengths
With the command line size being set to 2K, it's common to need longer
runs. Allow runs up to 8K.
Bruce Robson [Sun, 17 Feb 2008 00:06:18 +0000 (16:06 -0800)]
ISOLINUX: Adaptec bug fix: handle the case of DL missing bit 7
Intel Classic R+ computer with Adaptec 1542CP BIOS 1.02 passes garbage
in sp_drive, and the drive number originally passed in DL does not
have 80h bit set. Check for this case and compensate if appropriate.
H. Peter Anvin [Sat, 16 Feb 2008 08:32:53 +0000 (00:32 -0800)]
Get rid of 4096-entry limit in the simple menu system
Use a dynamic array instead of a static array which we would simply
crash on overflow. Always make it a power-of-two sized so we don't
end up doing a realloc() and a full array copy on every extend.
H. Peter Anvin [Sat, 16 Feb 2008 08:13:50 +0000 (00:13 -0800)]
If we're showing a scrollbar, always show at least one unit
In the simple menu system, if we're showing a scrollbar at all, always
show at least one unit of it.
H. Peter Anvin [Sat, 16 Feb 2008 06:51:46 +0000 (22:51 -0800)]
Put virtual kernels (CLI labels) in high memory
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.)
H. Peter Anvin [Sat, 16 Feb 2008 06:50:29 +0000 (22:50 -0800)]
hello.c: print arguments, no input section
Make "Hello, World!" a little bit more plain, but do print out its
arguments, if any. Useful for testing.
H. Peter Anvin [Sat, 16 Feb 2008 06:35:18 +0000 (22:35 -0800)]
Don't close the A20 gate; leave it open
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.
H. Peter Anvin [Sat, 16 Feb 2008 02:32:12 +0000 (18:32 -0800)]
Slightly simpler to use interface to simple_pm_call
Clean up the interface to simple_pm_call so we generally can avoid a
bunch of push/call/pop/ret boilerplate.
H. Peter Anvin [Sat, 16 Feb 2008 02:10:54 +0000 (18:10 -0800)]
bcopy32: refactor the bcopy routine to be able to reuse the pm part
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.
H. Peter Anvin [Thu, 14 Feb 2008 08:02:43 +0000 (00:02 -0800)]
VESA: suppress an unused arguments warning
Suppress a warning about unused arguments.
H. Peter Anvin [Thu, 14 Feb 2008 08:02:12 +0000 (00:02 -0800)]
VESA: align the row buffer to a multiple of 4 bytes.
We do dword accesses to the row buffer, so align it to 4 bytes.
H. Peter Anvin [Thu, 14 Feb 2008 08:01:20 +0000 (00:01 -0800)]
Add __aligned() and __alignas() macros
Add macros __aligned() (which takes a byte count), and __alignas()
(which takes a type or expression whose type is used, same as sizeof).
H. Peter Anvin [Thu, 14 Feb 2008 06:37:33 +0000 (22:37 -0800)]
VESA: Minor cleanups
Minor cleanups for clarity
H. Peter Anvin [Thu, 14 Feb 2008 06:21:37 +0000 (22:21 -0800)]
VESA: move debugging code to separate header file
Move the debugging function to a separate header file, so we can
include it at will when convenient.
H. Peter Anvin [Thu, 14 Feb 2008 06:17:03 +0000 (22:17 -0800)]
Set the window size to 2 GB for linear framebuffer
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.
H. Peter Anvin [Thu, 14 Feb 2008 05:43:00 +0000 (21:43 -0800)]
Bypass pixel conversion when the output format is BGRA32
When the output format is BGRA32, we don't need any conversion at
all. Skip the dummy copy.
H. Peter Anvin [Thu, 14 Feb 2008 05:38:37 +0000 (21:38 -0800)]
Treat linear framebuffer as a degenerate paged framebuffer
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.)
H. Peter Anvin [Thu, 14 Feb 2008 03:00:12 +0000 (19:00 -0800)]
VESA: move pixel formatting into __vesacon_copy_to_screen()
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.
H. Peter Anvin [Thu, 14 Feb 2008 02:03:17 +0000 (18:03 -0800)]
Fix the calculation of bytes_per_pixel
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().
H. Peter Anvin [Thu, 14 Feb 2008 01:49:38 +0000 (17:49 -0800)]
Replace C version of memmove() with slightly optimized assembly
Replace the C version of memmove() with a slightly more optimized
assembly version that at least can do dword-sized rep moves.
H. Peter Anvin [Thu, 14 Feb 2008 00:08:27 +0000 (16:08 -0800)]
Document support for nonlinear frame buffers.
H. Peter Anvin [Thu, 14 Feb 2008 00:06:29 +0000 (16:06 -0800)]
VESA: Support 15-bit RGB modes.
If there are manufacturers which don't support linear framebuffers out
there, then there is probably someone who want a 15-bit mode, too.
H. Peter Anvin [Thu, 14 Feb 2008 00:05:06 +0000 (16:05 -0800)]
Add support for paged (banked) VESA video mode
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.
H. Peter Anvin [Wed, 13 Feb 2008 18:58:29 +0000 (10:58 -0800)]
Correct comment specific to SYSLINUX in the other derivatives
There was a comment which applied to SYSLINUX that had been copied
verbatim to the other derivatives; fix.