gem5 v24.0.0.0
|
Classes | |
class | DtbFile |
class | ElfObject |
class | ElfObjectFormat |
class | ImageFile |
class | ImageFileData |
class | MemoryImage |
class | ObjectFile |
class | ObjectFileFormat |
class | RawImage |
class | Symbol |
class | SymbolTable |
Typedefs | |
typedef std::shared_ptr< ImageFileData > | ImageFileDataPtr |
Enumerations | |
enum | Arch { UnknownArch , SPARC64 , SPARC32 , Mips , X86_64 , I386 , Arm64 , Arm , Thumb , Power , Power64 , Riscv64 , Riscv32 } |
enum | OpSys { UnknownOpSys , Tru64 , Linux , Solaris , LinuxArmOABI , LinuxPower64ABIv1 , LinuxPower64ABIv2 , FreeBSD } |
Functions | |
void | setInterpDir (const std::string &dirname) |
This is the interface for setting up a base path for the elf interpreter. | |
static bool | hasGzipMagic (int fd) |
static int | doGzipLoad (int fd) |
static std::ostream & | operator<< (std::ostream &os, const MemoryImage::Segment &seg) |
const char * | archToString (Arch arch) |
const char * | opSysToString (OpSys op_sys) |
ObjectFile * | createObjectFile (const std::string &fname, bool raw) |
bool | archIs64Bit (const Arch arch) |
Determine whether the loader::Arch is 64-bit or 32-bit. | |
Variables | |
SymbolTable | debugSymbolTable |
Global unified debugging symbol table (for target). | |
typedef std::shared_ptr<ImageFileData> gem5::loader::ImageFileDataPtr |
Definition at line 60 of file image_file_data.hh.
enum gem5::loader::Arch |
Enumerator | |
---|---|
UnknownArch | |
SPARC64 | |
SPARC32 | |
Mips | |
X86_64 | |
I386 | |
Arm64 | |
Arm | |
Thumb | |
Power | |
Power64 | |
Riscv64 | |
Riscv32 |
Definition at line 61 of file object_file.hh.
enum gem5::loader::OpSys |
Enumerator | |
---|---|
UnknownOpSys | |
Tru64 | |
Linux | |
Solaris | |
LinuxArmOABI | |
LinuxPower64ABIv1 | |
LinuxPower64ABIv2 | |
FreeBSD |
Definition at line 80 of file object_file.hh.
bool gem5::loader::archIs64Bit | ( | const loader::Arch | arch | ) |
Determine whether the loader::Arch is 64-bit or 32-bit.
Definition at line 151 of file object_file.cc.
const char * gem5::loader::archToString | ( | Arch | arch | ) |
ObjectFile * gem5::loader::createObjectFile | ( | const std::string & | fname, |
bool | raw ) |
Definition at line 134 of file object_file.cc.
References gem5::ArmISA::format.
Referenced by gem5::loader::ElfObject::ElfObject(), gem5::ArmISA::FsWorkload::FsWorkload(), gem5::memory::AbstractMemory::initState(), gem5::KernelWorkload::KernelWorkload(), gem5::RiscvISA::BootloaderKernelWorkload::loadBootloaderSymbolTable(), gem5::RiscvISA::BootloaderKernelWorkload::loadKernelSymbolTable(), and gem5::mmapFunc().
|
static |
Definition at line 58 of file image_file_data.cc.
References gem5::ArmISA::fd, gem5::MipsISA::p, gem5::MipsISA::r, and warn.
Referenced by gem5::loader::ImageFileData::ImageFileData().
|
static |
Definition at line 49 of file image_file_data.cc.
References gem5::ArmISA::fd, and panic_if.
Referenced by gem5::loader::ImageFileData::ImageFileData().
|
inlinestatic |
Definition at line 165 of file memory_image.hh.
References gem5::ccprintf(), gem5::X86ISA::os, and gem5::X86ISA::seg.
const char * gem5::loader::opSysToString | ( | OpSys | op_sys | ) |
Definition at line 92 of file object_file.cc.
References FreeBSD, Linux, LinuxArmOABI, LinuxPower64ABIv1, LinuxPower64ABIv2, panic, Solaris, Tru64, and UnknownOpSys.
void gem5::loader::setInterpDir | ( | const std::string & | dirname | ) |
This is the interface for setting up a base path for the elf interpreter.
This is needed when loading a cross-compiled (guest ISA != host ISA) dynamically linked application.
dirname | base path for the interpreter |
Definition at line 102 of file elf_object.cc.
References fatal_if.
Referenced by gem5::init_loader().
SymbolTable gem5::loader::debugSymbolTable |
Global unified debugging symbol table (for target).
Conceptually there should be one of these per System object for full system, and per Process object for non-full-system, but so far one big global one has worked well enough.
Definition at line 55 of file symtab.cc.
Referenced by gem5::pseudo_inst::addsymbol(), gem5::RiscvISA::BareMetal::BareMetal(), gem5::ArmISA::FsWorkload::FsWorkload(), gem5::ArmISA::FsFreebsd::initState(), gem5::ArmISA::FsLinux::initState(), gem5::memory::AbstractMemory::initState(), gem5::PowerProcess::initState(), gem5::X86ISA::PageFault::invoke(), gem5::KernelWorkload::KernelWorkload(), gem5::RiscvISA::BootloaderKernelWorkload::loadBootloaderSymbolTable(), gem5::RiscvISA::BootloaderKernelWorkload::loadKernelSymbolTable(), gem5::mmapFunc(), gem5::Process::Process(), gem5::BaseCPU::traceFunctionsInternal(), and gem5::trace::ExeTracerRecord::traceInst().