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// -*- mode: C++; c-file-style: "virtutech-c++" -*-
2
3/*
4 © 2018 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_TLM2SIMICS_PCIE_MAP_H
17#define SIMICS_SYSTEMC_TLM2SIMICS_PCIE_MAP_H
18
24
25namespace simics {
26namespace systemc {
27namespace tlm2simics {
28
30 public TransactionHandler,
32 public:
33 PcieMap() : InterfaceProvider("pcie_map"),
35 this,
36 iface::PcieMapExtension::createIgnoreReceiver()),
37 receiver_(iface::PcieMapExtension::createReceiver(this)),
38 device_(nullptr) {}
39 virtual ~PcieMap();
40 PcieMap(const PcieMap &other) = delete;
41 PcieMap& operator=(const PcieMap &other) = delete;
42
43 // TransactionHandler
45
46 // iface::PcieMapInterface
47 void add_map(types::map_info_t info, types::pcie_type_t type) override;
49 types::pcie_type_t type) override;
50 void add_function(conf_object_t *map_obj, uint16_t function_id) override;
51 void del_function(conf_object_t *map_obj, uint16_t function_id) override;
52 void enable_function(uint16_t function_id) override;
53 void disable_function(uint16_t function_id) 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:32
Simics pcie_map interface.
Definition: pcie_map_interface.h:29
Interface implemented by the ExtensionReceiver class, used by the ExtensionDispatcher.
Definition: receiver_interface.h:29
Definition: pcie_map.h:31
void disable_function(uint16_t function_id) override
uint16_t get_device_id(conf_object_t *dev_obj) override
void del_map(types::map_info_t::physical_address_t base, types::pcie_type_t type) override
iface::ReceiverInterface * receiver() override
void enable_function(uint16_t function_id) override
void del_function(conf_object_t *map_obj, uint16_t function_id) override
void add_function(conf_object_t *map_obj, uint16_t function_id) override
PcieMap(const PcieMap &other)=delete
PcieMap()
Definition: pcie_map.h:33
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:36
pcie_type_t
Definition: pcie_type.h:22
Definition: adapter.h:80
Reduced, stand-alone, version of the Simics map_info_t struct.
Definition: map_info.h:25
uint64_t physical_address_t
Definition: map_info.h:26