david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
Commit Graph

325 Commits

Author SHA1 Message Date
Michael Brown 17b337d4a8 [autoboot] Use generic option-parsing library
Total saving: 32 bytes.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-11-21 20:38:39 +00:00
Michael Brown 2877af3ff5 [vlan] Use generic option-parsing library
Total saving: 261 bytes.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-11-21 20:38:39 +00:00
Michael Brown 4448285142 [autoboot] Add "netboot" command
Originally-implemented-by: michael-dev@fami-braun.de
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-11-20 17:20:03 +00:00
Michael Brown 6fd09b541f [vlan] Add support for IEEE 802.1Q VLANs
Originally-implemented-by: michael-dev@fami-braun.de
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-11-20 16:52:04 +00:00
Michael Brown ea631f6fb8 [list] Add list_first_entry()
There are several points in the iPXE codebase where
list_for_each_entry() is (ab)used to extract only the first entry from
a list.  Add a macro list_first_entry() to make this code easier to
read.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-11-08 03:15:28 +00:00
Michael Brown 4995ffa438 [hci] Use http://ipxe.org/<errno> instead of raw error numbers
Users tend to gloss over cryptic-looking error messages such as

  "Boot failed: Exec format error (Error 0x2e852001)"

In particular, users tend not to report the error number, which is the
single most useful piece of diagnostic information in an iPXE error
message.  Try replacing the "Error 0x2e852001" portion with a URL,
giving

  "Boot failed: Exec format error (http://ipxe.org/2e852001)"

in the hope that users will, upon seeing something that is
recognisably a URL, try viewing it in a web browser.  Such users will
be greeted by a web page containing a more detailed description of the
error (automatically generated from the einfo text), including links
to each line of code that might generate the error, and a section for
additional user-contributed notes.  At the time of writing, a user who
visits http://ipxe.org/2e852001 would see a note saying

  "This error usually indicates that the SAN disk is empty, and does
   not yet contain a bootable operating system."

which may be more useful than "Exec format error (Error 0x2e852001)".

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-10-19 06:14:22 +01:00
Michael Brown c4af205cf0 [settings] Modify "set" command to allow space separated values
Allow multiple, space separated values (such as kernel arguments,
passed via DHCP) to be assigned to an identifier using the "set"
command.

Originally-implemented-by: Aaron Brooks <aaron@brooks1.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-09-21 14:57:33 +01:00
Michael Brown 1c7f47895c [lotest] Add loopback testing commands
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-09-21 02:03:42 +01:00
Michael Brown bf2657075d [fc] Add Fibre Channel management commands
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-09-15 03:17:30 +01:00
Piotr Jaroszyński ddef2e1bc1 [linux] Add command line arguments
Support qemu-like arguments for network setup:
--net driver_name[,setting=value]*

and global settings:
--settings setting=value[,setting=value]*

Signed-off-by: Piotr Jaroszyński <p.jaroszynski@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-08-19 12:45:41 +01:00
Michael Brown e3c7a1948d [dhcp] Allow multiple interfaces in dhcp command
The "dhcp" command now accepts a list of interfaces to try until one
succeeds.  For example:

 iPXE> dhcp net0 net1 net2

If no interfaces are specified, all interfaces will be tried.

Note that interfaces that fail to DHCP are closed in order to avoid
memory exhaustion.  This behavior differs from the previous "dhcp"
command implementation but should not affect any existing scripts
since a "dhcp" command failure would in any case cause the script to
abort.

Originally-implemented-by: Lars Kellogg-Stedman <lars@oddbit.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-08-16 16:46:22 +01:00
Michael Brown 3338a03982 [hci] Continue processing while prompting for shell banner
Continue calling step() while displaying the shell banner.  This
potentially allows TCP connections to close gracefully after a failed
boot attempt.

