-FsWorkload::FsWorkload(Params *p) : OsKernel(*p)
-{
- resetSymtab = new SymbolTable;
- hypervisorSymtab = new SymbolTable;
- openbootSymtab = new SymbolTable;
- nvramSymtab = new SymbolTable;
- hypervisorDescSymtab = new SymbolTable;
- partitionDescSymtab = new SymbolTable;
-
- reset = loadFirmwareImage(params()->reset_bin, "reset binary");
- openboot = loadFirmwareImage(params()->openboot_bin, "openboot binary");
- hypervisor = loadFirmwareImage(
- params()->hypervisor_bin, "hypervisor binary");
- nvram = loadFirmwareImage(params()->nvram_bin, "nvram image");
- hypervisor_desc = loadFirmwareImage(
- params()->hypervisor_desc_bin, "hypervisor description image");
- partition_desc = loadFirmwareImage(
- params()->partition_desc_bin, "partition description image");
-
- // load symbols
- panic_if(!reset->loadGlobalSymbols(resetSymtab),
- "could not load reset symbols");
-
- panic_if(!openboot->loadGlobalSymbols(openbootSymtab),
- "could not load openboot symbols");
-
- panic_if(!hypervisor->loadLocalSymbols(hypervisorSymtab),
- "could not load hypervisor symbols");
-
- panic_if(!nvram->loadLocalSymbols(nvramSymtab),
- "could not load nvram symbols");
-
- panic_if(!hypervisor_desc->loadLocalSymbols(hypervisorDescSymtab),
- "could not load hypervisor description symbols");
-
- panic_if(!partition_desc->loadLocalSymbols(partitionDescSymtab),
- "could not load partition description symbols");
-
- // load symbols into debug table
- panic_if(!reset->loadGlobalSymbols(debugSymbolTable),
- "could not load reset symbols");
-
- panic_if(!openboot->loadGlobalSymbols(debugSymbolTable),
- "could not load openboot symbols");
-
- panic_if(!hypervisor->loadLocalSymbols(debugSymbolTable),
- "could not load hypervisor symbols");
-
- // Strip off the rom address so when the hypervisor is copied into memory
- // we have symbols still
- panic_if(!hypervisor->loadLocalSymbols(debugSymbolTable, 0, 0, 0xFFFFFF),
- "could not load hypervisor symbols");
-
- panic_if(!nvram->loadGlobalSymbols(debugSymbolTable),
- "could not load reset symbols");
-
- panic_if(!hypervisor_desc->loadGlobalSymbols(debugSymbolTable),
- "could not load hypervisor description symbols");
-
- panic_if(!partition_desc->loadLocalSymbols(debugSymbolTable),
- "could not load partition description symbols");
-
-}
-