summaryrefslogtreecommitdiffstats
path: root/src/core/hw.c
Commit message (Collapse)AuthorAgeFilesLines
* [hw] Eliminate polling while waiting for window to openMichael Brown2011-06-281-1/+2
| | | | | | | | | | | | | | | Polling for the data-transfer window to become open is wasteful. We can eliminate the polling loop by using hw_step() as the handler for an xfer_window_changed() event. If the window is already open at the time of instantiation, then xfer_window_changed() may never be called. We can cover this case by using hw_step() as the step() method of a one-shot process. Since the signature for an xfer_window_changed() method is identical to the signature for a process step() method, the same function can be used for both. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [process] Pass containing object pointer to process step() methodsMichael Brown2011-06-281-10/+12
| | | | | | | | | Give the step() method a pointer to the containing object, rather than a pointer to the process. This is consistent with the operation of interface methods, and allows a single function to serve as both an interface method and a process step() method. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [interface] Convert all data-xfer interfaces to generic interfacesMichael Brown2010-06-221-19/+10Star
| | | | | | | | | | | | | | Remove data-xfer as an interface type, and replace data-xfer interfaces with generic interfaces supporting the data-xfer methods. Filter interfaces (as used by the TLS layer) are handled using the generic pass-through interface capability. A side-effect of this is that deliver_raw() no longer exists as a data-xfer method. (In practice this doesn't lose any efficiency, since there are no instances within the current codebase where xfer_deliver_raw() is used to pass data to an interface supporting the deliver_raw() method.) Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [refcnt] Add ref_init() wrapper functionMichael Brown2010-06-221-0/+1
| | | | | | | Standardise on using ref_init() to initialise an embedded reference count, to match the coding style used by other embedded objects. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Rename gPXE to iPXEMichael Brown2010-04-201-4/+4
| | | | | | | | | | | Access to the gpxe.org and etherboot.org domains and associated resources has been revoked by the registrant of the domain. Work around this problem by renaming project from gPXE to iPXE, and updating URLs to match. Also update README, LOG and COPYRIGHTS to remove obsolete information. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* Make seek information part of the xfer metadata, rather than an entirelyMichael Brown2008-01-081-1/+1
| | | | | | | separate xfer method. Add missing .alloc_iob entries to several xfer_interface_operations structures.
* Separate the "is data ready" function of xfer_seek() into anMichael Brown2007-07-081-1/+2
| | | | | xfer_window() function, which can return a scalar rather than a boolean.
* Kill off unused request() method in data-xfer interface.Michael Brown2007-07-081-1/+0Star
|
* convert to zallocHolger Lubitz2007-07-061-2/+1Star
|
* Modify data-xfer semantics: it is no longer necessary to call one ofMichael Brown2007-05-261-12/+15
| | | | | | | | | 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.
* Prefix all the open()-family routines with xfer_, to disambiguate themMichael Brown2007-05-181-3/+4
| | | | from the normal POSIX-style open()
* Do not hold self-references. This then avoids the problem of having toMichael Brown2007-05-151-6/+9
| | | | | | | | | 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.
* Data-transfer interface should now be functionally complete.Michael Brown2007-05-151-0/+68