SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
pcie_map.h
Go to the documentation of this file.
1/*
2 © 2018 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_TLM2SIMICS_PCIE_MAP_H
15#define SIMICS_SYSTEMC_TLM2SIMICS_PCIE_MAP_H
16
22
23namespace simics {
24namespace systemc {
25namespace tlm2simics {
26
28 public TransactionHandler,
30 public:
31 PcieMap() : InterfaceProvider("pcie_map"),
33 this,
34 iface::PcieMapExtension::createIgnoreReceiver()),
35 receiver_(iface::PcieMapExtension::createReceiver(this)),
36 device_(nullptr) {}
37 virtual ~PcieMap();
38 PcieMap(const PcieMap &other) = delete;
39 PcieMap& operator=(const PcieMap &other) = delete;
40
41 // TransactionHandler
43
44 // iface::PcieMapInterface
45 void add_map(types::map_info_t info, types::pcie_type_t type) override;
47 types::pcie_type_t type) override;
48 void add_function(conf_object_t *map_obj,
49 uint16_t device_and_function) override;
50 void del_function(conf_object_t *map_obj,
51 uint16_t device_and_function) override;
52 void enable_function(uint16_t device_and_function) override;
53 void disable_function(uint16_t device_and_function) override;
54 uint16_t get_device_id(conf_object_t *dev_obj) override;
55
56 private:
57 // TransactionHandler
58 tlm::tlm_response_status simics_transaction(
59 ConfObjectRef &simics_obj,
60 tlm::tlm_generic_payload *trans) override;
61
62 iface::ReceiverInterface *receiver_;
63 conf_object_t *device_;
64};
65
66} // namespace tlm2simics
67} // namespace systemc
68} // namespace simics
69
70#endif
Returns the interface provided by the associated Simics object.
Definition: interface_provider.h:30
Simics pcie_map interface.
Definition: pcie_map_interface.h:27
Interface implemented by the ExtensionReceiver class, used by the ExtensionDispatcher.
Definition: receiver_interface.h:27
Definition: pcie_map.h:29
void del_function(conf_object_t *map_obj, uint16_t device_and_function) override
uint16_t get_device_id(conf_object_t *dev_obj) override
void add_function(conf_object_t *map_obj, uint16_t device_and_function) override
void disable_function(uint16_t device_and_function) override
void del_map(types::map_info_t::physical_address_t base, types::pcie_type_t type) override
void enable_function(uint16_t device_and_function) override
iface::ReceiverInterface * receiver() override
PcieMap(const PcieMap &other)=delete
PcieMap()
Definition: pcie_map.h:31
void add_map(types::map_info_t info, types::pcie_type_t type) override
PcieMap & operator=(const PcieMap &other)=delete
Base class for transaction handlers without support for DMI.
Definition: transaction_handler.h:34
pcie_type_t
Definition: pcie_type.h:20
Definition: adapter.h:79
Reduced, stand-alone, version of the Simics map_info_t struct.
Definition: map_info.h:23
uint64_t physical_address_t
Definition: map_info.h:24