/* tag: openbios boot command for x86 * * Copyright (C) 2003-2004 Stefan Reinauer * * See the file "COPYING" for further information about * the copyright and warranty status of this work. */ #undef BOOTSTRAP #include "openbios/config.h" #include "libopenbios/bindings.h" #include "libopenbios/elfload.h" #include "openbios/nvram.h" #include "libc/diskio.h" #include "libopenbios/sys_info.h" #include "boot.h" struct sys_info sys_info; void boot(void) { char *path=pop_fstr_copy(), *param; if(!path) { printk("[x86] Booting default not supported.\n"); return; } param = strchr(path, ' '); if(param) { *param = '\0'; param++; } printk("[x86] Booting file '%s' with parameters '%s'\n",path, param); if (elf_load(&sys_info, path, param) != LOADER_NOT_SUPPORT) goto loaded; if (linux_load(&sys_info, path, param) != LOADER_NOT_SUPPORT) goto loaded; if (forth_load(&sys_info, path, param) != LOADER_NOT_SUPPORT) goto loaded; printk("Unsupported image format\n"); loaded: free(path); }