summaryrefslogtreecommitdiffstats
path: root/src/core/main.c
diff options
context:
space:
mode:
authorMichael Brown2005-04-26 19:12:07 +0200
committerMichael Brown2005-04-26 19:12:07 +0200
commitfda36a0c1a60020dd217fe5dd5f58693ed41c676 (patch)
tree408190541ef39cae95b18558797d94c23ac4b875 /src/core/main.c
parentAdd isapnp_max_csn to reduce scan time. (diff)
downloadipxe-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.c34
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;