Call chainloader, for the moment EMILE is only able to chaiload itself...

This commit is contained in:
Laurent Vivier 2007-11-03 21:04:09 +00:00
parent 3f4a3c5000
commit 6bd242d7ce

View File

@ -50,11 +50,12 @@ extern u_int32_t _bootstrap_end;
#endif #endif
#endif #endif
typedef void (*loader_t)(void);
int start(emile_l2_header_t* info) int start(emile_l2_header_t* info)
{ {
char *kernel; char *kernel;
char *loader; loader_t loader;
#ifdef ARCH_M68K #ifdef ARCH_M68K
entry_t entry; entry_t entry;
unsigned long physImage; unsigned long physImage;
@ -100,7 +101,10 @@ retry:
error("cannot read configuration\n"); error("cannot read configuration\n");
if (econfig.chainloader) if (econfig.chainloader)
{ {
loader = load_chainloader(econfig.chainloader); loader = (loader_t)load_chainloader(econfig.chainloader);
if (loader == NULL)
goto retry;
loader();
} }
#ifdef ARCH_M68K #ifdef ARCH_M68K