Michael Brown
3b1efba864
Add RFC2090 TFTP multicast support.
2007-11-28 10:57:26 +00:00
Michael Brown
b3abf25e3c
Allow DHCP server to instruct gPXE to ignore ProxyDHCP (which will
...
also avoid waiting for ProxyDHCP offers).
Also reduce the ProxyDHCP timeout, because it's already irritating me.
2007-11-21 22:10:04 +00:00
Michael Brown
0becbf5fba
Add ProxyDHCP support.
2007-11-21 21:51:43 +00:00
Michael Brown
b53ee1eb16
Merge commit 'origin/mdc-working'
2007-11-21 15:35:08 +00:00
Michael Brown
fb809da2df
Remove some assumptions about DHCP obtaining only a single options block.
2007-11-21 04:48:18 +00:00
Michael Brown
8d18338ae7
Add PXE-required DHCP options to DHCPDISCOVER and DHCPREQUEST packets.
2007-11-21 03:57:30 +00:00
Michael Brown
26f3a09ccf
Add UUID to DHCP request as option 97 (if available).
2007-11-21 03:29:53 +00:00
Michael Brown
899f5b8ab2
Added definition of a UUID and uuid_ntoa() (for debugging), and
...
implemented smbios_get_uuid().
2007-11-21 02:27:07 +00:00
Marty Connor
048a234dce
Add errfile definition for new e1000.c
2007-11-18 10:45:20 -05:00
Marty Connor
8bd670301c
Add ERRFILE information for e1000_main and e1000_hw, part of the new e1000 driver
...
It is likely we will rename e1000_main to e1000 when the new e1000 driver is debugged.
2007-11-18 09:51:21 -05:00
Michael Brown
44461b1854
Merge branch 'master' into 3leaf-delivery
2007-09-21 01:27:03 +01:00
Michael Brown
1e677b2024
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-09-21 01:26:06 +01:00
Michael Brown
5793dbe96f
Infinband requires longer link-layer addresses and headers than Ethernet.
2007-09-21 01:23:57 +01:00
Michael Brown
2ee76d0c93
Added defines for Infiniband files (which can't be committed to the
...
main tree yet, but reserving the error numbers now avoids problems later).
2007-09-21 01:19:04 +01:00
Michael Brown
af303db75d
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
...
to construct DHCP packets suitable for Infiniband.
2007-09-21 01:15:58 +01:00
Michael Brown
db124b1255
Add fls() for non-constant values.
2007-09-21 01:14:38 +01:00
Michael Brown
f09173326c
Moved iobuf.h assertions outside the static inline functions, so that
...
the assert message's file and line number gives some clue as to the
real location of the problem.
Added similar assertions to list.h.
2007-09-21 01:13:22 +01:00
Michael Brown
30717896f5
IB can't afford many RX buffers, because the MTU is so large. Reduce
...
the TCP window to compensate.
2007-09-18 07:02:41 +01:00
Michael Brown
2f23881856
Added arbel.c
2007-09-18 06:37:22 +01:00
Michael Brown
2c56ede6f8
Moved iobuf.h assertions outside the static inline functions, so that
...
the assert message's file and line number gives some clue as to the
real location of the problem.
Added similar assertions to list.h.
2007-09-17 18:38:04 +01:00
Michael Brown
bdac591726
Some interesting packet corruption happening now.
2007-09-17 13:31:13 +01:00
Michael Brown
2ed1acb9e9
Broadcast GID is now calculated by IPoIB layer.
2007-09-17 11:50:25 +01:00
Michael Brown
ab191e45db
Unicasts seem to be working. :)
2007-09-17 10:39:30 +01:00
Michael Brown
b3d3814c17
Obtains a response to the get path record!
2007-09-17 08:36:56 +01:00
Michael Brown
e05a8cd4de
Use pkey table access to determine broadcast GID directly.
2007-09-17 06:35:21 +01:00
Michael Brown
440e7926fb
Dead code removal
2007-09-17 05:12:47 +01:00
Michael Brown
4e78a53cf2
IPoIB code separated out to ipoib.c.
2007-09-17 05:04:58 +01:00
Michael Brown
67836430e6
Read port GID directly using MAD IFC.
2007-09-17 02:54:15 +01:00
Michael Brown
3c6a6bdc5d
Multicast join now works.
2007-09-17 00:24:44 +01:00
Michael Brown
7e85f0d296
create_qp() and destroy_qp() now written (but not tested).
2007-09-16 20:54:21 +01:00
Michael Brown
251cc84ed6
Started implementing create_qp() and destroy_qp().
2007-09-16 19:03:24 +01:00
Michael Brown
6d15a193aa
Add fls() for non-constant values.
2007-09-16 17:36:40 +01:00
Michael Brown
b21d4ca21e
Revert to dev_priv/owner_priv scheme, rather than container_of; it
...
makes it easier to put the generic allocation code into infiniband.c
2007-09-16 17:25:15 +01:00
Michael Brown
e238bb1e43
destroy_cq() now implemented (not tested).
2007-09-16 14:39:51 +01:00
Michael Brown
156b409ccc
Rearrange data structures to maximise embedding (and hence minimise
...
the number of separate allocations that need to be done).
2007-09-16 04:02:20 +01:00
Michael Brown
37fc40bc8c
post_recv() now works, and we can pass data on the IPoIB queue pair
...
using entirely our own code.
2007-09-15 23:33:25 +01:00
Michael Brown
8deef093d9
Direct polling of TX completion queue now works.
2007-09-15 20:58:29 +01:00
Michael Brown
6a791649f0
Updated MLX_* accessor macros to use implicit type information.
2007-09-15 18:44:09 +01:00
Michael Brown
a3a91fedc1
Started added poll_cq() verb.
...
Started reworking MLX_EXTRACT(), MLX_POPULATE() etc. to automatically
determine type information.
2007-09-15 15:40:35 +01:00
Michael Brown
970951666f
arbel_post_send() has been observed to transmit a packet!
2007-09-15 02:53:05 +01:00
Michael Brown
8b27da9de1
Gets a response out of the hardware. (An error completion, to be precise.)
2007-09-15 01:35:07 +01:00
Michael Brown
38a73b55c4
Now at least compiles
2007-09-15 00:19:38 +01:00
Michael Brown
9d08b7c692
Starting to introduce an Infiniband device abstraction
2007-09-14 20:29:44 +01:00
Michael Brown
08e8dfd801
Now handling TX completions in our poll loop.
2007-09-14 11:10:25 +01:00
Michael Brown
30a19c3f1c
Can now both send and receive packets. LL header format not yet
...
fixed; still using a quick hack-up just to be able to pass through
data.
2007-09-13 14:43:12 +01:00
Michael Brown
99411e36da
Added netdev_priv() to ease Linux driver compatibility.
2007-09-13 13:34:38 +01:00
Michael Brown
7e4e5af462
Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
...
to construct DHCP packets suitable for Infiniband.
2007-09-13 01:53:04 +01:00
Michael Brown
7b6d11e713
Started IB driver rewrite
2007-09-12 22:17:43 +01:00
Holger Lubitz
5d6f6fb924
Merge branch 'master' into curses
...
Conflicts:
src/include/compiler.h
src/include/readline/readline.h
created by strings branch merge. resolved.
2007-08-23 23:15:54 +02:00
Michael Brown
746d0f8feb
Merge commit 'holger/strings'
2007-08-23 21:51:57 +01:00
Holger Lubitz
8bb295e3fd
use malloc attribute
2007-08-20 20:29:58 +02:00
Holger Lubitz
6f61e254dc
use malloc attribute
2007-08-20 20:29:50 +02:00
Holger Lubitz
347ab9b8c2
use malloc attribute
2007-08-20 20:29:41 +02:00
Holger Lubitz
c4285e148d
use malloc attribute
2007-08-20 20:29:30 +02:00
Holger Lubitz
05708503e5
use malloc attribute
2007-08-20 20:29:23 +02:00
Holger Lubitz
9386263433
use malloc attribute
2007-08-20 20:29:09 +02:00
Holger Lubitz
2220e1a676
define malloc attribute
2007-08-20 20:28:11 +02:00
Holger Lubitz
2e88138b06
__nonnull changes
2007-08-20 00:35:07 +02:00
Holger Lubitz
a0fbce4656
__nonnull changes
2007-08-20 00:34:59 +02:00
Holger Lubitz
d0867b101d
__nonnull changes
2007-08-20 00:34:46 +02:00
Holger Lubitz
d2dd4b9e31
__nonnull changes
2007-08-20 00:34:39 +02:00
Holger Lubitz
e1eefee16b
__nonnull changes
2007-08-20 00:34:32 +02:00
Holger Lubitz
3859abb7de
define __nonnull
2007-08-19 22:51:17 +02:00
Holger Lubitz
e8b8991b84
define __pure and __const
2007-08-19 22:50:48 +02:00
Michael Brown
db61b0a577
Added error IDs for all files in drivers/net; they're likely to need them.
2007-08-19 00:29:27 +01:00
Michael Brown
a895fd0c15
Add barrier() primitive (was present in Eb5.4), used by some currently
...
out-of-tree driver code.
2007-08-18 18:04:50 +01:00
Michael Brown
eff8b06eff
Separate out arch-independent parts of stdint.h
2007-08-17 19:51:08 +01:00
Michael Brown
0a3c2b80ea
Add start_timer_nodelay()
2007-08-13 10:59:00 -07:00
Michael Brown
54bf2621ed
Add iBFT code derived from IBM document.
...
No Microsoft intellectual property was harmed in the production of
this code.
2007-08-09 17:44:20 -07:00
Michael Brown
950057eeed
Add PXE FILE API.
2007-08-04 01:23:37 +01:00
Michael Brown
07f84566d5
Make read_user() non-blocking, and add select() call.
2007-08-04 01:22:52 +01:00
Michael Brown
218651e125
Display name and status of each file as it is downloaded.
2007-08-03 12:49:21 +01:00
Michael Brown
49009a4c1b
uri_get(NULL) and uri_put(NULL) are explicitly allowed.
2007-08-02 20:26:49 +01:00
Michael Brown
d4947c05b2
Allow images to hold references to the originating URI.
...
Some shuffling around of the image management code; this needs tidying up.
2007-08-02 20:18:32 +01:00
Michael Brown
9fd6a0418f
Allowed zero-cost enforced ordering of features in startup banner
...
list.
Added FEATURE() macros to most relevant (non-driver) files.
2007-08-02 14:51:03 +01:00
Michael Brown
67afe84292
Use otherwise-useless byte in DHCP feature option as a version number
2007-08-02 04:36:00 +01:00
Michael Brown
0acb016840
Add FEATURE() macro, plus code to display features at startup time,
...
and generate DHCP options to indicate features to DHCP server (and to
PXE NBPs).
2007-08-02 04:24:39 +01:00
Holger Lubitz
7e1db201b9
strdup and strndup call malloc and are not pure
2007-08-02 03:04:44 +02:00
Holger Lubitz
7e8e4f8abd
declare pointers passed to string functions as nonnull
2007-08-02 01:02:06 +02:00
Holger Lubitz
e3d10ac673
define __nonnull
2007-08-02 01:01:01 +02:00
Holger Lubitz
8e3e97fcef
set __pure attribute where possible
2007-08-02 00:51:38 +02:00
Holger Lubitz
cd619a1eec
define __pure and __const
2007-08-02 00:27:54 +02:00
Michael Brown
726e366e8f
Add code for constructing single-file cpio archives on the fly
2007-08-01 23:10:30 +01:00
Michael Brown
291d69d7fd
Added support for draft version of the AoE Boot Firmware Table.
2007-07-31 14:05:03 +01:00
Michael Brown
79691961ba
Add identifier for the network device into the DHCP request.
2007-07-31 03:32:22 +01:00
Michael Brown
5e26df0325
Centralise construction of the DHCP request and response packets.
2007-07-31 03:02:21 +01:00
Michael Brown
bf3d8fb1aa
Allowed HTTPS to be a separately configurable feature.
2007-07-30 03:01:04 +01:00
Michael Brown
3b8b06ae90
Added missing #include
2007-07-30 03:00:15 +01:00
Michael Brown
6fc9ed167e
TLS now working again.
2007-07-30 02:48:38 +01:00
Michael Brown
3b9bf40682
Preparation for adding tls.c
2007-07-29 17:16:00 +01:00
Michael Brown
a6467c99a0
Added a simple pass-through filter layer for data transfer interfaces.
2007-07-29 16:05:14 +01:00
Michael Brown
218314e712
Added HMAC code from TLS project
2007-07-29 03:09:00 +01:00
Michael Brown
43013da9bf
Quick hack to get AoE back in to the tree, on a par with the current
...
iSCSI hack.
2007-07-29 02:31:14 +01:00
Michael Brown
a6a1052096
Applied a modified version of holger's regparm patches.
2007-07-29 00:17:25 +01:00
Michael Brown
e3484e26eb
Merge branch 'symcheck2'
2007-07-28 22:55:31 +01:00
Michael Brown
0d568ac219
Make has_key() a static inline, rather than omitting it altogether.
2007-07-28 22:55:17 +01:00
Michael Brown
47a86bca2d
Prepare for iBFT merge when possible. iscsiboot.c contains a really,
...
really ugly hack at present, but that doesn't hugely matter since I'm
aiming to change the interface to iSCSI devices anyway within the next
week.
2007-07-26 02:13:38 +01:00
Michael Brown
9aa61ad5a2
Add per-file error identifiers
2007-07-24 17:11:31 +01:00
Michael Brown
3f338b7b80
Include errno.h in the few drivers which use it, rather than in nic.h
2007-07-24 14:05:32 +01:00
Michael Brown
f44969f7df
nameserver should be static
2007-07-17 01:21:20 +01:00
Michael Brown
7df3d4a177
Obsolete code removal
2007-07-17 01:19:35 +01:00
Michael Brown
60ce8e884d
Added missing extern
2007-07-17 01:16:24 +01:00
Michael Brown
7e3a8f5e10
Remove more obsolete files
2007-07-14 23:16:01 +01:00
Michael Brown
25fd42ca87
Reduced etherboot.h dependencies to avoid unnecessary rebuilds.
...
etherboot.h is only now used by drivers that have not been updated to
the new API.
2007-07-14 15:52:23 +01:00
Michael Brown
e330db3c74
Dead code removal.
...
Kill off use of etherboot.h outside drivers/net.
2007-07-14 15:42:26 +01:00
Michael Brown
096fa94f0c
Add support for TCP timestamps
2007-07-13 11:32:53 +01:00
Michael Brown
9dc6a1e678
Remove some obsolete stream-API files
2007-07-09 03:53:06 +01:00
Michael Brown
487dc5be56
Fix up iscsiboot missing prototype warnings
2007-07-09 01:10:32 +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
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
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
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
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
539ff45fd0
Allow recording of TX and RX errors to aid in end-user debugging.
2007-07-05 17:18:27 +01:00
Michael Brown
bdd1a0f462
Make masking constants unsigned, to avoid a gcc3-only compiler warning.
2007-07-05 12:04:53 +01:00
Marty Connor
b219814627
Remove deprecation of pci_bar_size()
2007-07-04 18:28:37 -04:00
Michael Brown
89349d7fad
Separated out initialisation functions from startup/shutdown functions.
2007-07-03 23:09:56 +01: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
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
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
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
Marty Connor
0297a63877
Merge branch 'master' of ssh://rom.etherboot.org/pub/scm/gpxe
2007-07-02 15:36:19 -04:00
Marty Connor
ef7f6e72a1
Warnings purge
2007-07-02 15:28:55 -04:00
Michael Brown
332614a382
Add untested support for UNDI transmit and receive.
2007-07-02 20:05:58 +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
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
8f6a4e8140
Add gdbsym.c object to help with running gdb-to-qemu
2007-06-30 22:43:31 +01:00
Michael Brown
4472e22b5e
Implement the two UNDI API calls used by RIS.
2007-06-30 15:56:00 +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
dffdc285b3
Obsoleted by downloader.c
2007-06-28 19:28:26 +01:00
Michael Brown
5de837cc67
Mildly ugly hack to force correct linkage.
2007-06-28 18:06:25 +01:00
Michael Brown
4b08f4cf0f
Quick hack to get image booting working again
2007-06-28 17:55:29 +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
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
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
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
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
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
7c8cc3ef6c
Use standard xfer_open() argument list for downloader instantiator
2007-06-09 17:42:46 +01:00
Michael Brown
6f0a6c09db
Merge branch 'master' into mcb-tcp-xfer
2007-06-08 16:33:24 +01: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
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
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
a1210e4fca
Eliminate PF_INET; just use the AF_INET from the struct sockaddr instead.
2007-05-26 20:41:23 +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
1136c19fa4
Updated tcp.c to provide a standardised data transfer interface.
2007-05-25 15:58:42 +00:00
Michael Brown
5e25a89e74
Add local address to socket openers.
2007-05-19 20:14:18 +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
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
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
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