gem5
v20.0.0.2
|
Semihosting call information structure. More...
Public Types | |
template<typename ... Args> | |
using | Implementation = RetErrno(ArmSemihosting::*)(ThreadContext *tc, Args... args) |
using | Dispatcher = std::function< RetErrno(ArmSemihosting *sh, ThreadContext *tc)> |
using | Dumper = std::function< std::string(ThreadContext *tc)> |
Public Member Functions | |
template<typename ... Args> | |
SemiCall (const char *_name, Implementation< Args... > common) | |
template<typename ... Args32, typename ... Args64> | |
SemiCall (const char *_name, Implementation< Args32... > impl32, Implementation< Args64... > impl64) | |
Static Public Member Functions | |
template<typename ... Args> | |
static std::function< RetErrno(ThreadContext *tc, Args... args)> | wrapImpl (ArmSemihosting *sh, Implementation< Args... > impl) |
template<typename Abi , typename ... Args> | |
static Dispatcher | buildDispatcher (Implementation< Args... > impl) |
template<typename Abi , typename ... Args> | |
static Dumper | buildDumper (const char *name, Implementation< Args... > impl) |
Public Attributes | |
const char * | name |
Call name. More... | |
Dispatcher | call32 |
Dispatcher | call64 |
Dumper | dump32 |
Dumper | dump64 |
Semihosting call information structure.
This structure describes how a semi-hosting call is implemented. It contains debug information (e.g., the name of the call), and a way to invoke it in a particular context.
Definition at line 435 of file semihosting.hh.
using ArmSemihosting::SemiCall::Dispatcher = std::function<RetErrno(ArmSemihosting *sh, ThreadContext *tc)> |
Definition at line 459 of file semihosting.hh.
using ArmSemihosting::SemiCall::Dumper = std::function<std::string(ThreadContext *tc)> |
Definition at line 460 of file semihosting.hh.
using ArmSemihosting::SemiCall::Implementation = RetErrno (ArmSemihosting::*)(ThreadContext *tc, Args... args) |
Definition at line 443 of file semihosting.hh.
|
inline |
Definition at line 495 of file semihosting.hh.
|
inline |
Definition at line 504 of file semihosting.hh.
References ArmISA::aarch64, addr, ArmISA::c, ArmSemihosting::callClock(), ArmSemihosting::callClose(), ArmSemihosting::callElapsed32(), ArmSemihosting::callElapsed64(), ArmSemihosting::callErrno(), ArmSemihosting::callExit32(), ArmSemihosting::callExit64(), ArmSemihosting::callExitExtended(), ArmSemihosting::callFLen(), ArmSemihosting::callGem5PseudoOp32(), ArmSemihosting::callGem5PseudoOp64(), ArmSemihosting::callGetCmdLine(), ArmSemihosting::callHeapInfo32(), ArmSemihosting::callHeapInfo64(), ArmSemihosting::callIsError(), ArmSemihosting::callIsTTY(), ArmSemihosting::callOpen(), ArmSemihosting::callRead(), ArmSemihosting::callReadC(), ArmSemihosting::callRemove(), ArmSemihosting::callRename(), ArmSemihosting::callSeek(), ArmSemihosting::callSystem(), ArmSemihosting::callTickFreq(), ArmSemihosting::callTime(), ArmSemihosting::callTmpNam(), ArmSemihosting::callWrite(), ArmSemihosting::callWrite0(), ArmSemihosting::callWriteC(), ArmSemihosting::gatherHeapInfo(), and ArmISA::status.
|
inlinestatic |
Definition at line 473 of file semihosting.hh.
References MipsISA::impl, and ArmISA::sh.
|
inlinestatic |
Definition at line 485 of file semihosting.hh.
References dumpSimcall(), and SimObject::name().
|
inlinestatic |
Definition at line 449 of file semihosting.hh.
References MipsISA::impl, and ArmISA::sh.
Dispatcher ArmSemihosting::SemiCall::call32 |
Definition at line 463 of file semihosting.hh.
Referenced by ArmSemihosting::call32().
Dispatcher ArmSemihosting::SemiCall::call64 |
Definition at line 464 of file semihosting.hh.
Referenced by ArmSemihosting::call64().
Dumper ArmSemihosting::SemiCall::dump32 |
Definition at line 467 of file semihosting.hh.
Referenced by ArmSemihosting::call32().
Dumper ArmSemihosting::SemiCall::dump64 |
Definition at line 468 of file semihosting.hh.
Referenced by ArmSemihosting::call64().
const char* ArmSemihosting::SemiCall::name |
Call name.
Definition at line 438 of file semihosting.hh.