Inspired-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-07-14 12:43:10 +01:00
Michael Brown d15ce77267 [cmdline] Fix inconsistent and ugly code formatting in shell_banner()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-07-14 11:17:26 +01:00
Glenn Brown 978c840365 [settings] Add setting deletion (Ctrl-D) interface
Make Ctrl-D delete a setting, because the Text User Interface (tui)
previously provided no way to delete a setting.  Also, update the
on-screen instructions to describe the new feature.  Deleting settings
is especially important for settings stored in precious nonvolatile
storage.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-06-24 23:34:43 +01:00
Glenn Brown f9bcb928f5 [settings] Enable jump scroll in config UI
Implement jump scrolling with "..." displayed where the settings list
continues off-screen, because there are now too many settings to fit
on screen in the "config ..." text user interface.

Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-06-24 23:32:37 +01:00
Michael Brown 6c0e8c14be [libc] Enable automated extraction of error usage reports
Add preprocessor magic to the error definitions to enable every error
usage to be tracked.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-05-31 03:11:57 +01:00
Michael Brown 8406115834 [build] Rename gPXE to iPXE
Access to the gpxe.org and etherboot.org domains and associated
resources has been revoked by the registrant of the domain.  Work
around this problem by renaming project from gPXE to iPXE, and
updating URLs to match.

Also update README, LOG and COPYRIGHTS to remove obsolete information.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-04-19 23:43:39 +01:00
Marty Connor 422f3a6116 [shell_banner] Avoid printing Ctrl-B prompt if BANNER_TIMEOUT <= 0
Signed-off-by: Marty Connor <mdc@etherboot.org>
2010-02-03 19:14:35 -05:00
Joshua Oreman 1327a787eb [iwmgmt] Add wireless management commands and text for common errors
Add commands `iwstat' (to list 802.11-specific status information for
802.11 devices) and `iwlist' (to scan for available networks and print
a list along with security information).

Signed-off-by: Marty Connor <mdc@etherboot.org>
2010-01-05 09:11:21 -05:00
Michael Brown 76d5e493d1 [libc] Use only generic errortab entries to match generic errors 2009-11-16 22:08:59 +00:00
Michael Brown 76c915d5bd [ifmgmt] Move ifmgmt_cmd.h to include/hci 2009-06-28 20:28:38 +01:00
Michael Brown 6e564323e0 [ifmgmt] Optimise prototype for ifcommon_exec()
ifcommon_exec() was long-ago marked as __attribute__((regparm(2))) in
order to minimise the size of functions that call into it.  Since
then, gPXE has added -mregparm=3 as a general compilation option, and
this "optimisation" is now counter-productive.

Change (and simplify) the prototype to minimise code size given the
current compilation conditions.
2009-06-28 20:24:54 +01:00
Joshua Oreman 15ce2fb851 [hci] Expose ifcommon_exec() in a local header so wireless commands can use it
This keeps code size down, since the wireless interface management
commands have the same command-line interface and overall structure as
the wired commands.

Signed-off-by: Michael Brown <mcb30@etherboot.org>
2009-06-24 13:23:41 +01:00
Michael Brown a310d00d37 [netdevice] Add mechanism for reporting detailed link status codes
Expand the NETDEV_LINK_UP bit into a link_rc status code field,
allowing specific reasons for link failure to be reported via
"ifstat".

Originally-authored-by: Joshua Oreman <oremanj@rwcr.net>
2009-06-24 13:04:36 +01:00
Joshua Oreman f8448735b0 [image] Modify imgfree command to accept an argument
This resolves potential difficulties occurring when more than one script
is used. Total cost: 88 bytes uncompressed.

Signed-off-by: Michael Brown <mcb30@etherboot.org>
2009-06-23 10:53:33 +01:00
Michael Brown c44a193d0d [legal] Add a selection of FILE_LICENCE declarations
Add FILE_LICENCE declarations to almost all files that make up the
various standard builds of gPXE.
2009-05-18 08:33:25 +01:00
Michael Brown f7d2168c8e [segment] Add "Requested memory not available" error message
prep_segment() can sometimes fail because an image requests memory
that is already in use by gPXE.  This will happen if
e.g. undionly.kpxe is used to boot memtest86; the memtest86 image is
an old-format kernel that needs to be loaded at 9000:0000, but this
area of memory may well already be in use by the underlying PXE stack.

