mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
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:
@@ -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
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user