Michael Brown [Mon, 8 Jan 2007 02:38:10 +0000 (02:38 +0000)]
Separated out UNDI ROM location code into undirom.c, and use struct
undi_rom rather than struct pxe_driver. (This is part of the naming
consistency fixes).
Michael Brown [Mon, 8 Jan 2007 02:24:53 +0000 (02:24 +0000)]
Use "struct undi_device" instead of "struct pxe_device", and use the
function prefix "undinet_" and the variable name "undinic" in undinet.c,
so that we can reserve the variable name "undi" for a struct undi_device.
The idea is that we preserve the Etherboot 5.4 convention that the "UNDI"
code refers to our using an underlying UNDI stack, while the "PXE" code
refers to our providing a PXE API.
Michael Brown [Mon, 8 Jan 2007 01:29:51 +0000 (01:29 +0000)]
Add device to hierarchy before calling the driver's probe() function; this
way everything remains consistent if the probe() ends up creating child
devices.
Michael Brown [Sun, 7 Jan 2007 19:02:17 +0000 (19:02 +0000)]
Move START_UNDI, UNDI_STARTUP, UNDI_INITIALIZE and
UNDI_GET_INFORMATION calls into drivers/net/undi.c. undi_probe() now
gets given a pxe_device representing a PXE stack that has been loaded
into memory but not initialised in any way.
Michael Brown [Thu, 4 Jan 2007 19:42:05 +0000 (19:42 +0000)]
Obsolete; net driver functionality is now in undi_net.c and bus driver
functionality is now in pxebus.c. (Not all bus functionality is ported
across yet.)
Michael Brown [Thu, 4 Jan 2007 13:48:13 +0000 (13:48 +0000)]
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%!
Michael Brown [Fri, 29 Dec 2006 14:03:03 +0000 (14:03 +0000)]
Use auto-colourisation for debug messages.
Truncate TX length to TCP window at time of transmission rather than at
time of adding to TX packet; this is conceptually cleaner and also allows
the application to call tcp_send() multiple times to build up a single
packet.
Michael Brown [Fri, 29 Dec 2006 00:44:31 +0000 (00:44 +0000)]
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.
Michael Brown [Fri, 22 Dec 2006 13:04:50 +0000 (13:04 +0000)]
Ensure that old TCP connection state is destroyed before attempting to
reopen connection. (The TCP API will soon change to render this step
unnecessary.)
Michael Brown [Fri, 22 Dec 2006 12:24:12 +0000 (12:24 +0000)]
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!
Michael Brown [Thu, 21 Dec 2006 17:43:43 +0000 (17:43 +0000)]
When login fails, leave the session open but not in full feature
phase. In iscsi_issue(), detect this state and immediately refuse the
operation. This avoids trying multiple logins when scsi.c tries
several times to read the drive capacity.
Michael Brown [Wed, 20 Dec 2006 22:24:45 +0000 (22:24 +0000)]
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.
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 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.