Add a human-friendly error message, so that the cause is more
immediately visible.
2009-03-31 04:38:48 +01:00
Daniel Verkamp a323a85d9b [digest] md5sum and sha1sum commands
Modified-by: Michael Brown <mcb30@etherboot.org>
Signed-off-by: Michael Brown <mcb30@etherboot.org>
2009-03-27 04:29:54 +00:00
Shao Miller 87b494bbab [time] Add the sleep command
Reviewed-by: Stefan Hajnoczi <stefanha@gmail.com>
Reviewed-by: Thomas Miletich <thomas.miletich@gmail.com>
Modified-by: Michael Brown <mcb30@etherboot.org>
Signed-off-by: Michael Brown <mcb30@etherboot.org>
2009-03-26 10:06:04 +00:00
Michael Brown 3c68ff99ea [tables] Incorporate table data type information into table definition
Eliminate the potential for mismatches between table names and the
table entry data type by incorporating the data type into the
definition of the table, rather than specifying it explicitly in each
table accessor method.
2009-03-13 02:10:21 +00:00
Michael Brown 1266d7902b [tables] Redefine methods for accessing linker tables
Intel's C compiler (icc) chokes on the zero-length arrays that we
currently use as part of the mechanism for accessing linker table
entries.  Abstract away the zero-length arrays, to make a port to icc
easier.

Introduce macros such as for_each_table_entry() to simplify the common
case of iterating over all entries in a linker table.

Represent table names as #defined string constants rather than
unquoted literals; this avoids visual confusion between table names
and C variable or type names, and also allows us to force a
compilation error in the event of incorrect table names.
2009-03-13 02:06:30 +00:00
Daniel Verkamp 4397a2a4ca [time] Add the time command
Signed-off-by: Michael Brown <mcb30@etherboot.org>
2009-03-06 15:02:41 +00:00
Michael Brown 4f3bab1a55 [image] Allow for zero embedded images
Having a default script containing

  #!gpxe
  autoboot

can cause problems when entering commands to load and start a kernel
manually; the default script image will still be present when the
kernel is started and so will be treated as an initrd.  It is possible
to work around this by typing "imgfree" before any other commands, but
this is counter-intuitive.

Fix by allowing the embedded image list to be empty (in which case we
just call autoboot()), and making this the default.

Reported by alkisg@gmail.com.
2009-02-24 05:57:56 +00:00
Shao Miller 43834f5d25 [image] Added "chain" command to fetch, load, and execute image
The "chain" command combines the functions of "imgfetch", "imgload",
and "boot".

    chain http://etherboot.org/gtest/gtest.gpxe

is equivalent to:

    kernel http://etherboot.org/gtest/gtest.gpxe
    boot
2009-02-24 05:28:14 +00:00
Michael Brown 6de4db5da0 [login] Add "login" command and UI 2009-02-17 12:02:16 +00:00
Michael Brown 67ee41ad6d [editbox] Allow for password widgets that do not display their contents 2009-02-17 11:55:55 +00:00
Michael Brown 881f1f59ef [pxe] Obey lists of PXE Boot Servers and associated Discovery Control bits
Various combinations of options 43.6, 43.7 and 43.8 dictate which
servers we send Boot Server Discovery requests to, and which servers
we should accept responses from.  Obey these options, and remove the
explicit specification of a single Boot Server from start_pxebs() and
dependent functions.
2009-02-05 09:34:32 +00:00
Michael Brown e65afc4b10 [dhcp] Split PXE menuing code out of dhcp.c
The DHCP client code now implements only the mechanism of the DHCP and
PXE Boot Server protocols.  Boot Server Discovery can be initiated
manually using the "pxebs" command.  The menuing code is separated out
into a user-level function on a par with boot_root_path(), and is
entered in preference to a normal filename boot if the DHCP vendor
class is "PXEClient" and the PXE boot menu option exists.
2009-02-01 01:21:40 +00:00
Michael Brown 941b4c2adb [commands] Fix config command to accept zero arguments 2008-10-12 15:11:10 +01:00
Michael Brown 764e2cc68c [cmdline] Minor tidy-ups to shell_banner.c 2008-07-24 20:00:43 +01:00
Andrew Schran 833447392d [cmdline] Added configurable shell banner timeout
This change allows the time for which shell banners are displayed to
be configured in the config.h file.  The ability to access the shell
can also be effectively disabled by setting this timeout to zero.
2008-07-24 19:59:12 +01:00
Michael Brown 0436e417bc [image] Fail "imgexec"/"boot" if the image to execute is ambiguous
If there is more than one loaded image, refuse to automatically select
the image to execute.  There are at least two possible cases, with
different "correct" answers:

