Commit Graph

1268 Commits (a0525a4ed36a28260d6dee4723bd6a1eb29020be)

Author SHA1 Message Date
Michael Brown 75430e813e Only need printf(), so use vsprintf.h instead of console.h 2006-12-20 05:33:12 +00:00
Michael Brown 2b97d2ebc5 8-bit integers are 1 byte long, not 8... 2006-12-20 05:04:17 +00:00
Michael Brown e4f489636f Clear message on alert row before printing new one 2006-12-20 05:03:55 +00:00
Michael Brown b93ff48173 Added descriptive text for settings and setting types, and display it in
the option config UI.
2006-12-20 04:58:26 +00:00
Michael Brown 35edecac34 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.
2006-12-20 04:20:13 +00:00
Michael Brown fc7dcc201b Added messages for some of the most common errors 2006-12-20 03:54:20 +00:00
Michael Brown 7766e34ed1 Split strerror() out from errno.c 2006-12-20 03:49:36 +00:00
Michael Brown 65e97c4f22 Alert when saving settings fails 2006-12-20 03:43:24 +00:00
Michael Brown 4b33c03942 Increase colour pair limit 2006-12-20 03:42:35 +00:00
Michael Brown c66b99272f Fix (hopefully) the scrolling logic 2006-12-20 03:41:55 +00:00
Michael Brown 84a2b886e1 Split error-message table portions of errno.h out to gpxe/errortab.h 2006-12-20 03:40:48 +00:00
Michael Brown e5f0898f38 Move strerror() prototype to string.h, where it belongs 2006-12-20 03:35:49 +00:00
Michael Brown 04da3556f9 Differentiate between ENOSPC and ENOMEM 2006-12-20 03:34:27 +00:00
Michael Brown 4f506328ad Use -ENOSPC rather than -ENOMEM, to distinguish the cases "generic out of
memory" and "no space left for DHCP options"
2006-12-20 03:33:37 +00:00
Michael Brown 637a891264 Fix prototype of sleep() and move it to unistd.h 2006-12-20 03:14:59 +00:00
Michael Brown 1e322d4b4c Add (partly-functional) user interface for editing configuration settings 2006-12-20 03:04:07 +00:00
Michael Brown 3e0f7621eb Don't automatically redraw the edit box; this allows better inheritance. 2006-12-20 02:09:41 +00:00
Michael Brown 35dcbfe771 Editable text box widget based on mucurses and edit_string. 2006-12-20 01:40:57 +00:00
Michael Brown 82ec3fc5cc Reset screen on exit as well as entry 2006-12-20 01:30:40 +00:00
Michael Brown 24f945edce Add "exit --help" to preempt the pedants. 2006-12-20 00:44:16 +00:00
Michael Brown d7cffd33e1 Remove obsolete mechanism for including nvo_cmd.o 2006-12-20 00:39:52 +00:00
Michael Brown ec5789bf0c Select required commands via config.h 2006-12-20 00:39:06 +00:00
Michael Brown 9f953322a1 Remove warning (at least on platforms with uint32_t == unsigned long). 2006-12-20 00:34:53 +00:00
Michael Brown a1685cb3e2 Move nvo_cmd.c to hci/commands. 2006-12-20 00:31:34 +00:00
Michael Brown 4d0d275ce4 Functionality now replaced by a combination of readline() and system(). 2006-12-20 00:27:11 +00:00
Michael Brown 38ad706b08 Use new minimal shell 2006-12-20 00:26:01 +00:00
Michael Brown 4919646fb9 Separated out (and tidied up) shell banner code 2006-12-20 00:24:13 +00:00
Michael Brown a2c5744daf Minimal shell implementation using readline() and system(). 2006-12-19 23:55:05 +00:00
Michael Brown a646e38f03 Use stdlib.h for malloc() instead of malloc.h. 2006-12-19 23:42:46 +00:00
Michael Brown b613086bfe Explicitly print out-of-memory message to avoid tricking the user into
thinking that a command executed successfully.
2006-12-19 23:37:51 +00:00
Michael Brown 22289ca8f6 Functioning readline() 2006-12-19 23:25:44 +00:00
Michael Brown 66007fa448 Provide an edit history to allow caller to efficiently update display. 2006-12-19 23:24:16 +00:00
Michael Brown abbfbd678d Explicitly move cursor to top-left of screen, in case the clear screen
call doesn't do it.
2006-12-19 22:37:12 +00:00
Michael Brown b3c535e550 Skeletal (non-echoing) version of readline() 2006-12-19 22:35:10 +00:00
Michael Brown 19e1d674d3 Catch attempts to print NULL strings 2006-12-19 22:33:42 +00:00
Michael Brown 1bc3514bd8 Start of generic editable string support 2006-12-19 19:28:12 +00:00
Michael Brown 70d20c4e7a Use common symbols to avoid dragging in getopt.o unless a getopt-using
command is linked in.
2006-12-19 16:27:15 +00:00
Michael Brown c1bac56f85 Use current attributes when erasing. 2006-12-19 01:17:10 +00:00
Michael Brown cdfe61662b Assume a 24-line screen, since we can't (easily) avoid scrolling after
printing in the bottom-right position.
2006-12-19 01:16:43 +00:00
Michael Brown 0aa1223264 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.
2006-12-19 01:15:05 +00:00
Michael Brown e85bf52446 Avoid cursor move on every single character 2006-12-19 00:51:32 +00:00
Michael Brown 8e460de6be Obsolete, and no longer functions 2006-12-19 00:34:54 +00:00
Michael Brown e7cc1c6c35 Use ANSI escape sequence to reset and clear terminal, rather than using
the (slow) werase().
2006-12-19 00:33:36 +00:00
Michael Brown edbdce6e3d Now basically functioning on ANSI-supporting consoles. 2006-12-19 00:27:25 +00:00
Michael Brown 09f9142cbf Adjusted to use the normal internal mucurses API rather than accessing
stdscr directly.
2006-12-18 21:44:44 +00:00
Michael Brown b6b36e8ac4 Remove more dynamic allocation 2006-12-18 21:28:35 +00:00
Michael Brown 04d15fb8f8 There seems to be no reason why pos_x is static... 2006-12-18 21:12:58 +00:00
Michael Brown 1f74fa2cad Remove some unnecessary use of calloc() for tiny memory areas. 2006-12-18 21:11:30 +00:00
Michael Brown ba26defa6e Convert _{store,restore}_cursor_pos to static inlines. 2006-12-18 20:46:41 +00:00
Michael Brown 56970053f4 wmove() is part of the public curses API, and already defined in curses.h 2006-12-18 20:38:07 +00:00
Michael Brown 1755d8df7a Renamed core.h to mucurses.h 2006-12-18 16:52:21 +00:00
Michael Brown 426e847c4c Rename core.c->mucurses.c; bin/core.o is too generic to belong to mucurses. 2006-12-18 16:50:02 +00:00
Michael Brown 688eb60df4 Use int rather than short for bool; it will give more efficient code. 2006-12-18 16:48:09 +00:00
Michael Brown 2ed2b2efe8 Use iskey() and getchar() to interact with console, rather than object
abstraction.
2006-12-18 16:46:25 +00:00
Michael Brown a497e16767 The "increment MAC address by port number" hack applies only to EF1. 2006-12-18 15:28:34 +00:00
Michael Brown 530bbf7cca 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.
2006-12-18 01:31:33 +00:00
Michael Brown 8b3a4c9862 Add basic ANSI escape sequence support to BIOS console 2006-12-18 01:19:38 +00:00
Michael Brown 1cd45decc4 Added support for interpreting ANSI escape sequences on behalf of
non-ANSI-capable consoles.
2006-12-18 00:01:30 +00:00
Michael Brown 8a45f619a9 Fix building on gas versions that don't auto-insert addr32 prefixes 2006-12-12 19:07:18 +00:00
Michael Brown a39b111684 Automatically select between the "10" and "16" variants of command set,
based on the device size.
2006-12-12 18:54:35 +00:00
Michael Brown 3bd7e479a2 Catch SCSI errors, and work around the start-of-day CHECK CONDITION
that some targets send.
2006-12-12 18:18:54 +00:00
Michael Brown c0ec119ede Typo 2006-12-12 16:18:42 +00:00
Michael Brown 04c09823bd Request all the options that we're prepared to do anything with. 2006-12-12 16:18:20 +00:00
Michael Brown 240c9512bb Added "clear" command 2006-12-12 15:52:19 +00:00
Michael Brown 007ca97f25 Added clear_setting() 2006-12-12 15:49:46 +00:00
Michael Brown 0a26cd2933 Cope with system(""). 2006-12-08 17:07:12 +00:00
Michael Brown 69b9048e1a Added "priority" and "root-path" options 2006-12-08 16:30:14 +00:00
Michael Brown 72b1629cee Add placeholder ibft.h 2006-12-08 16:16:21 +00:00
Michael Brown 9aa3e10d7c Use root-path option (as per RFC 4173) rather than filename option to
determine iSCSI boot parameters.
2006-12-08 15:53:49 +00:00
Michael Brown a1af111a87 Also request root-path. 2006-12-08 15:49:46 +00:00
Michael Brown c343a3a8ee Including the final (char *)NULL is the responsibility of the caller
of execl().
2006-12-08 09:15:12 +00:00
Michael Brown a77b32aaf6 D'oh d'oh d'oh d'oh d'oh d'oh d'oh d'oh d'oh 2006-12-08 03:07:15 +00:00
Michael Brown cc697eeb1f Added "exit" back in as a standardised command. 2006-12-08 01:40:06 +00:00
Michael Brown 7de5d32ff5 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.
2006-12-08 01:26:11 +00:00
Michael Brown f3d817d512 Added execv() and system(). 2006-12-08 01:23:11 +00:00
Michael Brown e106a39ce8 Added missing include of stdint.h 2006-12-08 01:21:13 +00:00
Michael Brown 496563071d Added strdup() 2006-12-08 00:34:47 +00:00
Michael Brown 1e4a838f55 Added missing prototype 2006-12-08 00:21:08 +00:00
Michael Brown be0cd1cddd Added a functional version of getopt() and getopt_long(), ready for use
in our commands.
2006-12-07 03:54:57 +00:00
Michael Brown 29db66fb51 Add support for non-volatile stored options in the RTL8139 EEPROM. 2006-12-06 20:45:44 +00:00
Michael Brown 2863d1a1de inet_aton() has a non-traditional return value 2006-12-06 20:44:29 +00:00
Michael Brown 38ae94f8ce 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.
2006-12-06 19:53:56 +00:00
Michael Brown d2bf7abe75 Added write support for three-wire devices (e.g. the RTL8139 EEPROM) 2006-12-06 19:51:58 +00:00
Michael Brown ac401f481d Verify data after writing 2006-12-06 18:51:31 +00:00
Michael Brown 5edb85c8b4 Work around another confused-by-RST bug 2006-12-06 18:09:33 +00:00
Michael Brown d88832ad7e Support PXE and iSCSI by default 2006-12-05 23:26:07 +00:00
Michael Brown b9f9230661 Work around another instance of the port re-use bug. 2006-12-05 23:15:35 +00:00
Michael Brown 8c3d09c564 Tweaked retry messages 2006-12-05 23:12:54 +00:00
Michael Brown 9600af14a3 Added debug messages 2006-12-05 22:53:49 +00:00
Michael Brown cc0b92652f Call closed() method only when the connection is genuinely in the
TCP_CLOSED state (i.e. after the final FIN/ACK exchange), and has been
removed from the list of TCP connections.
2006-12-05 22:53:28 +00:00
Michael Brown fcc70c9d60 Ensure that tcp_rx() always frees its received packet buffer. 2006-12-05 21:23:23 +00:00
Michael Brown 28c711b91d Killed off spurious <stdio.h> inclusion 2006-12-05 21:16:52 +00:00
Michael Brown 3fbfbad0f7 Avoid calling NULL methods! 2006-12-05 21:09:37 +00:00
Michael Brown 89bcb57201 Update ftp.c to work with Nikhil's TCP stack.
Remove the now-totally-obsolete sockaddr_in field from tcp.h.
2006-12-05 19:07:47 +00:00
Michael Brown a128b33b8b The VPD engine is broken and can't actually handle placing VPD
anywhere other than offset 0 within the EEPROM, so we have to put our
settings at 0x100 instead.
2006-12-05 17:56:13 +00:00
Michael Brown 4c3e0fede5 Adjust EEPROM/flash detection to fit expected manufacturing practice. 2006-12-05 16:00:06 +00:00
Michael Brown 6a91a03409 Added options listed in
http://www.microsoft.com/whdc/winlogo/hwrequirements.mspx as required
for iSCSI boot.  Note that options 204-206 are listed in the document
but don't seem to be defined anywhere on the web.
2006-12-05 15:40:28 +00:00
Michael Brown c6060a8fea Tidy up some more output. The command-line code needs some severe
overhauling, but this is not the time to do it.
2006-12-05 10:27:16 +00:00
Michael Brown e852f8e504 Slightly tidied up console messages. 2006-12-05 10:14:58 +00:00
Michael Brown cb883b3faf Change some debugging messages to use DBG() 2006-12-05 10:01:00 +00:00