gem5  v20.1.0.0
Public Member Functions | Private Types | Static Private Member Functions | List of all members
SyscallDescABI< ABI > Class Template Reference

#include <syscall_desc.hh>

Inheritance diagram for SyscallDescABI< ABI >:
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 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 SyscallDesc
using Executor = std::function< SyscallReturn(SyscallDesc *, ThreadContext *)>
 
using Dumper = std::function< std::string(std::string, ThreadContext *)>
 
- Protected Member Functions inherited from SyscallDesc
 SyscallDesc (int num, const char *name, Executor exec, Dumper dump)
 

Detailed Description

template<typename ABI>
class SyscallDescABI< ABI >

Definition at line 110 of file syscall_desc.hh.

Member Typedef Documentation

◆ ABIExecutor

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

Definition at line 116 of file syscall_desc.hh.

◆ ABIExecutorPtr

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

Definition at line 120 of file syscall_desc.hh.

Constructor & Destructor Documentation

◆ SyscallDescABI() [1/3]

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

Definition at line 158 of file syscall_desc.hh.

◆ SyscallDescABI() [2/3]

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

Definition at line 164 of file syscall_desc.hh.

◆ SyscallDescABI() [3/3]

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

Definition at line 168 of file syscall_desc.hh.

Member Function Documentation

◆ buildDumper()

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

Definition at line 148 of file syscall_desc.hh.

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

◆ buildExecutor()

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

Definition at line 127 of file syscall_desc.hh.

References invokeSimcall().

◆ returnInto()

template<typename ABI >
void 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 SyscallDesc.

Definition at line 173 of file syscall_desc.hh.


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

Generated on Wed Sep 30 2020 14:02:32 for gem5 by doxygen 1.8.17