Fix load breakage by r828

If a loader succeeds, don't try the others.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>

git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@847 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
Blue Swirl
2010-08-09 20:41:45 +00:00
parent 1042f8af0f
commit 655510e514

View File

@@ -44,6 +44,7 @@ void load(ihandle_t dev)
{
/* Invoke the loaders on the specified device */
char *param;
ucell valid;
#ifdef CONFIG_LOADER_ELF
@@ -57,18 +58,38 @@ void load(ihandle_t dev)
param = pop_fstr_copy();
elf_load(&sys_info, dev, param, &elf_boot_notes);
feval("state-valid @");
valid = POP();
if (valid) {
return;
}
#endif
#ifdef CONFIG_LOADER_AOUT
aout_load(&sys_info, dev);
feval("state-valid @");
valid = POP();
if (valid) {
return;
}
#endif
#ifdef CONFIG_LOADER_FCODE
fcode_load(dev);
feval("state-valid @");
valid = POP();
if (valid) {
return;
}
#endif
#ifdef CONFIG_LOADER_FORTH
forth_load(dev);
feval("state-valid @");
valid = POP();
if (valid) {
return;
}
#endif
}