summaryrefslogtreecommitdiffstats
path: root/src/hci
Commit message (Collapse)AuthorAgeFilesLines
* [ifmgmt] Move ifmgmt_cmd.h to include/hciMichael Brown2009-06-282-31/+1Star
|
* [ifmgmt] Optimise prototype for ifcommon_exec()Michael Brown2009-06-282-12/+12
| | | | | | | | | | 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.
* [hci] Expose ifcommon_exec() in a local header so wireless commands can use itJoshua Oreman2009-06-242-1/+32
| | | | | | | | 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>
* [netdevice] Add mechanism for reporting detailed link status codesMichael Brown2009-06-241-0/+1
| | | | | | | | 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>
* [image] Modify imgfree command to accept an argumentJoshua Oreman2009-06-231-5/+18
| | | | | | | 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>
* [legal] Add a selection of FILE_LICENCE declarationsMichael Brown2009-05-1826-0/+52
| | | | | Add FILE_LICENCE declarations to almost all files that make up the various standard builds of gPXE.
* [segment] Add "Requested memory not available" error messageMichael Brown2009-03-311-0/+1
| | | | | | | | | | | 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.
* [digest] md5sum and sha1sum commandsDaniel Verkamp2009-03-271-0/+120
| | | | | Modified-by: Michael Brown <mcb30@etherboot.org> Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [time] Add the sleep commandShao Miller2009-03-261-0/+30
| | | | | | | 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>
* [tables] Incorporate table data type information into table definitionMichael Brown2009-03-131-3/+2Star
| | | | | | | 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.
* [tables] Redefine methods for accessing linker tablesMichael Brown2009-03-133-19/+7Star
| | | | | | | | | | | | | | | 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.
* [time] Add the time commandDaniel Verkamp2009-03-061-0/+54
| | | | Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [image] Allow for zero embedded imagesMichael Brown2009-02-241-4/+4
| | | | | | | | | | | | | | | | | | 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.
* [image] Added "chain" command to fetch, load, and execute imageShao Miller2009-02-241-0/+20
| | | | | | | | | | | | 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
* [login] Add "login" command and UIMichael Brown2009-02-172-0/+162
|
* [editbox] Allow for password widgets that do not display their contentsMichael Brown2009-02-172-4/+9
|
* [pxe] Obey lists of PXE Boot Servers and associated Discovery Control bitsMichael Brown2009-02-051-13/+4Star
| | | | | | | | 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.
* [dhcp] Split PXE menuing code out of dhcp.cMichael Brown2009-02-013-8/+97
| | | | | | | | | 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.
* [commands] Fix config command to accept zero argumentsMichael Brown2008-10-121-1/+1
|
* [cmdline] Minor tidy-ups to shell_banner.cMichael Brown2008-07-241-4/+4
|
* [cmdline] Added configurable shell banner timeoutAndrew Schran2008-07-241-5/+6
| | | | | | 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.
* [image] Fail "imgexec"/"boot" if the image to execute is ambiguousMichael Brown2008-07-081-1/+1
| | | | | | | | | | | | | | | 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.
* [settings] Allow "config" command to access root settings blockMichael Brown2008-07-081-7/+7
|
* [bzimage] Kill off the initrd image typeMichael Brown2008-07-081-22/+4Star
| | | | | | | 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".
* [GDB] Remote debugging over UDPStefan Hajnoczi2008-06-301-0/+105
| | | | | | | | | | | | | | | | | 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.
* [cmdline] Fix image command-line construction for zero-length argument listsMichael Brown2008-06-271-5/+8
| | | | This fixes a bug introduced in commit 4c85017.
* [cmdline] Remove arbitrary limit on the length of image command linesMichael Brown2008-06-121-8/+17
|
* [iSCSI] Produce meaningful errors on login failureMichael Brown2008-06-041-7/+10
| | | | | | | | 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.
* [HCI] Display "Not an executable image" when appropriateMichael Brown2008-04-081-0/+1
| | | | | | | | | | | | | 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.
* [usr] Offer user a second chance to enter the shell on boot failureMichael Brown2008-03-271-18/+1Star
|
* [Settings] Remove assumption that all settings have DHCP tag valuesMichael Brown2008-03-252-19/+18Star
| | | | | | | | | | | | 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.
* [Settings] Add settings hierarchyMichael Brown2008-03-203-10/+9Star
| | | | | | | | 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.
* [Settings] Start revamping the configuration settings API.Michael Brown2008-03-203-98/+57Star
| | | | | | | | | | | | | | | | 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.
* [Settings] show_setting() functions return snprintf()-style length.Michael Brown2008-03-182-2/+2
| | | | | | 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.
* Merge branch 'xl0-timer'Michael Brown2008-03-102-2/+2
|\
| * Modify gPXE core and drivers to work with the new timer subsystemAlexey Zaytsev2008-03-022-2/+2
| | | | | | | | Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
* | [Command] Add "sanboot" command.Michael Brown2008-03-041-0/+68
|/
* __nonnull changesHolger Lubitz2007-08-201-1/+18
|
* __nonnull changesHolger Lubitz2007-08-201-0/+2
|
* __nonnull changesHolger Lubitz2007-08-201-5/+5
|
* __nonnull changesHolger Lubitz2007-08-201-0/+8
|
* __nonnull changesHolger Lubitz2007-08-201-0/+5
|
* __nonnull changesHolger Lubitz2007-08-201-0/+9
|
* Print multiple commands per line in helpMichael Brown2007-08-031-2/+12
|
* Error message cleanups.Michael Brown2007-08-021-1/+2
|
* Allow images to hold references to the originating URI.Michael Brown2007-08-021-24/+59
| | | | Some shuffling around of the image management code; this needs tidying up.
* Allowed zero-cost enforced ordering of features in startup bannerMichael Brown2007-08-021-4/+4
| | | | | | list. Added FEATURE() macros to most relevant (non-driver) files.
* Add FEATURE() macro, plus code to display features at startup time,Michael Brown2007-08-021-1/+10
| | | | | and generate DHCP options to indicate features to DHCP server (and to PXE NBPs).
* Make has_key() a static inline, rather than omitting it altogether.Michael Brown2007-07-281-15/+1Star
|
* Revert "make bool m_echo static" - I suspect this to be defined by specMichael Brown2007-07-281-1/+1
| | | | This reverts commit 3cb133d27daf11e77fe48d44e1ce639711f903de.