gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::SyscallDescABI< ABI > Class Template Reference

#include <syscall_desc.hh>

Inheritance diagram for gem5::SyscallDescABI< ABI >:
gem5::SyscallDesc

Public Member Functions

template<typename ... Args>
 SyscallDescABI (int num, const char *name, ABIExecutor< Args... > target)
 
template<typename ... Args>
 SyscallDescABI (int num, const char *name, ABIExecutorPtr< Args... > target)
 
 SyscallDescABI (int num, const char *name)
 
void returnInto (ThreadContext *tc, const SyscallReturn &ret) override
 For use within the system call executor if new threads are created and need something returned into them.
 
- Public Member Functions inherited from gem5::SyscallDesc
void doSyscall (ThreadContext *tc)
 Interface for invoking the system call funcion pointer.
 
std::string name () const
 
int num () const
 

Private Types

template<typename ... Args>
using ABIExecutor
 
template<typename ... Args>
using ABIExecutorPtr
 

Static Private Member Functions

template<typename ... Args>
static Executor buildExecutor (ABIExecutor< Args... > target)
 
template<typename ... Args>
static Dumper buildDumper ()
 

Additional Inherited Members

- Protected Types inherited from gem5::SyscallDesc
using Executor
 
using Dumper = std::function<std::string(std::string, ThreadContext *)>
 
- Protected Member Functions inherited from gem5::SyscallDesc
 SyscallDesc (int num, const char *name, Executor exec, Dumper dump)
 
void retrySyscall (ThreadContext *tc)
 

Detailed Description

template<typename ABI>
class gem5::SyscallDescABI< ABI >

Definition at line 119 of file syscall_desc.hh.

Member Typedef Documentation

◆ ABIExecutor

template<typename ABI>
template<typename ... Args>
using gem5::SyscallDescABI< ABI >::ABIExecutor
private
Initial value:
std::function<SyscallReturn(SyscallDesc *, ThreadContext *, Args...)>
SyscallDesc(int num, const char *name, Executor exec, Dumper dump)
This class represents the return value from an emulated system call, including any errno setting.
ThreadContext is the external interface to all thread state for anything outside of the CPU.

Definition at line 124 of file syscall_desc.hh.

◆ ABIExecutorPtr

template<typename ABI>
template<typename ... Args>
using gem5::SyscallDescABI< ABI >::ABIExecutorPtr
private
Initial value:

Definition at line 128 of file syscall_desc.hh.

Constructor & Destructor Documentation

◆ SyscallDescABI() [1/3]

template<typename ABI>
template<typename ... Args>
gem5::SyscallDescABI< ABI >::SyscallDescABI ( int num,
const char * name,
ABIExecutor< Args... > target )
inline

◆ SyscallDescABI() [2/3]

template<typename ABI>
template<typename ... Args>
gem5::SyscallDescABI< ABI >::SyscallDescABI ( int num,
const char * name,
ABIExecutorPtr< Args... > target )
inline

◆ SyscallDescABI() [3/3]

template<typename ABI>
gem5::SyscallDescABI< ABI >::SyscallDescABI ( int num,
const char * name )
inline

Member Function Documentation

◆ buildDumper()

template<typename ABI>
template<typename ... Args>
static Dumper gem5::SyscallDescABI< ABI >::buildDumper ( )
inlinestaticprivate

Definition at line 157 of file syscall_desc.hh.

References gem5::dumpSimcall(), and gem5::SyscallDesc::name().

Referenced by SyscallDescABI().

◆ buildExecutor()

template<typename ABI>
template<typename ... Args>
static Executor gem5::SyscallDescABI< ABI >::buildExecutor ( ABIExecutor< Args... > target)
inlinestaticprivate

Definition at line 136 of file syscall_desc.hh.

References gem5::invokeSimcall(), and gem5::SyscallDesc::SyscallDesc().

Referenced by SyscallDescABI().

◆ returnInto()

template<typename ABI>
void gem5::SyscallDescABI< ABI >::returnInto ( ThreadContext * tc,
const SyscallReturn & ret )
inlineoverridevirtual

For use within the system call executor if new threads are created and need something returned into them.

Implements gem5::SyscallDesc.

Definition at line 182 of file syscall_desc.hh.


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

Generated on Mon May 26 2025 09:19:26 for gem5 by doxygen 1.13.2