FileLoader_ELF Class Reference

Back to the index.

Public Member Functions | Static Public Member Functions | List of all members
FileLoader_ELF Class Reference

ELF binary loader. More...

#include <FileLoader_ELF.h>

Inheritance diagram for FileLoader_ELF:
UnitTestable FileLoaderImpl ReferenceCountable

Public Member Functions

 FileLoader_ELF (const string &filename)
 
 ~FileLoader_ELF ()
 
string DetectFileType (unsigned char *buf, size_t buflen, float &matchness) const
 Attempt to detect file type. More...
 
bool LoadIntoComponent (refcount_ptr< Component > component, ostream &messages) const
 Loads the file into a Component. More...
 
- Public Member Functions inherited from FileLoaderImpl
 FileLoaderImpl (const string &filename)
 Constructs a file loader. More...
 
virtual ~FileLoaderImpl ()
 
- Public Member Functions inherited from ReferenceCountable
 ReferenceCountable ()
 Default constructor, which initializes the reference count to zero. More...
 
 ~ReferenceCountable ()
 

Static Public Member Functions

static void RunUnitTests (int &nSucceeded, int &nFailures)
 
- Static Public Member Functions inherited from UnitTestable
static void RunUnitTests (int &nSucceeded, int &nFailures)
 Runs unit test cases. More...
 

Additional Inherited Members

- Protected Member Functions inherited from FileLoaderImpl
const string & Filename () const
 

Detailed Description

ELF binary loader.

TODO: Longer comment.

Definition at line 43 of file FileLoader_ELF.h.

Constructor & Destructor Documentation

◆ FileLoader_ELF()

FileLoader_ELF::FileLoader_ELF ( const string &  filename)

Definition at line 111 of file FileLoader_ELF.cc.

◆ ~FileLoader_ELF()

FileLoader_ELF::~FileLoader_ELF ( )
inline

Definition at line 50 of file FileLoader_ELF.h.

Member Function Documentation

◆ DetectFileType()

string FileLoader_ELF::DetectFileType ( unsigned char *  buf,
size_t  buflen,
float &  matchness 
) const
virtual

Attempt to detect file type.

Parameters
bufA buffer containing the header of the file.
buflenThe length of the buffer.
matchnessSet to a value between 0.0 and 1.0, indicating the match certainty.
Returns
A file type description, if there was a match; otherwise an empty string.

Implements FileLoaderImpl.

Definition at line 117 of file FileLoader_ELF.cc.

References Elf32_Ehdr::e_ident, EI_CLASS, EI_MAG0, EI_MAG1, EI_MAG2, EI_MAG3, ELFCLASS32, ELFCLASS64, ELFMAG0, ELFMAG1, ELFMAG2, and ELFMAG3.

◆ LoadIntoComponent()

bool FileLoader_ELF::LoadIntoComponent ( refcount_ptr< Component component,
ostream &  messages 
) const
virtual

Loads the file into a Component.

Parameters
componentThe AddressDataBus component to load the file into. (This is usually a CPUComponent.)
messagesAn output stream where debug messages can be put.
Returns
True if loading succeeded, false otherwise.

Implements FileLoaderImpl.

Definition at line 148 of file FileLoader_ELF.cc.

References Component::AsAddressDataBus(), Elf32_Ehdr::e_ident, EI_CLASS, EI_DATA, EI_MAG0, EI_MAG1, EI_MAG2, EI_MAG3, EI_VERSION, ELF_HEADER_VAR, ELFCLASS32, ELFCLASS64, ELFDATA2LSB, ELFDATA2MSB, ELFMAG0, ELFMAG1, ELFMAG2, ELFMAG3, ET_EXEC, EV_CURRENT, FileLoaderImpl::Filename(), and N_ELF_MACHINE_TYPES.

◆ RunUnitTests()

static void FileLoader_ELF::RunUnitTests ( int &  nSucceeded,
int &  nFailures 
)
static

The documentation for this class was generated from the following files:

Generated on Tue Aug 25 2020 19:25:06 for GXemul by doxygen 1.8.18