summaryrefslogtreecommitdiffstats
path: root/src/hci/commands/image_cmd.c
diff options
context:
space:
mode:
authorMichael Brown2007-01-12 08:32:46 +0100
committerMichael Brown2007-01-12 08:32:46 +0100
commit2876197306df09f003024784feb197d7ef14b0f8 (patch)
treec2e1aad526a44e59d6cf35be6535c23b07ebb74e /src/hci/commands/image_cmd.c
parentCleaner separation between imgXXX() functions and image_cmd.c (diff)
downloadipxe-2876197306df09f003024784feb197d7ef14b0f8.tar.gz
ipxe-2876197306df09f003024784feb197d7ef14b0f8.tar.xz
ipxe-2876197306df09f003024784feb197d7ef14b0f8.zip
Allow "imgexec" with no arguments to boot the file that was loaded with
"kernel".
Diffstat (limited to 'src/hci/commands/image_cmd.c')
-rw-r--r--src/hci/commands/image_cmd.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/hci/commands/image_cmd.c b/src/hci/commands/image_cmd.c
index 0dc16557..8055f686 100644
--- a/src/hci/commands/image_cmd.c
+++ b/src/hci/commands/image_cmd.c
@@ -304,7 +304,7 @@ static int imgexec_exec ( int argc, char **argv ) {
{ NULL, 0, NULL, 0 },
};
struct image *image;
- const char *name;
+ const char *name = NULL;
int c;
int rc;
@@ -320,19 +320,29 @@ static int imgexec_exec ( int argc, char **argv ) {
}
}
- /* Need exactly one image name */
- if ( optind != ( argc - 1 ) ) {
+ /* Need no more than one image name */
+ if ( optind != argc )
+ name = argv[optind++];
+ if ( optind != argc ) {
imgexec_syntax ( argv );
return 1;
}
- name = argv[optind];
/* Execute specified image */
- image = find_image ( name );
- if ( ! image ) {
- printf ( "No such image: %s\n", name );
- return 1;
+ if ( name ) {
+ image = find_image ( name );
+ if ( ! image ) {
+ printf ( "No such image: %s\n", name );
+ return 1;
+ }
+ } else {
+ image = imgautoselect();
+ if ( ! image ) {
+ printf ( "No loaded images\n" );
+ return 1;
+ }
}
+
if ( ( rc = imgexec ( image ) ) != 0 ) {
printf ( "Could not execute %s: %s\n", name, strerror ( rc ) );
return 1;
@@ -448,7 +458,6 @@ static int imgfree_exec ( int argc, char **argv ) {
return 0;
}
-
/** Image management commands */
struct command image_commands[] __command = {
{