diff options
author | Michael Brown | 2007-01-12 08:32:46 +0100 |
---|---|---|
committer | Michael Brown | 2007-01-12 08:32:46 +0100 |
commit | 2876197306df09f003024784feb197d7ef14b0f8 (patch) | |
tree | c2e1aad526a44e59d6cf35be6535c23b07ebb74e /src/hci/commands/image_cmd.c | |
parent | Cleaner separation between imgXXX() functions and image_cmd.c (diff) | |
download | ipxe-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.c | 27 |
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 = { { |