Commit Graph

2166 Commits (37fc40bc8cd857a5e922b21b9e41580b39091c76)

Author SHA1 Message Date
Michael Brown 8624fdc445 Kill off the enforced RX quota; it only seems to hurt on real hardware. 2007-07-14 00:30:11 +01:00
Michael Brown 57b5e227ff Use fast in-situ test for gate A20 being set, to cut down on the
number of (potentially very slow) gateA20_set operations.

Die with a fatal error if we are unable to set gate A20; if this fails
then we are bound to experience memory corruption at a later stage,
and I'd prefer to pick it up early.
2007-07-13 13:32:49 +01:00
Michael Brown 096fa94f0c Add support for TCP timestamps 2007-07-13 11:32:53 +01:00
Michael Brown eb530845d4 Adjust received length to take into account any already-received data
in tcp_rx_data().

Clarify comments on discarding duplicate or out-of-order data.
2007-07-13 11:31:58 +01:00
Michael Brown d5735c631c Avoid reusing auto-allocated ports after connection close. 2007-07-13 11:25:00 +01:00
Michael Brown 2ac7694c3e Improve error reporting for strange length combinations reported by
the UNDI stack.

Ignore obviously invalid length combinations (as returned by
e.g. VMWare's PXE stack).

Limit to one packet per poll to avoid memory exhaustion.
2007-07-10 20:59:21 +01:00
Michael Brown efd322091d Set up %ds *before* testing a value in our data segment (d'oh!).
Always send EOI; do not chain to BIOS's default interrupt handler.
They are just too unpredictable; at least VMware's seems to kill the
machine if you go anywhere near it.

Disable interrupts after return from PXENV_UNDI_ISR, just in case some
dumb PXE stack enables them.
2007-07-10 17:08:32 +01:00
Michael Brown f6f9a3098d Report RX errors via netdev_rx_err() 2007-07-10 17:01:18 +01:00
Michael Brown fb16f90699 Dump first 64 bytes of chained ISR when debugging is enabled. 2007-07-10 16:57:55 +01:00
Michael Brown b3e44a24b1 May be required in some disconnect scenarios 2007-07-10 06:31:11 +01:00
Michael Brown 4075f7596b Unplug before sending close() message, to avoid screwing up interfaces
which respond to close with a reopen() (e.g. iSCSI).
2007-07-10 06:25:30 +01:00
Michael Brown d3ad76bc74 Add debug messages to process.c 2007-07-10 06:24:30 +01:00
Michael Brown edc4648c39 Protect ISR against failure to unhook. 2007-07-10 04:34:53 +01:00
Michael Brown 4e14b020a5 Master IRQ should be EOIed first, I think. 2007-07-10 04:33:59 +01:00
Michael Brown 19871cbb96 We probably ought not to call INT13 with interrupts disabled. 2007-07-10 04:32:30 +01:00
Michael Brown 027fed72c1 Working code to call the PXE stack from within the ISR. 2007-07-10 04:21:24 +01:00
Michael Brown 976a8514cb Hopefully solve the problem requiring the occasional "rm -rf bin/deps". 2007-07-09 23:10:55 +01:00
Michael Brown cd7e296cbe Always increase number of BIOS drives when registering 2007-07-09 20:42:04 +01:00
Michael Brown b90d321dfb Change %dl fixup rules for INT13:
INT 13,08 : read number of drives from 40:75
INT 13,15 : do nothing
all others : restore original value of %dl
2007-07-09 20:37:39 +01:00
Michael Brown c7d9fdb5b9 Proof of concept; works, but has several hard-coded hacks. 2007-07-09 20:28:40 +01:00
Michael Brown 8bce52d348 Set CF by default, clear on success (rather than clearing and setting
on failure).
2007-07-09 19:02:41 +01:00
Michael Brown f0c44f2f71 Remove xfer_ready() (it has been replaced by xfer_window()) 2007-07-09 03:58:46 +01:00
Michael Brown 55d03ccbe3 Added missing "static" 2007-07-09 03:54:29 +01:00
Michael Brown 9dc6a1e678 Remove some obsolete stream-API files 2007-07-09 03:53:06 +01:00
Holger Lubitz 4ff85d9f15 Add -mpreferred-stack-boundary=2 to i386 CFLAGS as it's almost always a win. 2007-07-09 03:32:54 +01:00
Holger Lubitz bfc4737751 Update Makefile for compilation on ARCH=x86_64 2007-07-09 03:31:14 +01:00
Michael Brown 487dc5be56 Fix up iscsiboot missing prototype warnings 2007-07-09 01:10:32 +01:00
Michael Brown fd4fcb57db Add missing static 2007-07-09 01:04:54 +01:00
Michael Brown fabd0f5fec Fix TX state machine and miscellaneous other bits. 2007-07-09 00:52:45 +01:00
Michael Brown ef9fd938d0 Fix root-path parsing. 2007-07-09 00:00:34 +01:00
Michael Brown cc80750694 Merge branch 'master' into iscsi-update 2007-07-08 22:06:33 +01:00
Michael Brown 7137c20ed1 Add strcspn() and strndup() 2007-07-08 22:03:12 +01:00
Michael Brown ed20fee0cf Make ref_get() return the reference, for cleaner code. 2007-07-08 22:02:45 +01:00
Michael Brown b94420a52b Ready to start testing 2007-07-08 22:01:49 +01:00
Michael Brown edd1b173a7 Code in place to use a hypothetical SCSI interface. 2007-07-08 19:33:26 +01:00
Michael Brown f2fa390ae6 Everything except the SCSI interface should now be present 2007-07-08 18:51:56 +01:00
Michael Brown 9b28b25332 iSCSI updated to use data-xfer interface on the socket side (TCP).
SCSI interface not yet implemented.
2007-07-08 16:04:13 +01:00
Michael Brown edded7546e Limit xmit window to one MTU. (Path MTU discovery not yet
implemented; should be done at some point.)
2007-07-08 14:33:53 +01:00
Michael Brown 3e1dd0772a Fix typo that was preventing any DHCP option applicators from being
applied.
2007-07-08 14:32:20 +01:00
Michael Brown 237e23c1c9 Add debug message when nameserver setting is applied/changed via DHCP. 2007-07-08 14:31:51 +01:00
Michael Brown 35afb379af TCP limits advertised TCP window to size of application window
obtained via xfer_window().
2007-07-08 14:14:59 +01:00
Michael Brown b34d4d0449 Separate the "is data ready" function of xfer_seek() into an
xfer_window() function, which can return a scalar rather than a
boolean.
2007-07-08 14:11:07 +01:00
Michael Brown ca4c6f9eee Kill off unused request() method in data-xfer interface. 2007-07-08 02:10:54 +01:00
Michael Brown e5d8ede978 Re-added symtab to CLEANUP list 2007-07-07 17:49:59 +01:00
Michael Brown e505ceb942 Revert "Cope with builds with differing debug options within a second of each"
This reverts commit fc5f6c9de2.

Reverted commit breaks the much more common case of changing the debug
options in subsequent builds without any code changes.
2007-07-07 17:49:07 +01:00
Michael Brown 4c418d2100 Use net_device_operations structure and netdev_nullify() to allow for
safe dropping of the netdev ref by the driver while other refs still
exist.

Add netdev_irq() method.  Net device open()/close() methods should no
longer enable or disable IRQs.

Remove rx_quota; it wasn't used anywhere and added too much complexity
to implementing correct interrupt-masking behaviour in pxe_undi.c.
2007-07-07 16:43:39 +01:00
Michael Brown 2823688a92 Revert "Replace natsemi driver with Indolent's updated one that uses the gPXE API"
This reverts commit 3487640397.
2007-07-07 16:40:58 +01:00
Michael Brown 627feee265 Merge branch 'zalloc' 2007-07-07 04:01:52 +01:00
Michael Brown 436adb2890 Revert "convert to zalloc"
This reverts commit 68add6e814.
2007-07-07 03:59:37 +01:00
Holger Lubitz 85e04b5837 Revert "convert to zalloc"
This reverts commit a4bea78974.
2007-07-07 01:56:37 +02:00
Holger Lubitz e3c72a3438 Revert "convert to zalloc"
This reverts commit 3414fd8df8.
2007-07-07 01:56:27 +02:00
Holger Lubitz ac323c5e4d Revert "convert to zalloc"
This reverts commit 636bd2cd0a.
2007-07-07 01:56:15 +02:00
Holger Lubitz 50fe2159d5 Revert "convert to zalloc"
This reverts commit 7297f04481.
2007-07-07 01:55:45 +02:00
Holger Lubitz a772dc4a2a Revert "convert to zalloc"
This reverts commit 5ce16b03a1.
2007-07-07 01:55:23 +02:00
Holger Lubitz a4d3476e0e convert to zalloc 2007-07-06 21:08:54 +02:00
Holger Lubitz 389c63d7c4 convert to zalloc 2007-07-06 21:08:41 +02:00
Holger Lubitz 32e4ca8ae3 convert to zalloc 2007-07-06 21:08:29 +02:00
Holger Lubitz 1ccb6f9dc6 convert to zalloc 2007-07-06 21:08:21 +02:00
Holger Lubitz da3c785816 convert to zalloc 2007-07-06 20:52:58 +02:00
Holger Lubitz 2b9fb513f4 convert to zalloc 2007-07-06 20:52:01 +02:00
Holger Lubitz 7872b890fe convert to zalloc 2007-07-06 20:50:32 +02:00
Holger Lubitz 7fa85d19b9 convert to zalloc 2007-07-06 20:49:26 +02:00
Holger Lubitz dc6c1c294d convert to zalloc 2007-07-06 20:47:15 +02:00
Holger Lubitz 68add6e814 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz 5ce16b03a1 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz 7297f04481 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz 636bd2cd0a convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz 3414fd8df8 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz a4bea78974 convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz 6def8592ed convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz 75ff85441b convert to zalloc 2007-07-06 20:42:05 +02:00
Holger Lubitz f77d9469a4 convert to zalloc 2007-07-06 20:19:55 +02:00
Holger Lubitz aca232c973 convert to zalloc 2007-07-06 20:19:55 +02:00
Holger Lubitz 6d0332b5b3 convert to zalloc 2007-07-06 20:19:55 +02:00
Holger Lubitz c7549bcebe convert to zalloc 2007-07-06 20:19:06 +02:00
Holger Lubitz bb61774ee4 convert to zalloc 2007-07-06 20:19:06 +02:00
Michael Brown 934b70d62c Apply global DHCP options when register_dhcp_options() is called. Do
not apply DHCP options in dhcp_configure_netdev().
2007-07-06 17:07:50 +01:00
Michael Brown 311637503d Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe 2007-07-06 13:31:58 +01:00
Michael Brown bfc335faa8 Added PXENV_GET_FILE_SIZE.
Documented non-blocking nature of PXENV_FILE_READ.

Changed FileName field in PXENV_FILE_OPEN to be a SEGOFF16, to avoid a
fixed 256-byte length limit on URLs.
2007-07-06 13:31:40 +01:00
Michael Brown f660e8ef58 Add strlen_user() (will be needed for PXE API extensions) 2007-07-06 13:07:10 +01:00
Marty Connor 74a1c77820 Merge branch 'master' of /pub/scm/gpxe 2007-07-06 08:04:55 -04:00
Marty Connor 28d8d828b3 Rename .lilo extension to .lkrn and updated dependencies 2007-07-06 08:04:06 -04:00
Michael Brown 763a3eab8a Add .pdsk target (padded .dsk, suitable for qemu). 2007-07-05 23:37:17 +01:00
Michael Brown 405be071de Pad ROM images to 512 bytes, not powers of two 2007-07-05 23:36:45 +01:00
Michael Brown fbda4837b0 Allocate heap at first usage, rather than assuming we can fit it in
below _text.  This should help with the gPXE-on-gPXE-via-PXE case.
2007-07-05 22:30:34 +01:00
Michael Brown b3ca73c303 Remap EBADF to PXENV_STATUS_TFTP_FILE_NOT_FOUND; the only user is
posix_io.c and this PXE error makes more sense in this context.
2007-07-05 18:47:46 +01:00
Michael Brown 1567b69895 Add concept of DHCP option applicators. 2007-07-05 18:38:14 +01:00
Michael Brown d64e1be1f8 First draft of PXE extensions API. 2007-07-05 18:03:09 +01:00
Michael Brown ed7eae6005 Use netdev_rx_err() to report receive errors. 2007-07-05 17:23:03 +01:00
Michael Brown 539ff45fd0 Allow recording of TX and RX errors to aid in end-user debugging. 2007-07-05 17:18:27 +01:00
Michael Brown 07ea125213 Use partition type 0xeb ("EtherBoot"), to avoid any attempts to mount
the Etherboot partition.
2007-07-05 14:20:55 +01:00
Michael Brown db1d99df39 Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe 2007-07-05 14:15:58 +01:00
Michael Brown 6e082c9b81 Add .usb target 2007-07-05 14:15:43 +01:00
Marty Connor 3487640397 Replace natsemi driver with Indolent's updated one that uses the gPXE API
This version uses the gPXE driver API rather than the legacy wrapper API.
2007-07-05 08:54:12 -04:00
Michael Brown a0f078d7f5 Working with multi-sector reads 2007-07-05 13:30:49 +01:00
Michael Brown 66208dd65d hdprefix that works for LBA only 2007-07-05 12:58:16 +01:00
Michael Brown 839960276d Miscellaneous efficiency improvements, and extend read_sectors to
handle multiple sectors.
2007-07-05 12:36:39 +01:00
Michael Brown bdd1a0f462 Make masking constants unsigned, to avoid a gcc3-only compiler warning. 2007-07-05 12:04:53 +01:00
Michael Brown 8156f6bd19 Switch compiler warning on tcp_open() to a #warning 2007-07-05 12:00:35 +01:00
Marty Connor 1069a74d20 Warnings purge for via-velocity.[ch] 2007-07-04 21:58:28 -04:00
Marty Connor 8d39559192 Update warnings in depca.c ns8390.c 2007-07-04 20:14:10 -04:00
Marty Connor 13016297ed Purge warnings from tg3.c 2007-07-04 19:49:46 -04:00
Marty Connor a75fb80107 Merge branch 'master' of /pub/scm/gpxe 2007-07-04 19:47:13 -04:00
Marty Connor e5950283ec Purge warnings from prism2 drivers 2007-07-04 19:47:01 -04:00
Michael Brown 3c2d50e5de Added active partition locator, and simple MBR built using it. 2007-07-05 00:21:01 +01:00
Michael Brown 738ebaf4a5 Revert "Added master boot record capable of locating active partition"
This reverts commit 844d088c51.
2007-07-05 00:20:04 +01:00
Michael Brown 7918fc97b8 Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe 2007-07-05 00:05:36 +01:00
Michael Brown 844d088c51 Added master boot record capable of locating active partition
(including logical partitions).
2007-07-05 00:05:26 +01:00
Michael Brown 5e3f2247e0 Kill off lots of warnings in via-velocity.c by correcting these definitions. 2007-07-04 23:36:16 +01:00
Marty Connor 77c1777b44 Merge branch 'master' of /pub/scm/gpxe 2007-07-04 18:33:22 -04:00
Marty Connor b219814627 Remove deprecation of pci_bar_size() 2007-07-04 18:28:37 -04:00
Marty Connor 1af1668c95 Warnings purge of drivers (continued) 2007-07-04 05:52:56 -04:00
Michael Brown ac69b85adb UNDI loader entry point implemented; seems to work. 2007-07-04 03:23:02 +01:00
Michael Brown 0324d5ff70 !PXE and PXENV+ structures are in code segment, not data segment. 2007-07-04 03:20:18 +01:00
Michael Brown 1ecb9acb87 Fix typo 2007-07-04 02:25:07 +01:00
Michael Brown fc5f6c9de2 Cope with builds with differing debug options within a second of each
other.
2007-07-04 02:24:24 +01:00
Michael Brown dca470cb21 Add (untested) UNDI loader C-level implementation. 2007-07-03 23:41:35 +01:00
Michael Brown 7db6b4b79c Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe 2007-07-03 23:10:16 +01:00
Michael Brown 89349d7fad Separated out initialisation functions from startup/shutdown functions. 2007-07-03 23:09:56 +01:00
Marty Connor 79238335b0 remove obsolete file: src/arch/i386/prefix/int19exit.c 2007-07-03 16:24:06 -04:00
Michael Brown a5f33ea283 Added missing line to set return status code. 2007-07-03 21:22:12 +01:00
Michael Brown 01b3dd4fc3 Line buffer API changed a while ago 2007-07-03 21:21:50 +01:00
Marty Connor ec0da04e7d Warnings purge iscsiboot.c 2007-07-03 16:20:54 -04:00
Michael Brown 1f24ba73c4 Added missing "extern" 2007-07-03 21:12:54 +01:00
Michael Brown cbd4542dc0 Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe 2007-07-03 21:09:26 +01:00
Marty Connor 6be8cdbb6f Merge branch 'master' of /pub/scm/gpxe 2007-07-03 16:02:26 -04:00
Marty Connor 9b3c4e4d79 Warnings purge: src/arch/i386, src/core/disk.c, ramdisk, autoboot 2007-07-03 16:02:15 -04:00
Michael Brown b5311c2c88 This comment is no longer relevant. 2007-07-03 20:39:47 +01:00
Michael Brown 438d1cc0b9 Should be using the generic device probe mechanism, when (if) they
eventually get updated.
2007-07-03 20:39:30 +01:00
Michael Brown fae10a7ca1 We don't actually use the reset functions anywhere, and nothing really
provides them.
2007-07-03 20:34:51 +01:00
Michael Brown 5ce5e6d846 Move pxe_netdev and set_pxe_netdev to pxe_undi.c and remove
now-obsolete pxe.c.
2007-07-03 20:21:16 +01:00
Michael Brown fd86c819ba Use a linker-table based system to automatically mark and start up
permanent processes, rather than requiring each one to have its own
initialisation function.
2007-07-03 20:09:14 +01:00
Marty Connor 4bcfe7507b Merge branch 'master' of /pub/scm/gpxe 2007-07-03 13:20:54 -04:00
Marty Connor c77704cb60 Warnings purge: src/{crypto,hci,net} 2007-07-03 13:20:22 -04:00
Michael Brown 0924cf678e Implemented (untested) PXENV_START_UNDI. 2007-07-03 18:17:14 +01:00
Michael Brown 30a442aef8 Report our interface type as "gPXE" to avoid working around Etherboot
5.4 bugs when driving ourselves via UNDI.
2007-07-03 15:57:32 +01:00
Michael Brown 2dc8ed1eb8 Work around Etherboot 5.4 bug when multiple packets are received. 2007-07-03 15:53:29 +01:00
Michael Brown ca4bd3e24e Kill off now-redundant _irq() methods. 2007-07-03 15:37:56 +01:00
Michael Brown 1ce0b4bbfb Kill off PXENV_UNDI_FORCE_INTERRUPT support; we have no reason to
suspect that we need it, and implementing it would require needlessly
complicating the net device API.
2007-07-03 15:36:29 +01:00
Michael Brown e436b993a9 Avoid double free on I/O buffer when rtl_transmit() returns failure.
Convert printf() to DBG(); printf() is not allowed in drivers.
2007-07-03 14:44:33 +01:00
Michael Brown 0958726ebb It's not just Etherboot that fails to generate TX completions. 2007-07-03 14:43:57 +01:00
Michael Brown 5b52630a9c Never attempt to route the broadcast address. 2007-07-03 13:55:45 +01:00
Michael Brown adb3dd03e5 Document TX completion bug. 2007-07-03 13:17:58 +01:00
Michael Brown 71f500ff1b Enable/disable interrupts in driver open/close. 2007-07-03 12:50:58 +01:00
Michael Brown 5f92f0bd82 Reserve space for link-layer header in pxenv_undi_transmit() when not
handed a P_UNKNOWN packet.
2007-07-03 04:05:30 +01:00
Michael Brown 290280f90e Enable/disable interrupts at open/close time. 2007-07-03 03:34:08 +01:00
Michael Brown 258afef751 Add missing call to free_iob() in pxenv_undi_isr().
Correct typo in pxenv_set_station_address().
2007-07-03 00:57:53 +01:00
Michael Brown a2a0c2eace Enable/disable interrupts on open/close. 2007-07-03 00:57:04 +01:00
Michael Brown 4968caab82 Add trivial net device statistics (TX and RX packet count), reported
via UNDI API and also by ifstat command; may be useful for debugging.
2007-07-03 00:15:53 +01:00
Michael Brown 071356d976 Ensure that pxe_netdev is set before starting up PXE NBP. 2007-07-03 00:02:26 +01:00
Michael Brown cbd956535e Place netdev_open()/netdev_close() calls in appropriate places. 2007-07-03 00:02:06 +01:00
Michael Brown 8f37a6a424 Add mechanism for providing TX completion events. 2007-07-02 23:49:00 +01:00
Marty Connor 0297a63877 Merge branch 'master' of ssh://rom.etherboot.org/pub/scm/gpxe 2007-07-02 15:36:19 -04:00
Marty Connor f04899bf6c Warnings purge 2007-07-02 15:33:34 -04:00
Marty Connor b234d4a13e Warnings purge 2007-07-02 15:29:37 -04:00
Marty Connor ef7f6e72a1 Warnings purge 2007-07-02 15:28:55 -04:00
Marty Connor bf871c4d03 Warnings purge of src/core 2007-07-02 15:26:40 -04:00
Michael Brown 332614a382 Add untested support for UNDI transmit and receive. 2007-07-02 20:05:58 +01:00
Michael Brown e42eba4af4 Use a common base-memory packet buffer for DHCP construction (as used
by PXE and NBI) and UNDI packets (as used by undinet and UNDI).
2007-07-02 18:33:41 +01:00
Michael Brown 5f17089b14 pxe_netdev now holds a reference to the network device.
Use generic fields in struct device_description rather than assuming
that the struct device * is contained within a pci_device or
isapnp_device; this assumption is broken when using the undionly
driver.

Add PXENV_UNDI_SET_STATION_ADDRESS.
2007-07-02 17:43:32 +01:00
Michael Brown e3bbfd7a75 Call shutdown() from pxenv_undi_shutdown(). Probably not totally
correct, but it's enough to get RIS working.
2007-07-02 03:12:35 +01:00
Michael Brown d7e471f654 Improve debugging 2007-07-01 22:04:19 +01:00
Michael Brown 15f8323055 Removing obsolete files. 2007-07-01 15:30:12 +01:00
Michael Brown 95cb7aaacf Support cards such as natsemi which treat the data as little-endian
(i.e. LSB transmitted first on the wire), even though SPI commands and
addresses always have to be big-endian.
2007-07-01 15:22:12 +01:00
Michael Brown 3bf5eb49d0 Can't use strncpy() to copy strings that aren't NUL-terminated to
begin with.
2007-07-01 03:22:28 +01:00
Michael Brown 31fe5b9415 Hack together far enough to support ne2k-pci. 2007-07-01 00:37:29 +01:00
Michael Brown f33bbd4112 How has the legacy wrapper been working for the past month or so...? 2007-07-01 00:36:48 +01:00
Michael Brown b743b63ae9 DUMP_GDBSYM should not be enabled by default. 2007-07-01 00:05:36 +01:00
Michael Brown d5451d210c Add ability to resolve relative symbols as well as locate absolute ones. 2007-06-30 22:59:15 +01:00
Michael Brown 8f6a4e8140 Add gdbsym.c object to help with running gdb-to-qemu 2007-06-30 22:43:31 +01:00
Michael Brown e1646b4080 Place the actual version string in .data16, rather than just the
pointer to it.
2007-06-30 21:36:54 +01:00
Michael Brown 4472e22b5e Implement the two UNDI API calls used by RIS. 2007-06-30 15:56:00 +01:00
Michael Brown d05d8edd42 Implement the "overwrite TFTP filename" Microsoft RIS bug workaround. 2007-06-30 15:13:18 +01:00
Michael Brown 8130443f9f Separate out pxe_start_nbp() from pxe_image.c into pxe_call.c
Implement PXENV_RESTART_TFTP.
2007-06-30 14:56:35 +01:00
Michael Brown acd598b4f9 Don't build option-overloaded packets; they just confuse people (ISC
DHCPD and Windows RIS in particular).
2007-06-30 01:32:53 +01:00
Michael Brown 9125070f51 I really, really screwed up the semantics of BufferSize and BufferLimit. 2007-06-29 20:16:30 +01:00
Michael Brown 40d6d3dcf4 Windows RIS now gets as far as downloading NTLDR. 2007-06-29 01:42:59 +01:00
Michael Brown d71b116f54 Fix stack on return from PXE NBP so that we can return properly. 2007-06-28 23:37:49 +01:00
Michael Brown 045fb24557 Use internal real-mode stack from non-returnable prefixes 2007-06-28 21:56:14 +01:00
Michael Brown 00473f0952 Revert "Move stack to below 0x7c00; leaving it at the default location"
This reverts commit 03ca71c38d.
2007-06-28 21:50:36 +01:00
Michael Brown c73bff7ae5 Set current working URI based on TFTP server specified by DHCP. 2007-06-28 21:22:25 +01:00
Michael Brown 03ca71c38d Move stack to below 0x7c00; leaving it at the default location
(0x7ef4) tends to really screw up anything that loads at 0x7c00...
2007-06-28 21:15:47 +01:00
Michael Brown dffdc285b3 Obsoleted by downloader.c 2007-06-28 19:28:26 +01:00
Michael Brown f13baeb330 Added missing config.[ch] lines for FTP protocol 2007-06-28 18:49:57 +01:00
Michael Brown d465ae9785 Bugfix: iobuf->data always points to the start of the allocated
portion, not to the bit we want to currently write to...
2007-06-28 18:38:50 +01:00
Michael Brown 5de837cc67 Mildly ugly hack to force correct linkage. 2007-06-28 18:06:25 +01: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 7d6e4aab6f Use monojob and dhcp_configure_netdev(). 2007-06-28 15:22:20 +01:00
Michael Brown 1ec7bb789d Add dhcp_configure_netdev() 2007-06-28 15:18:26 +01:00
Michael Brown 6209d20779 Added monojob controller in lieu of a full working shell. 2007-06-28 14:53:12 +01:00
Michael Brown cf33b568dc Forgot to set initial session state. Now works! 2007-06-28 01:55:01 +01:00
Michael Brown 73fe1ba9dd Kill off job::start() (it was only ever added as part of an aborted
attempt at triggering TCP-related protocols to start).
2007-06-28 01:09:45 +01:00
Michael Brown 07dc294de8 Update DHCP to use data-xfer interface (not yet tested). 2007-06-27 23:20:36 +01:00
Michael Brown f77815f2b1 Kill off hotplug.h and just make net devices normal reference-counted
structures.

DHCP still broken and #if 0'd out.
2007-06-27 14:48:31 +01:00
Michael Brown e381714c07 Partial migration of UDP to data-xfer interface. (Will not link at
present; DHCP is broken).
2007-06-20 01:13:35 +01:00
Michael Brown 564ac70a42 Add iob_ensure_headroom() placeholder. 2007-06-20 01:12:21 +01:00
Michael Brown 4f309ff0c7 Treat URIs opened via xfer_open() and friends as relative to the
current working URI.
2007-06-13 16:28:32 +01:00
Michael Brown 15dae1e042 Add concept of "current working URI". 2007-06-11 23:54:51 +01:00
Michael Brown 2d4c72b762 Remove unused headers. 2007-06-11 23:40:34 +01:00
Michael Brown e708137029 DNS code now records a whole struct sockaddr for the name server. 2007-06-11 23:36:50 +01:00
Michael Brown f87bc837f4 Updated DNS to use not-yet-implemented UDP data-xfer API. 2007-06-11 23:30:44 +01:00
Michael Brown a74ecf3057 Merge branch 'master' into mcb-tcp-xfer 2007-06-11 21:36:22 +01:00
Michael Brown 058b200529 Renamed _calloc() to zalloc(), ready to be used as a standalone function. 2007-06-11 21:36:10 +01:00
Michael Brown 01b4bde8a0 Updated TFTP and PXE UDP API code to use not-yet-implemented data-xfer
UDP API.
2007-06-11 18:11:29 +01:00
Michael Brown 95adce0ce1 Add concept of transfer metadata, to be used by UDP in order to
implement sendto()/recvfrom() equivalents.
2007-06-11 15:04:39 +01:00
Michael Brown 77e575235d Merge branch 'master' into mcb-tcp-xfer 2007-06-10 18:34:10 +01:00
Michael Brown 0316eaf85d Add missing call to free_iob(). 2007-06-10 18:33:42 +01:00
Michael Brown adf6c8e2a6 Add our own trivial version of stdarg.h. This makes our build
entirely self-hosted (which avoids problems when building the same
tree on multiple systems - e.g. when you have /home NFS-mounted).

Also saves around 50 bytes in total - not sure why.
2007-06-10 00:29:53 +01:00
Michael Brown 11ec23f454 Merge branch 'master' into mcb-tcp-xfer 2007-06-09 22:58:27 +01:00
Michael Brown 0f8d7d705d Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
Michael Brown 6835755350 Merge branch 'master' into mcb-tcp-xfer 2007-06-09 22:26:50 +01:00
Marty Connor f97e642d17 Update email addresses in drivers 2007-06-09 15:23:17 -04:00
Michael Brown b256900d4f Scripts temporarily deregister themselves while executing. This
allows us to avoid execution loops without having to hack around the
image registration order.
2007-06-09 19:00:34 +01:00
Michael Brown 2c569fb240 Allow xfer_open() to take a struct uri as well as a URI string. 2007-06-09 18:20:08 +01:00
Michael Brown 1ae549b892 Add our own trivial version of stdarg.h. This makes our build
entirely self-hosted (which avoids problems when building the same
tree on multiple systems - e.g. when you have /home NFS-mounted).

Also saves around 50 bytes in total - not sure why.
2007-06-09 18:11:07 +01:00
Michael Brown 7c8cc3ef6c Use standard xfer_open() argument list for downloader instantiator 2007-06-09 17:42:46 +01:00
Michael Brown 08e286714f Add reference counting to register/unregister procedure. 2007-06-09 17:32:27 +01:00
Michael Brown 53bd022235 Merge branch 'master' into mcb-tcp-xfer 2007-06-08 16:41:54 +01:00
Michael Brown 6f0a6c09db Merge branch 'master' into mcb-tcp-xfer 2007-06-08 16:33:24 +01:00
Marty Connor 8c25ea0970 Updated email mdc's email address 2007-06-08 11:23:26 -04:00
Michael Brown ff84a66c35 Conflicts with native asn1.c 2007-06-08 12:37:35 +00:00
Michael Brown b7ccdb7948 Add a couple of tests for the URI parsing and resolving code. 2007-06-03 02:15:00 +00:00
Michael Brown 6a5cc3533f Added missing va_end() 2007-06-03 02:11:25 +00:00
Michael Brown a6f0a098da Add facility for resolving base+relative URIs (and paths). 2007-06-03 02:01:02 +00:00
Michael Brown 182e3ed61d Added dirname() 2007-06-03 01:51:10 +00:00
Michael Brown 816c8f3b89 Added [v]asprintf() 2007-06-03 01:50:03 +00:00
Michael Brown 335b99a39d Move [v]ssnprintf() from iscsi.c into vsprintf.c; we need them
elsewhere as well.
2007-05-31 13:26:50 +00:00
Michael Brown 4ccd1e8198 Should call ftp_done() if constructor fails. 2007-05-29 15:37:30 +00:00
Michael Brown 735e07268e Update HTTP to use data-xfer interface. 2007-05-29 15:37:09 +00:00
Michael Brown 0dfd5b84fd Updated FTP to use data-xfer API. 2007-05-28 20:11:02 +00:00
Michael Brown a6a18ae9af Add xfer_[v]printf() functions. 2007-05-28 20:09:44 +00:00
Michael Brown 3acd51597a Add sanity check and extra debug message 2007-05-28 20:06:41 +00:00
Michael Brown 656485c1f1 Make URI structures reference-counted. 2007-05-28 17:35:15 +00:00
Michael Brown 63719deea9 Introduce name resolution interface and named socket opener. 2007-05-27 01:07:00 +00:00
Michael Brown bc694ec768 Move increment/decrement debug messages to DBG2 level 2007-05-27 01:04:52 +00:00
Michael Brown 1311b4194c Eliminate PF_INET; just use the AF_INET from the struct sockaddr instead. 2007-05-26 20:41:23 +00:00
Michael Brown a1210e4fca Eliminate PF_INET; just use the AF_INET from the struct sockaddr instead. 2007-05-26 20:41:23 +00:00
Michael Brown 070c55a838 Added EPIPE description. 2007-05-26 15:05:31 +00:00
Michael Brown b8618d76db Modify data-xfer semantics: it is no longer necessary to call one of
request(), seek() or deliver_xxx() in order to start the data flow.
Autonomous generators must be genuinely autonomous (having their own
process), or otherwise arrange to be called.  TCP does this by
starting the retry timer immediately.

Add some debugging statements.
2007-05-26 15:04:36 +00:00
Michael Brown 10d0a1f8c7 Modify data-xfer semantics: it is no longer necessary to call one of
request(), seek() or deliver_xxx() in order to start the data flow.
Autonomous generators must be genuinely autonomous (having their own
process), or otherwise arrange to be called.  TCP does this by
starting the retry timer immediately.

Add some debugging statements.
2007-05-26 15:04:36 +00:00
Michael Brown 3601103381 Modify process semantics; rescheduling is now automatic.
Add reference-counting to processes.

Add timer_running() test.
2007-05-26 15:00:56 +00:00
Michael Brown 6006bed530 Free I/O buffers when we are finished with them! 2007-05-25 16:01:31 +00:00
Michael Brown 1136c19fa4 Updated tcp.c to provide a standardised data transfer interface. 2007-05-25 15:58:42 +00:00
Michael Brown 54138f28f6 Use list_for_each_entry_safe() when flushing queue. 2007-05-19 22:05:16 +00:00
Michael Brown 5e25a89e74 Add local address to socket openers. 2007-05-19 20:14:18 +00:00
Michael Brown 776357214e Rename pkbpad.c to iobpad.c 2007-05-19 18:42:27 +00:00
Michael Brown 3e2c6b6736 pkbuff->iobuf changeover
Achieved via Perl using:

perl -pi -e 's/pk_buff/io_buffer/g; s/Packet buffer/I\/O buffer/ig; ' \
	-e 's/pkbuff\.h/iobuf.h/g; s/pkb_/iob_/g; s/_pkb/_iob/g; ' \
	-e 's/pkb/iobuf/g; s/PKB/IOB/g;'
2007-05-19 18:39:40 +00:00
Michael Brown 7c0a069f42 Add explicit "freeing" debug messages. 2007-05-18 15:42:02 +00:00
Michael Brown 7d2535779c Must request data before anything actually happens... 2007-05-18 15:36:11 +00:00
Michael Brown b63b14ff32 Add debugging 2007-05-18 15:26:44 +00:00
Michael Brown 68dd826b86 Add alloc_iob() and free_iob(). (Direct search-and-replace
equivalents for alloc_pkb() and free_pkb(), which will be retired in
due course).
2007-05-18 14:45:16 +00:00
Michael Brown 23008b9326 Updated to use POSIX-style file I/O layer. 2007-05-18 14:33:20 +00:00
Michael Brown 86a948ccbe Added POSIX-style blocking I/O calls, for use by PXE TFTP API. 2007-05-18 14:19:22 +00:00
Michael Brown 6b6fc1d5ea Allow construction of PXE status code from internal error number. 2007-05-18 14:17:35 +00:00
Michael Brown 59e738d756 Prefix all the open()-family routines with xfer_, to disambiguate them
from the normal POSIX-style open()
2007-05-18 14:16:06 +00:00
Michael Brown b1755462ab Do not hold self-references. This then avoids the problem of having to
ensure that we only drop our self-reference exactly once.

To maintain the guarantee that an object won't go out of scope
unexpectedly while one of its event handlers is being called, the
event-calling functions now automatically obtain and drop extra
references.
2007-05-15 16:53:46 +00:00
Michael Brown 5471bfbbbe Data-transfer interface should now be functionally complete. 2007-05-15 15:23:09 +00:00
Michael Brown 817a446cc6 Add always_inline attribute to force gcc to inline single-instruction
functions.
2007-05-01 10:17:29 +00:00
Michael Brown 123a98db26 Added (non-functional) reference count to struct image 2007-05-01 00:11:34 +00:00
Michael Brown 53da1f1402 Initial sketch for a downloader object 2007-05-01 00:09:19 +00:00
Michael Brown e3dcb9a1ad Add start() event
Add "xfer" to all xfer functions and "job" to all job functions.
2007-05-01 00:07:57 +00:00
Michael Brown a90a9adbd7 Clarify behaviour of plug() by using intf_put() and intf_get(). 2007-05-01 00:06:21 +00:00
Michael Brown 7ff81f6654 Document the fact that a zeroed-out refcounted object will behave in
the most generally useful way.
2007-05-01 00:04:21 +00:00
Michael Brown 31f1bf4426 D'oh 2007-04-30 01:24:52 +00:00
Michael Brown 0898b0b3b1 Added plug_plug() 2007-04-30 01:23:01 +00:00
Michael Brown d40761d725 Add (and use) generic reference counter, to improve signal:noise ratio
in code defining reference-counted objects.
2007-04-29 23:53:39 +00:00
Michael Brown 36bfb6edbb Skeleton job control interface 2007-04-29 02:08:39 +00:00
Michael Brown 280160139d Add seek()
Dehyphenate "data-transfer".
2007-04-29 02:03:58 +00:00
Michael Brown ff1222a8d3 Preliminary support for opening data-transfer interfaces 2007-04-28 20:56:24 +00:00
Michael Brown 27b3bd10c9 Added PF_INET[6] and SOCK_{STREAM,DGRAM} definitions and debug
functions.
2007-04-28 20:53:48 +00:00
Michael Brown 1c765b3988 Added deliver-as-iobuf/deliver-as-raw concepts. 2007-04-27 00:02:23 +00:00
Michael Brown 2575ddc889 Initial sketch for the generic data-transfer interface. 2007-04-26 22:44:52 +00:00
Michael Brown 95206577a7 Trivial ASN.1 decoding functions. 2007-04-21 18:53:26 +00:00
Anselm Martin Hoffmeister ed7dc02a95 hoffmeis: Preparations for syslog support (LOGSERVER in DHCP, linewise
output buffering defintions and the like)
2007-04-09 18:01:43 +00:00
Anselm Martin Hoffmeister ff5aac826a hoffmeis: Fixing situation where absence of a newdata() handler for UDP
connections might break things. Only-sending applications like syslog()
do not need a newdata() handler, so added a check if that handler exists.
2007-04-09 17:34:10 +00:00
Michael Brown 0d9b3e2dd2 Add 32-bit support.
Generate DHCP data block for images.
2007-03-22 16:18:46 +00:00
Michael Brown ff7d0af585 Provide a buffer in base memory for code to fill with generated DHCP data. 2007-03-22 16:18:07 +00:00
Michael Brown 160e66dbb9 Typo 2007-03-20 18:55:00 +00:00
Michael Brown 5578d3b2de Support 32-bit (linear) NBI images. We don't yet provide a bootp data
block, so first32.c dies immediately.
2007-03-14 00:39:12 +00:00
James Harper 80cc27cbc4 Ported bnx2 driver from Etherboot 5.4. 2007-03-13 23:03:50 +00:00
Michael Brown 37127ea90c Added .nbi as a format. 2007-03-11 00:57:26 +00:00
Michael Brown 628f6eddcc Make _load_size accurately reflect the number of bytes in the actual
image file.
2007-03-11 00:54:35 +00:00
Michael Brown 13137a4d61 t5x9 code relies on nic->ioaddr being set 2007-03-11 00:37:46 +00:00
Michael Brown 62548c9f0d Updated 3c509 to current device model 2007-03-10 22:28:22 +00:00
Michael Brown 520d9c36af Updated ISAPnP, EISA, MCA and ISA buses to current device model.
ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and
MCA (3c529) variants should build OK.

None of this code is yet tested.
2007-03-10 18:08:33 +00:00
Marty Connor 6991ea7cc5 Add gpxe-tarball target to create clean release tarballs 2007-03-02 16:28:04 +00:00
Marty Connor 969642dca6 Add warning about formats that are not working until we fix them 2007-03-02 16:25:42 +00:00
Michael Brown c63af1ea14 Remove no-longer-used variable 2007-02-19 17:31:20 +00:00
James Harper e1735d5fc2 Fix some bad pointer arithmatic in the tg3 driver that was causing the dynamic memory pool to be corrupted (or worse) 2007-02-10 00:28:41 +00:00
James Harper 1c971f1234 Fix padding problem - from Michael 2007-02-10 00:27:46 +00:00
Michael Brown af3149d18e Allow queries in GET requests 2007-02-01 21:01:47 +00:00
Michael Brown 22ed1fbaf1 Add ability to read serial number from SMBIOS 2007-02-01 20:52:12 +00:00
Michael Brown 3fd10074d8 SSL needs quite a lot of spare memory 2007-02-01 09:38:16 +00:00
Michael Brown e01aadd5a7 Required for public key extraction 2007-02-01 09:13:27 +00:00
Michael Brown abccb8b63c SSL requires inordinately large data storage 2007-02-01 07:22:13 +00:00
Michael Brown 2c67167929 Don't pass through zero-length requests 2007-02-01 07:18:56 +00:00
Michael Brown 0050378f51 SHA1_DIGEST_SIZE also available as a static constant 2007-02-01 06:36:45 +00:00
Michael Brown cc8f9e4b7f Make context sizes available for statically-allocated structures 2007-02-01 05:48:56 +00:00
Michael Brown d467552367 Vanilla copies from axtls 2007-02-01 04:20:12 +00:00