1. User loads image A by mistake, then loads image B and types "boot".
   User wants to execute image B.

2. User loads image A, then loads image B (which patches image A), then
   types "boot".  User wants to execute image A.

If a user actually wants to load multiple images, they must explicitly
specify which image is to be executed.
2008-07-08 03:50:44 +01:00
Michael Brown 4847d97372 [settings] Allow "config" command to access root settings block 2008-07-08 02:10:18 +01:00
Michael Brown dbe9269f3a [bzimage] Kill off the initrd image type
We can just treat all non-kernel images as initrds, which matches our
behaviour for multiboot kernels.  This allows us to eliminate initrd as
an image type, and treat the "initrd" command as just another synonym for
"imgfetch".
2008-07-08 01:30:11 +01:00
Stefan Hajnoczi 6e670b5f38 [GDB] Remote debugging over UDP
This commit implements GDB over UDP.  Using UDP is more complex than
serial and has required some restructuring.

The GDB stub is now built using one or both of GDBSERIAL and GDBUDP
config.h options.

To enter the debugger, execute the gPXE shell command:
gdbstub <transport> [<options>...]

Where <transport> is "serial" or "udp".  For "udp", the name of a
configured network device is required:
gdbstub udp net0

The GDB stub listens on UDP port 43770 by default.
2008-06-30 19:19:48 +01:00
Michael Brown ddf5c8d4d3 [cmdline] Fix image command-line construction for zero-length argument lists
This fixes a bug introduced in commit 4c85017.
2008-06-27 21:50:18 +01:00
Michael Brown 4c85017968 [cmdline] Remove arbitrary limit on the length of image command lines 2008-06-12 02:12:10 +01:00
Michael Brown 75965c9c6e [iSCSI] Produce meaningful errors on login failure
Return the most appropriate of EACCES, EPERM, ENODEV, ENOTSUP, EIO or
EINVAL depending on the exact error returned by the target, rather than
just always returning EPERM.

Also, ensure that error strings exist for these errors.
2008-06-03 23:47:20 +01:00
Michael Brown 3475b693b7 [HCI] Display "Not an executable image" when appropriate
PXE is a catch-all image format with no signature checks.  If an
unsupported image file is loaded, it will be treated as a PXE image.  In
most cases, the image will be too large to be loaded as a PXE image (which
has to fit in base memory), so the error returned to the user will be that
the segment could not fit within the memory region.

Add an explicit check to pxe_image.c to reject images larger than base
memory with ENOEXEC.

Add ENOEXEC to the error string table.
2008-04-08 16:28:00 +01:00
Michael Brown 978996cdae [usr] Offer user a second chance to enter the shell on boot failure 2008-03-26 23:16:20 +00:00
Michael Brown 92d15eff30 [Settings] Remove assumption that all settings have DHCP tag values
Allow for settings to be described by something other than a DHCP option
tag if desirable.  Currently used only for the MAC address setting.

Separate out fake DHCP packet creation code from dhcp.c to fakedhcp.c.

Remove notion of settings from dhcppkt.c.

Rationalise dhcp.c to use settings API only for final registration of the
DHCP options, rather than using {store,fetch}_setting throughout.
2008-03-25 20:46:16 +00:00
Michael Brown 260b93bb72 [Settings] Add settings hierarchy
Add the notion of the settings hierarchy, complete with
register/unregister routines.

Rename set->store and get->fetch to avoid naming conflicts with get/put
as used in reference counting.
2008-03-20 21:01:32 +00:00
Michael Brown a48b4d9948 [Settings] Start revamping the configuration settings API.
Add the concept of an abstract configuration setting, comprising a (DHCP)
tag value and an associated byte sequence.

Add the concept of a settings namespace.

Add functions for extracting string, IPv4 address, and signed and
unsigned integer values from configuration settings (analogous to
dhcp_snprintf(), dhcp_ipv4_option(), etc.).

Update functions for parsing and formatting named/typed options to work
with new settings API.

