gem5  v19.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Namespaces | Functions
guest_abi.hh File Reference
#include <functional>
#include <memory>
#include <sstream>
#include <type_traits>

Go to the source code of this file.

Classes

struct  GuestABI::PositionInitializer< ABI, Enabled >
 
struct  GuestABI::PositionInitializer< ABI, typename std::enable_if< std::is_constructible< typename ABI::Position, const ThreadContext * >::value >::type >
 
struct  GuestABI::Result< ABI, Ret, Enabled >
 
struct  GuestABI::Result< ABI, void >
 
struct  GuestABI::Argument< ABI, Arg, Enabled >
 
struct  GuestABI::ResultAllocator< ABI, Ret, Enabled >
 
struct  GuestABI::ResultAllocator< ABI, Ret, decltype((void)&Result< ABI, Ret >::allocate)>
 
class  GuestABI::VarArgsBase< Types >
 
class  GuestABI::VarArgsBase< First, Types... >
 
class  GuestABI::VarArgsBase<>
 
class  GuestABI::VarArgsImpl< ABI, Base, Types >
 
class  GuestABI::VarArgsImpl< ABI, Base, First, Types... >
 
class  GuestABI::VarArgsImpl< ABI, Base >
 
class  GuestABI::VarArgs< Types >
 
struct  GuestABI::IsVarArgs< T >
 
struct  GuestABI::IsVarArgs< VarArgs< Types... > >
 
struct  GuestABI::Argument< ABI, VarArgs< Types... > >
 

Namespaces

 GuestABI
 

Functions

template<typename ... Types>
std::ostream & GuestABI::operator<< (std::ostream &os, const VarArgs< Types... > &va)
 
template<typename ABI , typename Ret >
static std::enable_if<!std::is_void< Ret >::value, Ret >::type GuestABI::callFrom (ThreadContext *tc, typename ABI::Position &position, std::function< Ret(ThreadContext *)> target)
 
template<typename ABI >
static void GuestABI::callFrom (ThreadContext *tc, typename ABI::Position &position, std::function< void(ThreadContext *)> target)
 
template<typename ABI , typename Ret , typename NextArg , typename ... Args>
static std::enable_if<!std::is_void< Ret >::value, Ret >::type GuestABI::callFrom (ThreadContext *tc, typename ABI::Position &position, std::function< Ret(ThreadContext *, NextArg, Args...)> target)
 
template<typename ABI , typename NextArg , typename ... Args>
static void GuestABI::callFrom (ThreadContext *tc, typename ABI::Position &position, std::function< void(ThreadContext *, NextArg, Args...)> target)
 
template<typename ABI , typename Ret >
static void GuestABI::dumpArgsFrom (int count, std::ostream &os, ThreadContext *tc, typename ABI::Position &position)
 
template<typename ABI , typename Ret , typename NextArg , typename ... Args>
static void GuestABI::dumpArgsFrom (int count, std::ostream &os, ThreadContext *tc, typename ABI::Position &position)
 
template<typename ABI , typename Ret , typename ... Args>
Ret invokeSimcall (ThreadContext *tc, std::function< Ret(ThreadContext *, Args...)> target)
 
template<typename ABI , typename Ret , typename ... Args>
Ret invokeSimcall (ThreadContext *tc, Ret(*target)(ThreadContext *, Args...))
 
template<typename ABI , typename ... Args>
void invokeSimcall (ThreadContext *tc, std::function< void(ThreadContext *, Args...)> target)
 
template<typename ABI , typename ... Args>
void invokeSimcall (ThreadContext *tc, void(*target)(ThreadContext *, Args...))
 
template<typename ABI , typename Ret , typename ... Args>
std::string dumpSimcall (std::string name, ThreadContext *tc, std::function< Ret(ThreadContext *, Args...)> target=std::function< Ret(ThreadContext *, Args...)>())
 
template<typename ABI , typename Ret , typename ... Args>
std::string dumpSimcall (std::string name, ThreadContext *tc, Ret(*target)(ThreadContext *, Args...))
 

Function Documentation

◆ dumpSimcall() [1/2]

template<typename ABI , typename Ret , typename ... Args>
std::string dumpSimcall ( std::string  name,
ThreadContext tc,
std::function< Ret(ThreadContext *, Args...)>  target = std::function<Ret(ThreadContext *, Args...)>() 
)

◆ dumpSimcall() [2/2]

template<typename ABI , typename Ret , typename ... Args>
std::string dumpSimcall ( std::string  name,
ThreadContext tc,
Ret(*)(ThreadContext *, Args...)  target 
)

Definition at line 496 of file guest_abi.hh.

References name().

◆ invokeSimcall() [1/4]

template<typename ABI , typename Ret , typename ... Args>
Ret invokeSimcall ( ThreadContext tc,
std::function< Ret(ThreadContext *, Args...)>  target 
)

◆ invokeSimcall() [2/4]

template<typename ABI , typename Ret , typename ... Args>
Ret invokeSimcall ( ThreadContext tc,
Ret(*)(ThreadContext *, Args...)  target 
)

Definition at line 449 of file guest_abi.hh.

◆ invokeSimcall() [3/4]

template<typename ABI , typename ... Args>
void invokeSimcall ( ThreadContext tc,
std::function< void(ThreadContext *, Args...)>  target 
)

◆ invokeSimcall() [4/4]

template<typename ABI , typename ... Args>
void invokeSimcall ( ThreadContext tc,
void(*)(ThreadContext *, Args...)  target 
)

Definition at line 468 of file guest_abi.hh.


Generated on Fri Feb 28 2020 16:27:06 for gem5 by doxygen 1.8.13