diff options
| author | Michael Brown | 2011-03-07 18:10:24 +0100 |
|---|---|---|
| committer | Michael Brown | 2011-03-07 20:53:58 +0100 |
| commit | 7752541bb7c1c338c2390cf6e4f0c035a13515d9 (patch) | |
| tree | f10088c14821d62141867a5c415923755561fa65 /src | |
| parent | [script] Add "prompt" command (diff) | |
| download | ipxe-7752541bb7c1c338c2390cf6e4f0c035a13515d9.tar.gz ipxe-7752541bb7c1c338c2390cf6e4f0c035a13515d9.tar.xz ipxe-7752541bb7c1c338c2390cf6e4f0c035a13515d9.zip | |
[image] Use list_first_entry() to clarify logic in main()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/main.c | 7 | ||||
| -rw-r--r-- | src/include/ipxe/image.h | 9 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/core/main.c b/src/core/main.c index 35f31c2c1..7d411d6a5 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -88,11 +88,8 @@ __asmcall int main ( void ) { * booting fails for any reason, offer a second chance * to enter the shell for diagnostics. */ - if ( have_images() ) { - for_each_image ( image ) { - image_exec ( image ); - break; - } + if ( ( image = first_image() ) != NULL ) { + image_exec ( image ); } else { autoboot(); } diff --git a/src/include/ipxe/image.h b/src/include/ipxe/image.h index 2865ea057..96466ee40 100644 --- a/src/include/ipxe/image.h +++ b/src/include/ipxe/image.h @@ -124,6 +124,15 @@ static inline int have_images ( void ) { return ( ! list_empty ( &images ) ); } +/** + * Retrieve first image + * + * @ret image Image, or NULL + */ +static inline struct image * first_image ( void ) { + return list_first_entry ( &images, struct image, list ); +} + extern struct image * alloc_image ( void ); extern void image_set_uri ( struct image *image, struct uri *uri ); extern int image_set_cmdline ( struct image *image, const char *cmdline ); |
