diff options
author | Michael Brown | 2012-03-24 02:16:37 +0100 |
---|---|---|
committer | Michael Brown | 2012-03-25 00:12:04 +0100 |
commit | 1c127a696215bd75917c3ba836c2db11636b3ffb (patch) | |
tree | bd883060a15bfae71aef090481f9ea67d4fb43bc /src/arch/i386/core/runtime.c | |
parent | [build] Fix compilation under Cygwin (diff) | |
download | ipxe-1c127a696215bd75917c3ba836c2db11636b3ffb.tar.gz ipxe-1c127a696215bd75917c3ba836c2db11636b3ffb.tar.xz ipxe-1c127a696215bd75917c3ba836c2db11636b3ffb.zip |
[image] Simplify image management commands and internal API
Remove the name, cmdline, and action parameters from imgdownload() and
imgdownload_string(). These functions now simply download and return
an image.
Add the function imgacquire(), which will interpret a "name or URI
string" parameter and return either an existing image or a newly
downloaded image.
Use imgacquire() to merge similar image-management commands that
currently differ only by whether they take the name of an existing
image or the URI of a new image to download. For example, "chain" and
"imgexec" can now be merged.
Extend imgstat and imgfree commands to take an optional list of
images.
Remove the arbitrary restriction on the length of image names.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386/core/runtime.c')
-rw-r--r-- | src/arch/i386/core/runtime.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/arch/i386/core/runtime.c b/src/arch/i386/core/runtime.c index 4268457f..efa501e6 100644 --- a/src/arch/i386/core/runtime.c +++ b/src/arch/i386/core/runtime.c @@ -189,14 +189,18 @@ static int initrd_init ( void ) { initrd_phys, ( initrd_phys + initrd_len ) ); /* Allocate image */ - image = alloc_image(); + image = alloc_image ( NULL ); if ( ! image ) { DBGC ( colour, "RUNTIME could not allocate image for " "initrd\n" ); rc = -ENOMEM; goto err_alloc_image; } - image_set_name ( image, "<INITRD>" ); + if ( ( rc = image_set_name ( image, "<INITRD>" ) ) != 0 ) { + DBGC ( colour, "RUNTIME could not set image name: %s\n", + strerror ( rc ) ); + goto err_set_name; + } /* Allocate and copy initrd content */ image->data = umalloc ( initrd_len ); @@ -227,6 +231,7 @@ static int initrd_init ( void ) { err_register_image: err_umalloc: + err_set_name: image_put ( image ); err_alloc_image: return rc; |