C++ Device API Reference Manual
Reference documentation for the Simics C++ Device API.
 
Loading...
Searching...
No Matches
conf-class.h File Reference
#include <simics/base/conf-object.h>
#include <map>
#include <memory>
#include <string>
#include <vector>
#include "simics/attribute.h"
#include "simics/event.h"
#include "simics/init-class.h"
#include "simics/iface/interface-info.h"
#include "simics/log.h"
#include "simics/object-factory.h"

Go to the source code of this file.

Classes

class  simics::ConfClass
 Represents Simics C type conf_class_t. More...
 
class  simics::None
 
class  simics::RegisterClassWithSimics< T, A >
 Utility class for automatic registration of C++ classes with Simics. More...
 

Namespaces

namespace  simics
 

Macros

#define GROUP_ID(...)
 
#define GROUP_ID_ONE_ARG(NAME)    simics::ConfClass::getGroupId(SIM_object_class(obj()), #NAME)
 
#define GROUP_ID_TWO_ARGS(OBJ, NAME)    simics::ConfClass::getGroupId(SIM_object_class(OBJ), #NAME)
 

Typedefs

using simics::ConfClassPtr = std::unique_ptr< ConfClass >
 

Functions

template<typename T >
void simics::decorate_class (...)
 Overload it with specific implementation by including the other header before this file.
 
template<typename T >
ConfClassPtr simics::make_class (const std::string &name, const std::string &short_desc, const std::string &description, const class_kind_t kind=Sim_Class_Kind_Vanilla)
 A factory method to create a ConfClassPtr which associate with the C++ class T.
 
template<typename T , typename A >
ConfClassPtr simics::make_class (const std::string &name, const std::string &short_desc, const std::string &description, A *constructor_arg, const class_kind_t kind=Sim_Class_Kind_Vanilla)
 A factory method to create a ConfClassPtr which associate with the C++ class T with argument A.
 

Macro Definition Documentation

◆ GROUP_ID

#define GROUP_ID (   ...)
Value:
GROUP_ID_ONE_ARG)(__VA_ARGS__))
#define GET_MACRO(_1, _2, NAME,...)
MACRO take either 1 or 2 arguments.
Definition: attribute.h:31
#define IMPL(str)
VA_ARGS is treated as single parameter in MSVC, use this as a workaround
Definition: attribute.h:36
#define GROUP_ID_TWO_ARGS(OBJ, NAME)
Definition: conf-class.h:312
#define GROUP_ID_ONE_ARG(NAME)
Definition: conf-class.h:309

◆ GROUP_ID_ONE_ARG

#define GROUP_ID_ONE_ARG (   NAME)     simics::ConfClass::getGroupId(SIM_object_class(obj()), #NAME)

◆ GROUP_ID_TWO_ARGS

#define GROUP_ID_TWO_ARGS (   OBJ,
  NAME 
)     simics::ConfClass::getGroupId(SIM_object_class(OBJ), #NAME)