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

1902 Commits

Author SHA1 Message Date
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