gem5  v21.1.0.2
Public Member Functions | Private Types | Static Private Member Functions | List of all members
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. More...
 
- Public Member Functions inherited from gem5::SyscallDesc
void doSyscall (ThreadContext *tc)
 Interface for invoking the system call funcion pointer. More...
 
std::string name () const
 
int num () const
 

Private Types

template<typename ... Args>
using ABIExecutor = std::function< SyscallReturn(SyscallDesc *, ThreadContext *, Args...)>
 
template<typename ... Args>
using ABIExecutorPtr = SyscallReturn(*)(SyscallDesc *, ThreadContext *, Args...)
 

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 = std::function< SyscallReturn(SyscallDesc *, ThreadContext *)>
 
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)
 

Detailed Description

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

Definition at line 114 of file syscall_desc.hh.

Member Typedef Documentation

◆ ABIExecutor

template<typename ABI >
template<typename ... Args>
using gem5::SyscallDescABI< ABI >::ABIExecutor = std::function<SyscallReturn(SyscallDesc *, ThreadContext *, Args...)>
private

Definition at line 120 of file syscall_desc.hh.

◆ ABIExecutorPtr

template<typename ABI >
template<typename ... Args>
using gem5::SyscallDescABI< ABI >::ABIExecutorPtr = SyscallReturn (*)(SyscallDesc *, ThreadContext *, Args...)
private

Definition at line 124 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

Definition at line 162 of file syscall_desc.hh.

◆ SyscallDescABI() [2/3]

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

Definition at line 168 of file syscall_desc.hh.

◆ SyscallDescABI() [3/3]

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

Definition at line 172 of file syscall_desc.hh.

Member Function Documentation

◆ buildDumper()

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

Definition at line 152 of file syscall_desc.hh.

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

◆ buildExecutor()

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

Definition at line 131 of file syscall_desc.hh.

References gem5::invokeSimcall().

◆ 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 177 of file syscall_desc.hh.


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

Generated on Tue Sep 21 2021 12:28:14 for gem5 by doxygen 1.8.17