Update NVO commands and config UI to use new settings API.
2008-03-20 04:06:07 +00:00
Michael Brown 5a08b434c7 [Settings] show_setting() functions return snprintf()-style length.
show_setting() and related functions now return an "actual length" in the
style of snprintf().  This is to allow consumers to allocate buffers large
enough to hold the formatted setting.
2008-03-18 00:48:23 +00:00
Michael Brown 3e781eb87f Merge branch 'xl0-timer' 2008-03-10 13:02:53 +00:00
Michael Brown b08a6f5300 [Command] Add "sanboot" command. 2008-03-04 17:59:26 +00:00
Alexey Zaytsev a1572e0ab0 Modify gPXE core and drivers to work with the new timer subsystem
Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
2008-03-02 03:41:10 +03:00
Holger Lubitz 3559beeb0f __nonnull changes 2007-08-20 00:34:17 +02:00
Holger Lubitz 3c19e4a07e __nonnull changes 2007-08-20 00:34:04 +02:00
Holger Lubitz d39e79248c __nonnull changes 2007-08-20 00:33:55 +02:00
Holger Lubitz c5414e6d12 __nonnull changes 2007-08-20 00:33:51 +02:00
Holger Lubitz 6a3ee34c18 __nonnull changes 2007-08-20 00:32:51 +02:00
Holger Lubitz e7114f1215 __nonnull changes 2007-08-20 00:32:36 +02:00
Michael Brown 6e46dddc2c Print multiple commands per line in help 2007-08-03 01:03:21 +01:00
Michael Brown 710c6c1be1 Error message cleanups. 2007-08-02 20:27:50 +01:00
Michael Brown d4947c05b2 Allow images to hold references to the originating URI.
Some shuffling around of the image management code; this needs tidying up.
2007-08-02 20:18:32 +01:00
Michael Brown 9fd6a0418f Allowed zero-cost enforced ordering of features in startup banner
list.

Added FEATURE() macros to most relevant (non-driver) files.
2007-08-02 14:51:03 +01:00
Michael Brown 0acb016840 Add FEATURE() macro, plus code to display features at startup time,
and generate DHCP options to indicate features to DHCP server (and to
PXE NBPs).
2007-08-02 04:24:39 +01:00
Michael Brown 0d568ac219 Make has_key() a static inline, rather than omitting it altogether. 2007-07-28 22:55:17 +01:00
Michael Brown 3e816c3d56 Revert "make bool m_echo static" - I suspect this to be defined by spec
This reverts commit 3cb133d27d.
2007-07-28 22:52:20 +01:00
Holger Lubitz 3cb133d27d make bool m_echo static 2007-07-27 21:47:28 +02:00
Holger Lubitz ac1e0aa63e remove has_key by #if 0'ing out 2007-07-27 21:46:21 +02:00
Holger Lubitz 0e0843a872 make _wgetc static 2007-07-27 21:45:04 +02:00
Holger Lubitz 9280f2649a make struct _softlabelkeys *slks static 2007-07-27 21:38:45 +02:00
Holger Lubitz 97aade0d1f make imgfill_cmdline static 2007-07-27 21:35:17 +02:00
Michael Brown 9aa61ad5a2 Add per-file error identifiers 2007-07-24 17:11:31 +01:00
Marty Connor c77704cb60 Warnings purge: src/{crypto,hci,net} 2007-07-03 13:20:22 -04:00
Michael Brown e4c9c91d6e Removed debugging statements that should not have been checked in. 2007-06-28 17:57:10 +01:00
Michael Brown 4b08f4cf0f Quick hack to get image booting working again 2007-06-28 17:55:29 +01:00
Michael Brown 070c55a838 Added EPIPE description. 2007-05-26 15:05:31 +00:00
Michael Brown 160e66dbb9 Typo 2007-03-20 18:55:00 +00:00
Michael Brown cde6d776e3 Handle structured error codes. 2007-01-19 13:52:50 +00:00
Michael Brown f4c1e564a1 vsprintf.h is gPXE-specific; move it to include/gpxe 2007-01-19 01:17:23 +00:00
Michael Brown 73b09ecba6 Use stdio.h instead of vsprintf.h 2007-01-19 01:13:12 +00:00
Michael Brown 5ff23aa406 Include stdlib.h rather than malloc.h 2007-01-18 20:06:03 +00:00
Michael Brown 90d859c34b Add ETIMEDOUT 2007-01-15 02:46:56 +00:00
Michael Brown 76aa9ad07d Make TCP give up immediately when it receives -ENETUNREACH from
tcpip_tx().  This avoids the irritating wait when you accidentally type
"kernel pxelinux.0" before bringing up the network interface.

