]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[hw] Eliminate polling while waiting for window to open
authorMichael Brown <mcb30@ipxe.org>
Fri, 24 Jun 2011 15:51:31 +0000 (16:51 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 28 Jun 2011 13:45:11 +0000 (14:45 +0100)
commit3915b660fda1c670bf1d5a5def4f68cd1cfb3967
tree1d1e4abcca15d7f63cc794237f4419e7d6be8311
parent019d4c1c1895a672ced583b972b256cd978a6b9f
[hw] Eliminate polling while waiting for window to open

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>
src/core/hw.c