NeKernel dev
Loading...
Searching...
No Matches
Kernel::PEFLoader Class Reference

#include <PEFCodeMgr.h>

Inheritance diagram for Kernel::PEFLoader:
Kernel::ILoader

Public Member Functions

 PEFLoader (const VoidPtr blob)
 PEF loader constructor w/ blob.
 PEFLoader (const Char *path)
 PEF loader constructor.
 ~PEFLoader () override
 PEF destructor.
const CharPath () override
const CharAsString () override
const CharMIME () override
ErrorOr< VoidPtrFindStart () override
 Finds the executable entrypoint.
ErrorOr< VoidPtrFindSymbol (const Char *name, Int32 kind) override
 Finds the symbol according to it's name.
ErrorOr< VoidPtrGetBlob () override
bool IsLoaded ()
 Tells if the executable is loaded or not.
Public Member Functions inherited from Kernel::ILoader
 ILoader ()=default
virtual ~ILoader ()=default
virtual _Output ErrorOr< VoidPtrFindSymbol (_Input const Char *name, _Input Int32 kind)=0

Private Member Functions

 PEFLoader ()=delete

Private Attributes

OwnPtr< FileStream< Char > > fFile
Ref< KStringfPath
VoidPtr fCachedBlob
BOOL fFatBinary {}
BOOL fBad {}

Constructor & Destructor Documentation

◆ PEFLoader() [1/3]

Kernel::PEFLoader::PEFLoader ( )
explicitprivatedelete

◆ PEFLoader() [2/3]

Kernel::PEFLoader::PEFLoader ( const VoidPtr blob)
explicit

PEF loader constructor w/ blob.

Parameters
blobfile blob.

This is a fat binary. Treat it as such.

◆ PEFLoader() [3/3]

Kernel::PEFLoader::PEFLoader ( const Char * path)
explicit

PEF loader constructor.

Parameters
paththe filesystem path.
Note
zero here means that the FileMgr will read every container header inside the file.

This is a fat binary, treat it as such.

◆ ~PEFLoader()

Kernel::PEFLoader::~PEFLoader ( )
override

PEF destructor.

Member Function Documentation

◆ AsString()

const Char * Kernel::PEFLoader::AsString ( )
overridevirtual

Implements Kernel::ILoader.

◆ FindStart()

ErrorOr< VoidPtr > Kernel::PEFLoader::FindStart ( )
overridevirtual

Finds the executable entrypoint.

Returns

Implements Kernel::ILoader.

◆ FindSymbol()

ErrorOr< VoidPtr > Kernel::PEFLoader::FindSymbol ( const Char * name,
Int32 kind )
override

Finds the symbol according to it's name.

Parameters
namename of symbol.
kindkind of symbol we want.

fat binary check.

We set the VMAddress to nullptr, if the mapping fail here.

◆ GetBlob()

ErrorOr< VoidPtr > Kernel::PEFLoader::GetBlob ( )
overridevirtual

Implements Kernel::ILoader.

◆ IsLoaded()

bool Kernel::PEFLoader::IsLoaded ( )

Tells if the executable is loaded or not.

Returns
Whether it's not bad and is cached.

◆ MIME()

const Char * Kernel::PEFLoader::MIME ( )
overridevirtual

Implements Kernel::ILoader.

◆ Path()

const Char * Kernel::PEFLoader::Path ( )
overridevirtual

Implements Kernel::ILoader.

Member Data Documentation

◆ fBad

BOOL Kernel::PEFLoader::fBad {}
private

◆ fCachedBlob

VoidPtr Kernel::PEFLoader::fCachedBlob
private

◆ fFatBinary

BOOL Kernel::PEFLoader::fFatBinary {}
private

◆ fFile

OwnPtr<FileStream<Char> > Kernel::PEFLoader::fFile
private

◆ fPath

Ref<KString> Kernel::PEFLoader::fPath
private

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