Michael Brown [Wed, 20 Dec 2006 22:12:25 +0000 (22:12 +0000)]
Some key sequences seem to end with a tilde
Michael Brown [Wed, 20 Dec 2006 22:11:28 +0000 (22:11 +0000)]
Add insert/delete and document keys, and documentation.
Michael Brown [Wed, 20 Dec 2006 21:56:50 +0000 (21:56 +0000)]
Added code to interpret ANSI keypress sequences into KEY_XXX constants.
Michael Brown [Wed, 20 Dec 2006 21:53:07 +0000 (21:53 +0000)]
Key definitions
Michael Brown [Wed, 20 Dec 2006 21:10:32 +0000 (21:10 +0000)]
Define KEY_MIN and use it in kb.c.
Michael Brown [Wed, 20 Dec 2006 20:28:20 +0000 (20:28 +0000)]
Prevent NULL from ever pointing to some real code or data. (This was
causing the serial console to ignore input, because it happened to end up
linked with serial_ischar() at address 0, which core/console.c decided was
invalid).
Michael Brown [Wed, 20 Dec 2006 14:11:50 +0000 (14:11 +0000)]
Return -EIO when verification fails, instead of -EINVAL.
Michael Brown [Wed, 20 Dec 2006 11:42:48 +0000 (11:42 +0000)]
settings_ui() now returns a status code.
Michael Brown [Wed, 20 Dec 2006 07:57:40 +0000 (07:57 +0000)]
Add EIO.
Kill errortab array; it can screw up alignment.
Michael Brown [Wed, 20 Dec 2006 07:19:48 +0000 (07:19 +0000)]
Close UDP connection when DHCP completes.
Michael Brown [Wed, 20 Dec 2006 07:13:46 +0000 (07:13 +0000)]
No longer needed
Michael Brown [Wed, 20 Dec 2006 07:05:32 +0000 (07:05 +0000)]
Obsolete for some time now.
Michael Brown [Wed, 20 Dec 2006 07:04:08 +0000 (07:04 +0000)]
Split the (quick hack) boot logic out from main.c to autoboot.c, add a
"boot" command to attempt booting from within the command shell, fall back
to shell if boot fails for any reason.
Michael Brown [Wed, 20 Dec 2006 06:12:04 +0000 (06:12 +0000)]
Explicitly call erase(), to cope with platforms where the ANSI clear
screen sequence doesn't work (like bios_console.c on some platforms).
Michael Brown [Wed, 20 Dec 2006 06:06:38 +0000 (06:06 +0000)]
Add attr_{get,set,on,off} as static inlines.
Michael Brown [Wed, 20 Dec 2006 05:37:33 +0000 (05:37 +0000)]
Add "config" command to access config UI
Michael Brown [Wed, 20 Dec 2006 05:37:15 +0000 (05:37 +0000)]
Add instruction row, and save option
Michael Brown [Wed, 20 Dec 2006 05:33:12 +0000 (05:33 +0000)]
Only need printf(), so use vsprintf.h instead of console.h
Michael Brown [Wed, 20 Dec 2006 05:04:17 +0000 (05:04 +0000)]
8-bit integers are 1 byte long, not 8...
Michael Brown [Wed, 20 Dec 2006 05:03:55 +0000 (05:03 +0000)]
Clear message on alert row before printing new one
Michael Brown [Wed, 20 Dec 2006 04:58:26 +0000 (04:58 +0000)]
Added descriptive text for settings and setting types, and display it in
the option config UI.
Michael Brown [Wed, 20 Dec 2006 04:20:13 +0000 (04:20 +0000)]
Move {show,set,clear}_setting() to {show,set,clear}_named_setting().
Introduce new {show,set,clear}_setting() that take a struct setting *
rather than a const char *.
set_setting() handles calling clear_setting() when appropriate, so that
individual setting types don't have to check for empty strings.
Michael Brown [Wed, 20 Dec 2006 03:54:20 +0000 (03:54 +0000)]
Added messages for some of the most common errors
Michael Brown [Wed, 20 Dec 2006 03:49:36 +0000 (03:49 +0000)]
Split strerror() out from errno.c
Michael Brown [Wed, 20 Dec 2006 03:43:24 +0000 (03:43 +0000)]
Alert when saving settings fails
Michael Brown [Wed, 20 Dec 2006 03:42:35 +0000 (03:42 +0000)]
Increase colour pair limit
Michael Brown [Wed, 20 Dec 2006 03:41:55 +0000 (03:41 +0000)]
Fix (hopefully) the scrolling logic
Michael Brown [Wed, 20 Dec 2006 03:40:48 +0000 (03:40 +0000)]
Split error-message table portions of errno.h out to gpxe/errortab.h
Michael Brown [Wed, 20 Dec 2006 03:35:49 +0000 (03:35 +0000)]
Move strerror() prototype to string.h, where it belongs
Michael Brown [Wed, 20 Dec 2006 03:34:27 +0000 (03:34 +0000)]
Differentiate between ENOSPC and ENOMEM
Michael Brown [Wed, 20 Dec 2006 03:33:37 +0000 (03:33 +0000)]
Use -ENOSPC rather than -ENOMEM, to distinguish the cases "generic out of
memory" and "no space left for DHCP options"
Michael Brown [Wed, 20 Dec 2006 03:14:59 +0000 (03:14 +0000)]
Fix prototype of sleep() and move it to unistd.h
Michael Brown [Wed, 20 Dec 2006 03:04:07 +0000 (03:04 +0000)]
Add (partly-functional) user interface for editing configuration settings
Michael Brown [Wed, 20 Dec 2006 02:09:41 +0000 (02:09 +0000)]
Don't automatically redraw the edit box; this allows better inheritance.
Michael Brown [Wed, 20 Dec 2006 01:40:57 +0000 (01:40 +0000)]
Editable text box widget based on mucurses and edit_string.
Michael Brown [Wed, 20 Dec 2006 01:30:40 +0000 (01:30 +0000)]
Reset screen on exit as well as entry
Michael Brown [Wed, 20 Dec 2006 00:44:16 +0000 (00:44 +0000)]
Add "exit --help" to preempt the pedants.
Michael Brown [Wed, 20 Dec 2006 00:39:52 +0000 (00:39 +0000)]
Remove obsolete mechanism for including nvo_cmd.o
Michael Brown [Wed, 20 Dec 2006 00:39:06 +0000 (00:39 +0000)]
Select required commands via config.h
Michael Brown [Wed, 20 Dec 2006 00:34:53 +0000 (00:34 +0000)]
Remove warning (at least on platforms with uint32_t == unsigned long).
Michael Brown [Wed, 20 Dec 2006 00:31:34 +0000 (00:31 +0000)]
Move nvo_cmd.c to hci/commands.
Michael Brown [Wed, 20 Dec 2006 00:27:11 +0000 (00:27 +0000)]
Functionality now replaced by a combination of readline() and system().
Michael Brown [Wed, 20 Dec 2006 00:26:01 +0000 (00:26 +0000)]
Use new minimal shell
Michael Brown [Wed, 20 Dec 2006 00:24:13 +0000 (00:24 +0000)]
Separated out (and tidied up) shell banner code
Michael Brown [Tue, 19 Dec 2006 23:55:05 +0000 (23:55 +0000)]
Minimal shell implementation using readline() and system().
Michael Brown [Tue, 19 Dec 2006 23:42:46 +0000 (23:42 +0000)]
Use stdlib.h for malloc() instead of malloc.h.
Michael Brown [Tue, 19 Dec 2006 23:37:51 +0000 (23:37 +0000)]
Explicitly print out-of-memory message to avoid tricking the user into
thinking that a command executed successfully.
Michael Brown [Tue, 19 Dec 2006 23:25:44 +0000 (23:25 +0000)]
Functioning readline()
Michael Brown [Tue, 19 Dec 2006 23:24:16 +0000 (23:24 +0000)]
Provide an edit history to allow caller to efficiently update display.
Michael Brown [Tue, 19 Dec 2006 22:37:12 +0000 (22:37 +0000)]
Explicitly move cursor to top-left of screen, in case the clear screen
call doesn't do it.
Michael Brown [Tue, 19 Dec 2006 22:35:10 +0000 (22:35 +0000)]
Skeletal (non-echoing) version of readline()
Michael Brown [Tue, 19 Dec 2006 22:33:42 +0000 (22:33 +0000)]
Catch attempts to print NULL strings
Michael Brown [Tue, 19 Dec 2006 19:28:12 +0000 (19:28 +0000)]
Start of generic editable string support
Michael Brown [Tue, 19 Dec 2006 16:27:15 +0000 (16:27 +0000)]
Use common symbols to avoid dragging in getopt.o unless a getopt-using
command is linked in.
Michael Brown [Tue, 19 Dec 2006 01:17:10 +0000 (01:17 +0000)]
Use current attributes when erasing.
Michael Brown [Tue, 19 Dec 2006 01:16:43 +0000 (01:16 +0000)]
Assume a 24-line screen, since we can't (easily) avoid scrolling after
printing in the bottom-right position.
Michael Brown [Tue, 19 Dec 2006 01:15:05 +0000 (01:15 +0000)]
Optimise bios_putchar for speed(!) by avoiding two separate real-mode
calls. This does make a visible difference when clearing the screen with
werase() inside bochs or qemu.
Michael Brown [Tue, 19 Dec 2006 00:51:32 +0000 (00:51 +0000)]
Avoid cursor move on every single character
Michael Brown [Tue, 19 Dec 2006 00:34:54 +0000 (00:34 +0000)]
Obsolete, and no longer functions
Michael Brown [Tue, 19 Dec 2006 00:33:36 +0000 (00:33 +0000)]
Use ANSI escape sequence to reset and clear terminal, rather than using
the (slow) werase().
Michael Brown [Tue, 19 Dec 2006 00:27:25 +0000 (00:27 +0000)]
Now basically functioning on ANSI-supporting consoles.
Michael Brown [Mon, 18 Dec 2006 21:44:44 +0000 (21:44 +0000)]
Adjusted to use the normal internal mucurses API rather than accessing
stdscr directly.
Michael Brown [Mon, 18 Dec 2006 21:28:35 +0000 (21:28 +0000)]
Remove more dynamic allocation
Michael Brown [Mon, 18 Dec 2006 21:12:58 +0000 (21:12 +0000)]
There seems to be no reason why pos_x is static...
Michael Brown [Mon, 18 Dec 2006 21:11:30 +0000 (21:11 +0000)]
Remove some unnecessary use of calloc() for tiny memory areas.
Michael Brown [Mon, 18 Dec 2006 20:46:41 +0000 (20:46 +0000)]
Convert _{store,restore}_cursor_pos to static inlines.
Michael Brown [Mon, 18 Dec 2006 20:38:07 +0000 (20:38 +0000)]
wmove() is part of the public curses API, and already defined in curses.h
Michael Brown [Mon, 18 Dec 2006 16:52:21 +0000 (16:52 +0000)]
Renamed core.h to mucurses.h
Michael Brown [Mon, 18 Dec 2006 16:50:02 +0000 (16:50 +0000)]
Rename core.c->mucurses.c; bin/core.o is too generic to belong to mucurses.
Michael Brown [Mon, 18 Dec 2006 16:48:09 +0000 (16:48 +0000)]
Use int rather than short for bool; it will give more efficient code.
Michael Brown [Mon, 18 Dec 2006 16:46:25 +0000 (16:46 +0000)]
Use iskey() and getchar() to interact with console, rather than object
abstraction.
Michael Brown [Mon, 18 Dec 2006 15:28:34 +0000 (15:28 +0000)]
The "increment MAC address by port number" hack applies only to EF1.
Michael Brown [Mon, 18 Dec 2006 01:31:33 +0000 (01:31 +0000)]
Print welcome banner in bold (which will come out as bright white text
on the BIOS console, or genuine bold font on a xterm "serial" console),
just to prove the concept of the ANSI escape sequence handling.
Michael Brown [Mon, 18 Dec 2006 01:19:38 +0000 (01:19 +0000)]
Add basic ANSI escape sequence support to BIOS console
Michael Brown [Mon, 18 Dec 2006 00:01:30 +0000 (00:01 +0000)]
Added support for interpreting ANSI escape sequences on behalf of
non-ANSI-capable consoles.
Michael Brown [Tue, 12 Dec 2006 19:07:18 +0000 (19:07 +0000)]
Fix building on gas versions that don't auto-insert addr32 prefixes
Michael Brown [Tue, 12 Dec 2006 18:54:35 +0000 (18:54 +0000)]
Automatically select between the "10" and "16" variants of command set,
based on the device size.
Michael Brown [Tue, 12 Dec 2006 18:18:54 +0000 (18:18 +0000)]
Catch SCSI errors, and work around the start-of-day CHECK CONDITION
that some targets send.
Michael Brown [Tue, 12 Dec 2006 16:18:42 +0000 (16:18 +0000)]
Typo
Michael Brown [Tue, 12 Dec 2006 16:18:20 +0000 (16:18 +0000)]
Request all the options that we're prepared to do anything with.
Michael Brown [Tue, 12 Dec 2006 15:52:19 +0000 (15:52 +0000)]
Added "clear" command
Michael Brown [Tue, 12 Dec 2006 15:49:46 +0000 (15:49 +0000)]
Added clear_setting()
Michael Brown [Fri, 8 Dec 2006 17:07:12 +0000 (17:07 +0000)]
Cope with system("").
Michael Brown [Fri, 8 Dec 2006 16:30:14 +0000 (16:30 +0000)]
Added "priority" and "root-path" options
Michael Brown [Fri, 8 Dec 2006 16:16:21 +0000 (16:16 +0000)]
Add placeholder ibft.h
Michael Brown [Fri, 8 Dec 2006 15:53:49 +0000 (15:53 +0000)]
Use root-path option (as per RFC 4173) rather than filename option to
determine iSCSI boot parameters.
Michael Brown [Fri, 8 Dec 2006 15:49:46 +0000 (15:49 +0000)]
Also request root-path.
Michael Brown [Fri, 8 Dec 2006 09:15:12 +0000 (09:15 +0000)]
Including the final (char *)NULL is the responsibility of the caller
of execl().
Michael Brown [Fri, 8 Dec 2006 03:07:15 +0000 (03:07 +0000)]
D'oh d'oh d'oh d'oh d'oh d'oh d'oh d'oh d'oh
Michael Brown [Fri, 8 Dec 2006 01:40:06 +0000 (01:40 +0000)]
Added "exit" back in as a standardised command.
Michael Brown [Fri, 8 Dec 2006 01:26:11 +0000 (01:26 +0000)]
cmdlinelib.c now calls system() rather than doing its own tokenisation
(which was extremely heavy on calls to malloc()).
Moved include/command.h to include/gpxe/command.h, since it's
gPXE-specific.
Michael Brown [Fri, 8 Dec 2006 01:23:11 +0000 (01:23 +0000)]
Added execv() and system().
Michael Brown [Fri, 8 Dec 2006 01:21:13 +0000 (01:21 +0000)]
Added missing include of stdint.h
Michael Brown [Fri, 8 Dec 2006 00:34:47 +0000 (00:34 +0000)]
Added strdup()
Michael Brown [Fri, 8 Dec 2006 00:21:08 +0000 (00:21 +0000)]
Added missing prototype
Michael Brown [Thu, 7 Dec 2006 03:54:57 +0000 (03:54 +0000)]
Added a functional version of getopt() and getopt_long(), ready for use
in our commands.
Michael Brown [Wed, 6 Dec 2006 20:45:44 +0000 (20:45 +0000)]
Add support for non-volatile stored options in the RTL8139 EEPROM.
Michael Brown [Wed, 6 Dec 2006 20:44:29 +0000 (20:44 +0000)]
inet_aton() has a non-traditional return value
Michael Brown [Wed, 6 Dec 2006 19:53:56 +0000 (19:53 +0000)]
A cleaner method of handling login redirection; just use the existing
reconnection mechanism. This avoids the problems of trying to reuse
the TCP connection structure before the old connection has cleanly exited.
Michael Brown [Wed, 6 Dec 2006 19:51:58 +0000 (19:51 +0000)]
Added write support for three-wire devices (e.g. the RTL8139 EEPROM)