SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
proxy_builder.h
Go to the documentation of this file.
1/*
2 © 2014 Intel Corporation
3
4 This software and the related documents are Intel copyrighted materials, and
5 your use of them is governed by the express license under which they were
6 provided to you ("License"). Unless the License provides otherwise, you may
7 not use, modify, copy, publish, distribute, disclose or transmit this software
8 or the related documents without Intel's prior written permission.
9
10 This software and the related documents are provided as is, with no express or
11 implied warranties, other than those that are expressly stated in the License.
12*/
13
14#ifndef SIMICS_SYSTEMC_AWARENESS_PROXY_BUILDER_H
15#define SIMICS_SYSTEMC_AWARENESS_PROXY_BUILDER_H
16
17#include <simics/base/types.h>
18
19#include <systemc>
20#include <tlm>
21#include <tlm_utils/multi_socket_bases.h>
22
40
41#include <map>
42#include <string>
43
44namespace simics {
45namespace systemc {
46namespace awareness {
47
49 using ObjProxyInterfaceMap = std::map<sc_core::sc_object *,
51
52 public:
54 void suppressProxyBuild(sc_core::sc_object* obj);
55 void buildProxies(ConfObjectRef object,
57 ObjProxyInterfaceMap *links);
58 void setProxyAttributes(ObjProxyInterfaceMap *links,
59 Attributes *attributes);
61 void loadModule(simics::ConfObjectRef log_obj, const char* name);
62
63 private:
64 void registerProxyClass(ConfObjectRef log_obj,
65 ProxyFactoryInterface *factory,
66 std::string sc_kind);
67 void registerProxyClasses(ConfObjectRef log_obj);
68
69 ProxyFactoryRegistry proxy_factory_registry_;
70 ProxyClassRegistry class_registry_;
71 ProxyFactory<> factory_;
72 ProxyFactorySignal factory_signal_;
73 ProxyFactoryProcess factory_process_;
74 ProxyFactoryInitiatorGasket factory_initiator_gasket_;
75 ProxyFactoryEvent factory_event_;
76 ProxyFactoryExport factory_export_;
77 ProxyFactoryPort factory_port_;
78 ProxyFactorySignalPortIn factory_signal_port_in_;
79 ProxyFactorySignalPortOut factory_signal_port_out_;
80 ProxyFactorySignalPortInOut factory_signal_port_in_out_;
81 ProxyFactoryVector factory_vector_;
82 ProxyBlocklistTraverser blocklist_;
83};
84
85} // namespace awareness
86} // namespace systemc
87} // namespace simics
88
89#endif
Definition: attributes.h:26
Definition: proxy_blocklist_traverser.h:26
Definition: proxy_builder.h:48
void setProxyAttributes(ObjProxyInterfaceMap *links, Attributes *attributes)
void suppressProxyBuild(sc_core::sc_object *obj)
ProxyFactoryRegistry * proxy_factory_registry()
void buildProxies(ConfObjectRef object, iface::SimulationInterface *simulation, ObjProxyInterfaceMap *links)
void loadModule(simics::ConfObjectRef log_obj, const char *name)
Definition: proxy_class_registry.h:33
Definition: proxy_factory_event.h:56
Definition: proxy_factory_export.h:28
Definition: proxy_factory_initiator_gasket.h:28
Definition: proxy_factory_interface.h:29
Definition: proxy_factory_port.h:28
Definition: proxy_factory_process.h:34
Definition: proxy_factory_registry.h:27
Definition: proxy_factory_signal_port.h:67
Definition: proxy_factory_signal_port.h:41
Definition: proxy_factory_signal_port.h:54
Definition: proxy_factory_signal.h:29
Definition: proxy_factory_vector.h:25
Definition: proxy_factory.h:42
Definition: proxy_interface.h:27
Interface to the SystemC simulation.
Definition: simulation_interface.h:25
Definition: adapter.h:79