diff options
author | Michael Brown | 2005-04-26 19:12:07 +0200 |
---|---|---|
committer | Michael Brown | 2005-04-26 19:12:07 +0200 |
commit | fda36a0c1a60020dd217fe5dd5f58693ed41c676 (patch) | |
tree | 408190541ef39cae95b18558797d94c23ac4b875 /src/core/main.c | |
parent | Add isapnp_max_csn to reduce scan time. (diff) | |
download | ipxe-fda36a0c1a60020dd217fe5dd5f58693ed41c676.tar.gz ipxe-fda36a0c1a60020dd217fe5dd5f58693ed41c676.tar.xz ipxe-fda36a0c1a60020dd217fe5dd5f58693ed41c676.zip |
Added back in the actual call to load().
Diffstat (limited to 'src/core/main.c')
-rw-r--r-- | src/core/main.c | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/src/core/main.c b/src/core/main.c index 0417cc37..382185d0 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -187,24 +187,36 @@ int main ( void ) { /* Skip this device the next time we encounter it */ skip = 1; - /* Print out what we're doing */ - printf ( "Booting from %s %s at %s " - "using the %s driver\n", + /* Print out device information */ + printf ( "%s (%s) %s at %s\n", dev.bus_driver->name_device ( &dev.bus_dev ), + dev.device_driver->name, dev.type_driver->name, - dev.bus_driver->describe_device ( &dev.bus_dev ), - dev.device_driver->name ); + dev.bus_driver->describe_device ( &dev.bus_dev ) ); /* Probe boot device */ if ( ! probe ( &dev ) ) { /* Device found on bus, but probe failed */ - printf ( "...probe failed on %s\n" ); + printf ( "...probe failed\n" ); continue; } - - printf ( "%s: %s\n", + + /* Print out device information */ + printf ( "%s %s has %s\n", dev.bus_driver->name_device ( &dev.bus_dev ), + dev.type_driver->name, dev.type_driver->describe_device ( dev.type_dev ) ); + + /* Configure boot device */ + if ( ! configure ( &dev ) ) { + /* Configuration (e.g. DHCP) failed */ + printf ( "...configuration failed\n" ); + continue; + } + + /* Boot from the device */ + load ( &dev, load_block ); + } /* Call registered per-object exit functions */ @@ -391,8 +403,10 @@ static const struct proto protos[] = { #endif }; -int loadkernel(const char *fname) -{ +int loadkernel ( const char *fname, + int ( * load_block ) ( unsigned char *data, + unsigned int blocknum, + unsigned int len, int eof ) ) { static const struct proto * const last_proto = &protos[sizeof(protos)/sizeof(protos[0])]; const struct proto *proto; |