david/ipxe
Archived
1
0
Commit Graph

539 Commits

Author SHA1 Message Date
Michael Brown
f15482d85f Added basename() to make automatically naming images easier. 2007-01-12 05:24:51 +00:00
Michael Brown
29dadc5ec6 Build automatically expanding buffers from struct buffer and erealloc(). 2007-01-12 03:51:04 +00:00
Michael Brown
45ec9c907e First version of an external memory allocator (not tested) 2007-01-12 03:15:29 +00:00
Michael Brown
859da6bd32 Allow external code to update hidden memory regions. 2007-01-12 03:13:04 +00:00
Michael Brown
2c66588f3e Add UNULL 2007-01-12 01:40:12 +00:00
Michael Brown
f59ad50504 Provide registration mechanism for loaded images, so that we can e.g.
refer to them by name from the command line, or build them into a
multiboot module list.

Use setting image->type to disambiguate between "not my image" and "bad
image"; this avoids relying on specific values of the error code.
2007-01-11 23:43:29 +00:00
Michael Brown
79a399c05a alloca() can be useful in some (limited) circumstances. 2007-01-11 23:19:31 +00:00
Michael Brown
c468c68661 Add command line that can be passed to executed images. 2007-01-11 21:19:29 +00:00
Michael Brown
819cd3f41c Limit -ENOEXEC to mean "this is not in my format". 2007-01-11 17:06:25 +00:00
Michael Brown
6a03552381 Distinguish between ENOMEM (as representing a lack of internal memory
as allocated by malloc()) versus all other errors, in particular
ENOBUFS (representing a lack of external buffer space, e.g. in a
device's TX queue or a user buffer).
2007-01-11 16:30:21 +00:00
Michael Brown
c810baad37 Use generic "struct image" rather than "struct elf". 2007-01-11 16:10:32 +00:00
Michael Brown
c6c63d954d Rename "image" field to "data", because "image->image" is just confusing. 2007-01-11 16:07:30 +00:00
Michael Brown
4fc9333159 Move include/image.h to include/gpxe/image.h 2007-01-11 16:04:36 +00:00
Michael Brown
230f16538f Create include/gpxe/elf.h for the ELF bits that aren't part of the ELF
standard and so don't belong in include/elf.h
2007-01-11 15:25:07 +00:00
Michael Brown
0010e10ef3 Update TFTP to use a struct buffer rather than a callback.
Add debug autocolourisation to TFTP.
2007-01-11 15:14:54 +00:00
Michael Brown
7ad1c2eaa8 Removed the Etherboot-specific ELF-image code and replaced it with a
generic ELF loader, to be used by the multiboot code.
2007-01-11 14:44:03 +00:00
Michael Brown
3634e705b7 Remove osloader.c and replace with a prep_segment() that uses userptr_t
and get_memmap() in image/segment.c
2007-01-11 14:32:26 +00:00
Michael Brown
c980cdd0aa Move memmap.h out of arch/i386; it no longer contains anything
architecture-dependent and is needed by the ELF code.
2007-01-11 14:08:44 +00:00
Michael Brown
fbfed96965 buffer.c should be using copy_{to,from}_user, rather than
copy_{to,from}_phys.
2007-01-11 05:42:06 +00:00
Michael Brown
a3ed0cbbc7 Extract packet-padding login from rtl8139.c to a separate pkbpad.c file. 2007-01-11 05:25:50 +00:00
Michael Brown
6918cf9e9e Change FTP to use a data buffer rather than a callback function. 2007-01-11 04:51:20 +00:00
Michael Brown
e2dcd05b67 Update buffer-handling code to enable expandable buffers. 2007-01-11 03:50:47 +00:00
Michael Brown
bb2024c6d6 Move include/buffer.h to include/gpxe/buffer.h 2007-01-11 01:47:26 +00:00
Michael Brown
d9ba8f790b Add route() function to display routing table. 2007-01-10 20:38:20 +00:00
Michael Brown
1fa5cd0e2b Add find_pci_netdev() 2007-01-10 16:16:05 +00:00
Michael Brown
fdc97499bf Add device description fields to struct device. 2007-01-10 15:27:48 +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
c821a7b20d Add udp_sendto_via() to allow e.g. DHCP to transmit without first having
to set up dummy routing entries.
2007-01-10 02:31:38 +00:00
Michael Brown
f008b77ba2 Allow an explicit network device to be specified for IP-layer
transmissions.
2007-01-10 02:25:11 +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
98b6154c3e Add "name" field to network device, to facilitate netdev commands. 2007-01-09 23:48:18 +00:00
Michael Brown
c65fae2475 Add RX quotas to the net device poll() method. This avoids the problem
of alloc_pkb() exhaustion when e.g. an iSCSI-booted DOS session is left
idle for a long time at the C:\ prompt and builds up a huge packet
backlog.
2007-01-09 21:47:01 +00:00
Michael Brown
18e5353bed Rename pkb_available() to pkb_tailroom() for consistency with Linux's
skb_tailroom().  Add pkb_headroom().
2007-01-09 20:56:31 +00:00
Michael Brown
b7fcfe8ece Added net device TX queue; this will be needed to support the PXE UNDI API
(which will need us to wait for TX completions).

Added debug autocolourisation to netdevice.c
2007-01-09 20:18:31 +00:00
Michael Brown
76525294ee Clean up connection closing and permanent failure logic. 2007-01-09 04:31:33 +00:00
Michael Brown
79c5f0ba04 Added PCI_BASE_CLASS() macro 2007-01-08 03:32:41 +00:00
Michael Brown
5af4918356 Added support for wildcard device/vendor ID matches 2007-01-08 03:23:38 +00:00
Michael Brown
20c9fc407e Remove types and prototypes now provided in the undi*.h headers. 2007-01-08 03:05:34 +00:00
Michael Brown
9780fef360 Partial implementation of UNDI loader caller. 2007-01-05 03:24:39 +00:00
Michael Brown
0638945c7e Add PXE driver-scanning code, capable of locating all PXE ROMs in a system
and matching them up to (e.g. PCI) devices.
2007-01-05 01:52:06 +00:00
Michael Brown
7e07dfb2f4 Added PXE bus driver (with support only for using PXE structures found
lying about in memory, not for loading from ROM), and UNDI net driver.
2007-01-04 19:38:34 +00:00
Michael Brown
350603cb86 Don't include __FUNCTION__ in assert() messages; it was causing the
function name to appear within the objects even in non-asserting
builds.  (This could be considered a gcc bug.)

Removing __FUNCTION__ from assert() reduces the size of bin/blib.a by
around 2.5%!
2007-01-04 13:48:13 +00:00
Michael Brown
0c03bb5a9a Make open() and close() an official part of the netdevice API.
Call netdevice's poll() and transmit() methods only when device is open.
2007-01-04 04:20:08 +00:00
Michael Brown
7fafa89258 A DHCP session holds a persistent reference to a network device 2007-01-04 03:42:28 +00:00
Michael Brown
ac53da1790 Added missing #include 2007-01-04 03:40:07 +00:00
Michael Brown
b29861a5aa IPv6 minirouting table entries hold persistent references to net devices. 2007-01-04 03:28:30 +00:00
Michael Brown
b22d4405c0 An AoE session holds a persistent reference to a net device. 2007-01-04 03:21:45 +00:00
Michael Brown
bdf79ec8dc Use hotplug support to notify persistent reference holders when a
net_device is unregistered.
2007-01-04 03:09:28 +00:00
Michael Brown
0063725d28 Minimal hotplug support: provide a facility for notifying persistent
reference holders that their reference is about to become invalid.
2007-01-04 03:08:16 +00:00
Michael Brown
a0525a4ed3 Verify checksums on the RX datapath.
Simplify checksum generation on the TX datapath.
2007-01-03 20:48:52 +00:00
Michael Brown
b91b9d3d88 Use whole bytes for the ACKED and RCVD portions of tcp_state; it
produces slightly smaller code.
2006-12-30 01:32:22 +00:00
Michael Brown
2494625702 Added auto-colourising DBGC() macro 2006-12-29 03:05:21 +00:00
Michael Brown
ce9819af27 Redefine TCP state to include "flags that have been sent" rather than
"flags that are currently being sent".  This allows at least one special
case (checking that we haven't already sent a FIN in tcp_rx_fin()) to be
collapsed.
2006-12-29 00:44:31 +00:00
Michael Brown
61ed298bc7 Merge changes from mcb-tcp-fixes branch. 2006-12-27 23:09:46 +00:00
Michael Brown
a2e3357825 Cannot immediately overwrite the peer address when we parse
TargetAddress from the login response, because we still need the old
address while we close the connection!
2006-12-22 12:24:12 +00:00
Michael Brown
73e3e02367 Fix prototype of random() and move to stdlib.h 2006-12-22 01:44:51 +00:00
Michael Brown
66a7ed23cb Make start_timer() and stop_timer() robust against incorrect usage. 2006-12-22 01:35:21 +00:00
Michael Brown
9485478acc ibft_fill_data() prototype change. 2006-12-21 18:42:51 +00:00
Michael Brown
ab242a760d Add ability to shut down iSCSI connection 2006-12-21 17:17:47 +00:00
Michael Brown
cacd6b1d04 KEY_XXX constants are now defined in gpxe/keys.h. Kept separate from
curses.h so that you don't have to suffer the curses namespace pollution
just to get the symbolic key names.
2006-12-20 22:24:45 +00:00
Michael Brown
46c3eeba2a Fix definition of KEY_END 2006-12-20 22:17:44 +00:00
Michael Brown
2ae27f44d9 Add insert/delete and document keys, and documentation. 2006-12-20 22:11:28 +00:00
Michael Brown
791c7d3bf4 Added code to interpret ANSI keypress sequences into KEY_XXX constants. 2006-12-20 21:56:50 +00:00
Michael Brown
96a1a2c6f0 Key definitions 2006-12-20 21:53:07 +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
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
f8910410fe Add attr_{get,set,on,off} as static inlines. 2006-12-20 06:06:38 +00:00
Michael Brown
8f9336e0c1 Add "config" command to access config UI 2006-12-20 05:37:33 +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
4b33c03942 Increase colour pair limit 2006-12-20 03:42:35 +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
637a891264 Fix prototype of sleep() and move it to unistd.h 2006-12-20 03:14:59 +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
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
66007fa448 Provide an edit history to allow caller to efficiently update display. 2006-12-19 23:24:16 +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
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
e85bf52446 Avoid cursor move on every single character 2006-12-19 00:51:32 +00:00
Michael Brown
edbdce6e3d Now basically functioning on ANSI-supporting consoles. 2006-12-19 00:27:25 +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
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
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
007ca97f25 Added clear_setting() 2006-12-12 15:49:46 +00:00
Michael Brown
72b1629cee Add placeholder ibft.h 2006-12-08 16:16:21 +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
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