#include <iostream>
#include <string>
#include <tuple>
#include <typeinfo>
#include <unordered_set>
#include <utility>
#include "simics/after-interface.h"
#include "simics/attr-value.h"
#include "simics/attribute-traits.h"
#include "simics/event.h"
Go to the source code of this file.
◆ AFTER_CALL
| #define AFTER_CALL |
( |
|
dev, |
|
|
|
t, |
|
|
|
f, |
|
|
|
... |
|
) |
| |
Value: { \
simics::check_function_call(f); \
if (iface == nullptr) { \
std::cerr << "The first argument to the AFTER_CALL does " \
<< "not implement AfterInterface*" \
<< std::endl; \
} else { \
iface->
schedule(t, std::string(#f) +
typeid(f).name(), \
std::forward_as_tuple(__VA_ARGS__)))); \
} \
}
Definition: after-interface.h:44
virtual void schedule(double seconds, const std::string &name, const attr_value_t &args)=0
Definition: attr-value.h:33
std::enable_if< std::is_enum< T >::value, attr_value_t >::type std_to_attr(const T &src)
Function transforms C++ enum type T to Simics attr_value_t.
Definition: attribute-traits.h:163
◆ FUNC_AND_NAME
| #define FUNC_AND_NAME |
( |
|
f | ) |
f, #f |
◆ REGISTER_AFTER_CALL