summaryrefslogtreecommitdiffstats
path: root/src/core/downloader.c
diff options
context:
space:
mode:
authorMichael Brown2011-03-02 20:29:24 +0100
committerMichael Brown2011-03-02 20:29:24 +0100
commit3c9c27b8e68f51ee008cdbf0a57ad3ab7483b631 (patch)
tree44bd9071244c8f1daacfa805de0bb107f97002b3 /src/core/downloader.c
parent[int13] Automatically reopen underlying block device as needed (diff)
downloadipxe-3c9c27b8e68f51ee008cdbf0a57ad3ab7483b631.tar.gz
ipxe-3c9c27b8e68f51ee008cdbf0a57ad3ab7483b631.tar.xz
ipxe-3c9c27b8e68f51ee008cdbf0a57ad3ab7483b631.zip
[image] Allow download job to complete before acting upon image
Allow the monojob controlling the download to complete before calling register_image() and friends. This allows the trailing "ok" from monojob.c to be printed before the image starts executing (and possibly printing output of its own). Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core/downloader.c')
-rw-r--r--src/core/downloader.c9
1 files changed, 0 insertions, 9 deletions
diff --git a/src/core/downloader.c b/src/core/downloader.c
index 3e21ee9a..6e107bee 100644
--- a/src/core/downloader.c
+++ b/src/core/downloader.c
@@ -50,8 +50,6 @@ struct downloader {
struct image *image;
/** Current position within image buffer */
size_t pos;
- /** Image registration routine */
- int ( * register_image ) ( struct image *image );
};
/**
@@ -75,10 +73,6 @@ static void downloader_free ( struct refcnt *refcnt ) {
*/
static void downloader_finished ( struct downloader *downloader, int rc ) {
- /* Register image if download was successful */
- if ( rc == 0 )
- rc = downloader->register_image ( downloader->image );
-
/* Shut down interfaces */
intf_shutdown ( &downloader->xfer, rc );
intf_shutdown ( &downloader->job, rc );
@@ -219,7 +213,6 @@ static struct interface_descriptor downloader_job_desc =
*
* @v job Job control interface
* @v image Image to fill with downloaded file
- * @v register_image Image registration routine
* @v type Location type to pass to xfer_open()
* @v ... Remaining arguments to pass to xfer_open()
* @ret rc Return status code
@@ -229,7 +222,6 @@ static struct interface_descriptor downloader_job_desc =
* image registration routine @c register_image() will be called.
*/
int create_downloader ( struct interface *job, struct image *image,
- int ( * register_image ) ( struct image *image ),
int type, ... ) {
struct downloader *downloader;
va_list args;
@@ -245,7 +237,6 @@ int create_downloader ( struct interface *job, struct image *image,
intf_init ( &downloader->xfer, &downloader_xfer_desc,
&downloader->refcnt );
downloader->image = image_get ( image );
- downloader->register_image = register_image;
va_start ( args, type );
/* Instantiate child objects and attach to our interfaces */