summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorMichael Brown2011-03-09 14:11:35 +0100
committerMichael Brown2011-03-09 14:11:35 +0100
commitd17a84a056a412f10a85985dc2c43b6fbedd0abd (patch)
treeb01b63c97beef21ee33ac541d86c600580c5a7ce /src/usr
parent[monojob] Display percentage progress, if available (diff)
downloadipxe-d17a84a056a412f10a85985dc2c43b6fbedd0abd.tar.gz
ipxe-d17a84a056a412f10a85985dc2c43b6fbedd0abd.tar.xz
ipxe-d17a84a056a412f10a85985dc2c43b6fbedd0abd.zip
[image] Move the register_and_{select|boot}_image() functions to imgmgmt.c
These functions are used only as the "action" parameters to imgdownload() or imgfetch(), and so belong in imgmgmt.c rather than image.c Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/imgmgmt.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/usr/imgmgmt.c b/src/usr/imgmgmt.c
index 6eefdfa5..f375db86 100644
--- a/src/usr/imgmgmt.c
+++ b/src/usr/imgmgmt.c
@@ -36,6 +36,45 @@ FILE_LICENCE ( GPL2_OR_LATER );
*/
/**
+ * Register and select an image
+ *
+ * @v image Executable image
+ * @ret rc Return status code
+ */
+int register_and_select_image ( struct image *image ) {
+ int rc;
+
+ if ( ( rc = register_image ( image ) ) != 0 )
+ return rc;
+
+ if ( ( rc = image_probe ( image ) ) != 0 )
+ return rc;
+
+ if ( ( rc = image_select ( image ) ) != 0 )
+ return rc;
+
+ return 0;
+}
+
+/**
+ * Register and boot an image
+ *
+ * @v image Image
+ * @ret rc Return status code
+ */
+int register_and_boot_image ( struct image *image ) {
+ int rc;
+
+ if ( ( rc = register_and_select_image ( image ) ) != 0 )
+ return rc;
+
+ if ( ( rc = image_exec ( image ) ) != 0 )
+ return rc;
+
+ return 0;
+}
+
+/**
* Download an image
*
* @v image Image