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