Add ENETUNREACH to strerror()'s list.
2007-01-14 16:47:03 +00:00
Michael Brown 8edf8f6fa8 Add the "initrd" command 2007-01-14 16:09:48 +00:00
Michael Brown c088ecf042 Make "boot" a synonym for "imgexec", to match grub 2007-01-14 00:08:13 +00:00
Michael Brown beb941ed81 Rename "boot" to "autoboot" 2007-01-14 00:06:23 +00:00
Michael Brown 63386f4455 Added ENOENT, since HTTP 404 translates to it 2007-01-12 19:14:01 +00:00
Michael Brown 9952df9b52 Add "dhcp" command 2007-01-12 09:53:28 +00:00
Michael Brown 83559c668a Don't print "<NULL>" when we use imgautoselect(). 2007-01-12 08:59:25 +00:00
Michael Brown 2876197306 Allow "imgexec" with no arguments to boot the file that was loaded with
"kernel".
2007-01-12 07:32:46 +00:00
Michael Brown f135a37f30 Cleaner separation between imgXXX() functions and image_cmd.c 2007-01-12 07:22:20 +00:00
Michael Brown 9817f93094 Add basic "fetch" and "imgstat" commands. 2007-01-12 06:05:27 +00:00
Michael Brown 8b6eaf3c82 Be silent if there are no network interfaces 2007-01-12 05:48:22 +00:00
Michael Brown 83fa318b86 Added strerror(0)=="No error", so that TCP protocols can use
strerror(rc) in their closed() methods without producing "Error
0x0000" when the connection is closed normally.
2007-01-11 04:01:31 +00:00
Michael Brown d45c5e7ce7 Add "route" command (which currently only displays the routing table; it
can't modify it).
2007-01-10 20:51:14 +00:00
Michael Brown f396f1f9d3 Force ordering of commands within help list. 2007-01-10 05:13:20 +00:00
Michael Brown cef551376f Force ordering of commands in help list. 2007-01-10 05:10:30 +00:00
Michael Brown dad5274522 Add "name" field to struct device to allow human-readable hardware device
names.

Add "dev" pointer in struct net_device to tie network interfaces back to a
hardware device.

Force natural alignment of data types in __table() macros.  This seems to
prevent gcc from taking the unilateral decision to occasionally increase
their alignment (which screws up the table packing).
2007-01-10 04:22:09 +00:00
Michael Brown 55e590ab3a Move header file for usr/autoboot.c to include/usr 2007-01-10 02:03:20 +00:00
Michael Brown d24b80acf2 Added network interface management commands 2007-01-10 01:55:07 +00:00
Michael Brown 70cc3a164a Reset character attributes before start of welcome banner, in case
it's a serial console and remembers state from the previous program
run.
2007-01-09 04:51:27 +00:00
Michael Brown d0a3cc3417 Avoid creating implicit memcpy()s 2007-01-05 14:48:20 +00:00
Michael Brown 286db6ffa3 Print explicit error message on iSCSI boot failure, and add
"Permission denied" as an error text to strerror().
2006-12-21 16:16:24 +00:00
Michael Brown f33a03c1e5 Use getkey() and symbolic key names. 2006-12-20 22:25:54 +00:00
Michael Brown 4b2b8b02ab Use symbolic key names, and avoid moving beyond end of string 2006-12-20 22:21:09 +00:00
Michael Brown c5df1bc7df Use getkey() and symbolic key names. 2006-12-20 22:12:53 +00:00
Michael Brown b9f8599537 Define KEY_MIN and use it in kb.c. 2006-12-20 21:10:32 +00:00
Michael Brown cbeec25662 settings_ui() now returns a status code. 2006-12-20 11:42:48 +00:00
Michael Brown 07ddaedd33 Add EIO.
Kill errortab array; it can screw up alignment.
2006-12-20 07:57:40 +00:00
Michael Brown 84202d89f0 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.
2006-12-20 07:04:08 +00:00
Michael Brown 9ab17484d0 Explicitly call erase(), to cope with platforms where the ANSI clear
screen sequence doesn't work (like bios_console.c on some platforms).
2006-12-20 06:12:04 +00:00
Michael Brown 8f9336e0c1 Add "config" command to access config UI 2006-12-20 05:37:33 +00:00
Michael Brown 666b309c0c Add instruction row, and save option 2006-12-20 05:37:15 +00:00
Michael Brown 75430e813e Only need printf(), so use vsprintf.h instead of console.h 2006-12-20 05:33:12 +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 c66b99272f Fix (hopefully) the scrolling logic 2006-12-20 03:41:55 +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 a1685cb3e2 Move nvo_cmd.c to hci/commands. 2006-12-20 00:31:34 +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 1bc3514bd8 Start of generic editable string support 2006-12-19 19:28:12 +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 e85bf52446 Avoid cursor move on every single character 2006-12-19 00:51:32 +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 2ed2b2efe8 Use iskey() and getchar() to interact with console, rather than object
abstraction.
2006-12-18 16:46:25 +00:00
Dan Lynch c29c868475 - implemented cursor retreat function (_wcursback) as a core function
- reimplemented cleaner wgetnstr
- fixed wdelch for use with _wcursback
2006-06-28 11:48:40 +00:00
Dan Lynch 7f4cfe4a84 - put in the screen initialisation stuff and clear the screen... 2006-06-27 17:18:11 +00:00
Dan Lynch 11e280670d - works with test ansi tty, but will need a rethink when we start
getting key_ codes instead
2006-06-27 17:15:34 +00:00
Dan Lynch 916f21921f check whether malloc returns a valid pointer 2006-06-27 13:32:15 +00:00
Dan Lynch 9ca2f64ee1 moved console specific items out of mucurses (should be handled by external screen object) 2006-06-27 13:31:30 +00:00
Dan Lynch 05c0b3ce09 included contents of input.{c,h} in kb.c 2006-06-27 13:27:28 +00:00
Dan Lynch 1c87d54bb8 - recoded wgetch and wgetnstr for greater more efficiency
- wgetch now includes non, part and full blocking read support
2006-06-27 10:24:40 +00:00
Dan Lynch fb85954249 first working version - nasty, but mostly works 2006-06-26 08:24:34 +00:00
Dan Lynch 890dc758e8 - proper layout formatted soft label array, with justification formatted labels
- some minor preventatives
2006-06-21 15:09:55 +00:00
Dan Lynch 811df504a5 - erradicate compiler warning due to possibility of uninitialised variables (switch statement) 2006-06-21 10:38:03 +00:00
Dan Lynch 6fc723c294 - added doxygen @file header
- no longer depends on slk
2006-06-21 10:35:46 +00:00
Dan Lynch d77120541a - added doxygen @file header 2006-06-21 10:31:59 +00:00
Dan Lynch 172a568af5 - added doxygen @file header
- some more minor functionality implemented
2006-06-21 10:31:20 +00:00
Dan Lynch 3049a1f026 added doxygen @file header 2006-06-21 10:30:03 +00:00
Dan Lynch 14f5d3203d - removed slk references
- corrected minor algo errors in primitives
- added doxygen @file header
2006-06-21 10:29:13 +00:00
Dan Lynch 79a9aced26 - added doxygen @file header
- wdeleteln function implemented
2006-06-21 10:27:52 +00:00
Dan Lynch 12ca5aa442 added doxygen file header 2006-06-21 10:26:01 +00:00
Dan Lynch 1632c25c78 - major implementation work completed (testing in progress)
- some optimisation done
2006-06-21 10:21:40 +00:00
Dan Lynch 3994688804 initial check in 2006-06-21 10:20:39 +00:00
Dan Lynch ad1aca0634 - separated curses.c out into separate source files to optimise
library use later on
- some small mods to existing functions
2006-06-08 17:23:37 +00:00