Michael Brown [Thu, 28 Jun 2007 20:50:36 +0000 (21:50 +0100)]
Revert "Move stack to below 0x7c00; leaving it at the default location"
This reverts commit
03ca71c38da9cc6df01ecd9ef16e97a0edb6a4e9.
Michael Brown [Thu, 28 Jun 2007 20:22:25 +0000 (21:22 +0100)]
Set current working URI based on TFTP server specified by DHCP.
Michael Brown [Thu, 28 Jun 2007 20:16:39 +0000 (21:16 +0100)]
Current bochs has a 128kB BIOS, not 64kB
Michael Brown [Thu, 28 Jun 2007 20:15:47 +0000 (21:15 +0100)]
Move stack to below 0x7c00; leaving it at the default location
(0x7ef4) tends to really screw up anything that loads at 0x7c00...
Michael Brown [Thu, 28 Jun 2007 18:28:26 +0000 (19:28 +0100)]
Obsoleted by downloader.c
Michael Brown [Thu, 28 Jun 2007 17:49:57 +0000 (18:49 +0100)]
Added missing config.[ch] lines for FTP protocol
Michael Brown [Thu, 28 Jun 2007 17:38:50 +0000 (18:38 +0100)]
Bugfix: iobuf->data always points to the start of the allocated
portion, not to the bit we want to currently write to...
Michael Brown [Thu, 28 Jun 2007 17:06:25 +0000 (18:06 +0100)]
Mildly ugly hack to force correct linkage.
Michael Brown [Thu, 28 Jun 2007 16:57:10 +0000 (17:57 +0100)]
Removed debugging statements that should not have been checked in.
Michael Brown [Thu, 28 Jun 2007 16:55:29 +0000 (17:55 +0100)]
Quick hack to get image booting working again
Michael Brown [Thu, 28 Jun 2007 14:22:20 +0000 (15:22 +0100)]
Use monojob and dhcp_configure_netdev().
Michael Brown [Thu, 28 Jun 2007 14:18:26 +0000 (15:18 +0100)]
Add dhcp_configure_netdev()
Michael Brown [Thu, 28 Jun 2007 13:53:12 +0000 (14:53 +0100)]
Added monojob controller in lieu of a full working shell.
Michael Brown [Thu, 28 Jun 2007 00:55:01 +0000 (01:55 +0100)]
Forgot to set initial session state. Now works!
Michael Brown [Thu, 28 Jun 2007 00:09:45 +0000 (01:09 +0100)]
Kill off job::start() (it was only ever added as part of an aborted
attempt at triggering TCP-related protocols to start).
Michael Brown [Wed, 27 Jun 2007 22:20:36 +0000 (23:20 +0100)]
Update DHCP to use data-xfer interface (not yet tested).
Michael Brown [Wed, 27 Jun 2007 13:48:31 +0000 (14:48 +0100)]
Kill off hotplug.h and just make net devices normal reference-counted
structures.
DHCP still broken and #if 0'd out.
Michael Brown [Wed, 20 Jun 2007 00:13:35 +0000 (01:13 +0100)]
Partial migration of UDP to data-xfer interface. (Will not link at
present; DHCP is broken).
Michael Brown [Wed, 20 Jun 2007 00:12:21 +0000 (01:12 +0100)]
Add iob_ensure_headroom() placeholder.
Michael Brown [Wed, 13 Jun 2007 15:28:32 +0000 (16:28 +0100)]
Treat URIs opened via xfer_open() and friends as relative to the
current working URI.
Michael Brown [Mon, 11 Jun 2007 22:54:51 +0000 (23:54 +0100)]
Add concept of "current working URI".
Michael Brown [Mon, 11 Jun 2007 22:40:34 +0000 (23:40 +0100)]
Remove unused headers.
Michael Brown [Mon, 11 Jun 2007 22:36:50 +0000 (23:36 +0100)]
DNS code now records a whole struct sockaddr for the name server.
Michael Brown [Mon, 11 Jun 2007 22:30:44 +0000 (23:30 +0100)]
Updated DNS to use not-yet-implemented UDP data-xfer API.
Michael Brown [Mon, 11 Jun 2007 20:36:22 +0000 (21:36 +0100)]
Merge branch 'master' into mcb-tcp-xfer
Michael Brown [Mon, 11 Jun 2007 20:36:10 +0000 (21:36 +0100)]
Renamed _calloc() to zalloc(), ready to be used as a standalone function.
Michael Brown [Mon, 11 Jun 2007 17:11:29 +0000 (18:11 +0100)]
Updated TFTP and PXE UDP API code to use not-yet-implemented data-xfer
UDP API.
Michael Brown [Mon, 11 Jun 2007 14:04:39 +0000 (15:04 +0100)]
Add concept of transfer metadata, to be used by UDP in order to
implement sendto()/recvfrom() equivalents.
Michael Brown [Sun, 10 Jun 2007 17:34:10 +0000 (18:34 +0100)]
Merge branch 'master' into mcb-tcp-xfer
Michael Brown [Sun, 10 Jun 2007 17:33:42 +0000 (18:33 +0100)]
Add missing call to free_iob().
Michael Brown [Sat, 9 Jun 2007 23:31:31 +0000 (00:31 +0100)]
Merge branch 'master' into mcb-tcp-xfer
Michael Brown [Sat, 9 Jun 2007 17:11:07 +0000 (18:11 +0100)]
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.
Michael Brown [Sat, 9 Jun 2007 21:58:27 +0000 (22:58 +0100)]
Merge branch 'master' into mcb-tcp-xfer
Michael Brown [Sat, 9 Jun 2007 21:58:04 +0000 (22:58 +0100)]
Ignore external directories (bochs, qemu) within contrib/bochs.
Michael Brown [Sat, 9 Jun 2007 21:57:00 +0000 (22:57 +0100)]
Rename .cvsignore files to .gitignore
Michael Brown [Sat, 9 Jun 2007 21:26:50 +0000 (22:26 +0100)]
Merge branch 'master' into mcb-tcp-xfer
Marty Connor [Sat, 9 Jun 2007 19:23:17 +0000 (15:23 -0400)]
Update email addresses in drivers
Michael Brown [Sat, 9 Jun 2007 18:00:34 +0000 (19:00 +0100)]
Scripts temporarily deregister themselves while executing. This
allows us to avoid execution loops without having to hack around the
image registration order.
Michael Brown [Sat, 9 Jun 2007 17:20:08 +0000 (18:20 +0100)]
Allow xfer_open() to take a struct uri as well as a URI string.
Michael Brown [Sat, 9 Jun 2007 17:11:07 +0000 (18:11 +0100)]
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.
Michael Brown [Sat, 9 Jun 2007 16:42:46 +0000 (17:42 +0100)]
Use standard xfer_open() argument list for downloader instantiator
Michael Brown [Sat, 9 Jun 2007 16:32:27 +0000 (17:32 +0100)]
Add reference counting to register/unregister procedure.
Michael Brown [Fri, 8 Jun 2007 15:41:54 +0000 (16:41 +0100)]
Merge branch 'master' into mcb-tcp-xfer
Michael Brown [Fri, 8 Jun 2007 15:33:24 +0000 (16:33 +0100)]
Merge branch 'master' into mcb-tcp-xfer
Marty Connor [Fri, 8 Jun 2007 15:23:26 +0000 (11:23 -0400)]
Updated email mdc's email address
Michael Brown [Fri, 8 Jun 2007 12:37:35 +0000 (12:37 +0000)]
Conflicts with native asn1.c
Michael Brown [Sun, 3 Jun 2007 02:15:00 +0000 (02:15 +0000)]
Add a couple of tests for the URI parsing and resolving code.
Michael Brown [Sun, 3 Jun 2007 02:11:25 +0000 (02:11 +0000)]
Added missing va_end()
Michael Brown [Sun, 3 Jun 2007 02:01:02 +0000 (02:01 +0000)]
Add facility for resolving base+relative URIs (and paths).
Michael Brown [Sun, 3 Jun 2007 01:51:10 +0000 (01:51 +0000)]
Added dirname()
Michael Brown [Sun, 3 Jun 2007 01:50:03 +0000 (01:50 +0000)]
Added [v]asprintf()
Michael Brown [Thu, 31 May 2007 13:26:50 +0000 (13:26 +0000)]
Move [v]ssnprintf() from iscsi.c into vsprintf.c; we need them
elsewhere as well.
Michael Brown [Tue, 29 May 2007 15:37:30 +0000 (15:37 +0000)]
Should call ftp_done() if constructor fails.
Michael Brown [Tue, 29 May 2007 15:37:09 +0000 (15:37 +0000)]
Update HTTP to use data-xfer interface.
Michael Brown [Mon, 28 May 2007 20:11:02 +0000 (20:11 +0000)]
Updated FTP to use data-xfer API.
Michael Brown [Mon, 28 May 2007 20:09:44 +0000 (20:09 +0000)]
Add xfer_[v]printf() functions.
Michael Brown [Mon, 28 May 2007 20:06:41 +0000 (20:06 +0000)]
Add sanity check and extra debug message
Michael Brown [Mon, 28 May 2007 17:35:15 +0000 (17:35 +0000)]
Make URI structures reference-counted.
Michael Brown [Sun, 27 May 2007 01:07:00 +0000 (01:07 +0000)]
Introduce name resolution interface and named socket opener.
Michael Brown [Sun, 27 May 2007 01:04:52 +0000 (01:04 +0000)]
Move increment/decrement debug messages to DBG2 level
Michael Brown [Sat, 26 May 2007 20:41:23 +0000 (20:41 +0000)]
Eliminate PF_INET; just use the AF_INET from the struct sockaddr instead.
Michael Brown [Sat, 26 May 2007 20:41:23 +0000 (20:41 +0000)]
Eliminate PF_INET; just use the AF_INET from the struct sockaddr instead.
Michael Brown [Sat, 26 May 2007 15:05:31 +0000 (15:05 +0000)]
Added EPIPE description.
Michael Brown [Sat, 26 May 2007 15:04:36 +0000 (15:04 +0000)]
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.
Michael Brown [Sat, 26 May 2007 15:04:36 +0000 (15:04 +0000)]
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.
Michael Brown [Sat, 26 May 2007 15:00:56 +0000 (15:00 +0000)]
Modify process semantics; rescheduling is now automatic.
Add reference-counting to processes.
Add timer_running() test.
Michael Brown [Fri, 25 May 2007 16:01:31 +0000 (16:01 +0000)]
Free I/O buffers when we are finished with them!
Michael Brown [Fri, 25 May 2007 15:58:42 +0000 (15:58 +0000)]
Updated tcp.c to provide a standardised data transfer interface.
Michael Brown [Sat, 19 May 2007 22:05:16 +0000 (22:05 +0000)]
Use list_for_each_entry_safe() when flushing queue.
Michael Brown [Sat, 19 May 2007 20:14:18 +0000 (20:14 +0000)]
Add local address to socket openers.
Michael Brown [Sat, 19 May 2007 18:42:27 +0000 (18:42 +0000)]
Rename pkbpad.c to iobpad.c
Michael Brown [Sat, 19 May 2007 18:39:40 +0000 (18:39 +0000)]
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;'
Michael Brown [Fri, 18 May 2007 15:42:02 +0000 (15:42 +0000)]
Add explicit "freeing" debug messages.
Michael Brown [Fri, 18 May 2007 15:36:11 +0000 (15:36 +0000)]
Must request data before anything actually happens...
Michael Brown [Fri, 18 May 2007 15:26:44 +0000 (15:26 +0000)]
Add debugging
Michael Brown [Fri, 18 May 2007 14:45:16 +0000 (14:45 +0000)]
Add alloc_iob() and free_iob(). (Direct search-and-replace
equivalents for alloc_pkb() and free_pkb(), which will be retired in
due course).
Michael Brown [Fri, 18 May 2007 14:33:20 +0000 (14:33 +0000)]
Updated to use POSIX-style file I/O layer.
Michael Brown [Fri, 18 May 2007 14:19:22 +0000 (14:19 +0000)]
Added POSIX-style blocking I/O calls, for use by PXE TFTP API.
Michael Brown [Fri, 18 May 2007 14:17:35 +0000 (14:17 +0000)]
Allow construction of PXE status code from internal error number.
Michael Brown [Fri, 18 May 2007 14:16:06 +0000 (14:16 +0000)]
Prefix all the open()-family routines with xfer_, to disambiguate them
from the normal POSIX-style open()
Michael Brown [Tue, 15 May 2007 16:53:46 +0000 (16:53 +0000)]
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.
Michael Brown [Tue, 15 May 2007 15:23:09 +0000 (15:23 +0000)]
Data-transfer interface should now be functionally complete.
Michael Brown [Tue, 1 May 2007 10:17:29 +0000 (10:17 +0000)]
Add always_inline attribute to force gcc to inline single-instruction
functions.
Michael Brown [Tue, 1 May 2007 00:11:34 +0000 (00:11 +0000)]
Added (non-functional) reference count to struct image
Michael Brown [Tue, 1 May 2007 00:09:19 +0000 (00:09 +0000)]
Initial sketch for a downloader object
Michael Brown [Tue, 1 May 2007 00:07:57 +0000 (00:07 +0000)]
Add start() event
Add "xfer" to all xfer functions and "job" to all job functions.
Michael Brown [Tue, 1 May 2007 00:06:21 +0000 (00:06 +0000)]
Clarify behaviour of plug() by using intf_put() and intf_get().
Michael Brown [Tue, 1 May 2007 00:04:21 +0000 (00:04 +0000)]
Document the fact that a zeroed-out refcounted object will behave in
the most generally useful way.
Michael Brown [Mon, 30 Apr 2007 01:24:52 +0000 (01:24 +0000)]
D'oh
Michael Brown [Mon, 30 Apr 2007 01:23:01 +0000 (01:23 +0000)]
Added plug_plug()
Michael Brown [Sun, 29 Apr 2007 23:53:39 +0000 (23:53 +0000)]
Add (and use) generic reference counter, to improve signal:noise ratio
in code defining reference-counted objects.
Michael Brown [Sun, 29 Apr 2007 02:08:39 +0000 (02:08 +0000)]
Skeleton job control interface
Michael Brown [Sun, 29 Apr 2007 02:03:58 +0000 (02:03 +0000)]
Add seek()
Dehyphenate "data-transfer".
Michael Brown [Sat, 28 Apr 2007 20:56:24 +0000 (20:56 +0000)]
Preliminary support for opening data-transfer interfaces
Michael Brown [Sat, 28 Apr 2007 20:53:48 +0000 (20:53 +0000)]
Added PF_INET[6] and SOCK_{STREAM,DGRAM} definitions and debug
functions.
Michael Brown [Fri, 27 Apr 2007 00:02:23 +0000 (00:02 +0000)]
Added deliver-as-iobuf/deliver-as-raw concepts.
Michael Brown [Thu, 26 Apr 2007 22:44:52 +0000 (22:44 +0000)]
Initial sketch for the generic data-transfer interface.
Michael Brown [Sat, 21 Apr 2007 18:53:26 +0000 (18:53 +0000)]
Trivial ASN.1 decoding functions.
Anselm Martin Hoffmeister [Mon, 9 Apr 2007 18:01:43 +0000 (18:01 +0000)]
hoffmeis: Preparations for syslog support (LOGSERVER in DHCP, linewise
output buffering defintions and the like)
Anselm Martin Hoffmeister [Mon, 9 Apr 2007 17:34:10 +0000 (17:34 +0000)]
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.