SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
pci_device_query_interface.h
Go to the documentation of this file.
1/* -*- C++ -*-
2
3 © 2014 Intel Corporation
4
5 This software and the related documents are Intel copyrighted materials, and
6 your use of them is governed by the express license under which they were
7 provided to you ("License"). Unless the License provides otherwise, you may
8 not use, modify, copy, publish, distribute, disclose or transmit this software
9 or the related documents without Intel's prior written permission.
10
11 This software and the related documents are provided as is, with no express or
12 implied warranties, other than those that are expressly stated in the License.
13*/
14
15#ifndef SIMICS_SYSTEMC_IFACE_PCI_DEVICE_QUERY_INTERFACE_H
16#define SIMICS_SYSTEMC_IFACE_PCI_DEVICE_QUERY_INTERFACE_H
17
18#include <systemc>
19#include <tlm>
20
21#include <utility>
22#include <vector>
23
24namespace simics {
25namespace systemc {
26namespace iface {
27
36//:: pre PciDeviceQueryInterface {{
38 public:
39 // config space, pci_bus interface and pci_device interface are required
40 virtual sc_core::sc_object *getConfigTargetSocket() = 0;
41 virtual sc_core::sc_object *getPciBusInitiatorSocket() = 0;
42 virtual sc_core::sc_object *getPciDeviceTargetSocket() = 0;
43
45};
46// }}
47
53//:: pre BaseAddressRegisterQueryInterface/Header {{
55 public:
56// }}
69 //:: pre BaseAddressRegisterQueryInterface/BAR {{
72 int offset;
73 bool is_memory;
74 bool is_64bit;
77 };
78 // }}
79
88 //:: pre BaseAddressRegisterQueryInterface/BarInfo {{
89 typedef std::vector<BaseAddressRegister> BarInfo;
90 virtual BarInfo getBarInfo() = 0;
91 // }}
92
104 //:: pre BaseAddressRegisterQueryInterface/Footer {{
105 typedef std::vector<std::pair<BaseAddressRegister,
106 sc_core::sc_object *> > BarSockets;
108
110};
111// }}
112
113} // namespace iface
114} // namespace systemc
115} // namespace simics
116
117#endif
Interface that allows the Simics glue to perform snooping and automatic connection of the device's ta...
Definition: pci_device_query_interface.h:54
std::vector< std::pair< BaseAddressRegister, sc_core::sc_object * > > BarSockets
IO/Memory space target socket(s).
Definition: pci_device_query_interface.h:106
virtual ~BaseAddressRegisterQueryInterface()
Definition: pci_device_query_interface.h:109
std::vector< BaseAddressRegister > BarInfo
BAR register information.
Definition: pci_device_query_interface.h:89
Interface for connecting a SystemC PCI(e) device to Simics.
Definition: pci_device_query_interface.h:37
virtual sc_core::sc_object * getConfigTargetSocket()=0
virtual sc_core::sc_object * getPciBusInitiatorSocket()=0
virtual ~PciDeviceQueryInterface()
Definition: pci_device_query_interface.h:44
virtual sc_core::sc_object * getPciDeviceTargetSocket()=0
Definition: pci_bus_interface.h:24
Base Address Register (BAR) configuration.
Definition: pci_device_query_interface.h:70
int offset
BAR offset (0x10-0x24)
Definition: pci_device_query_interface.h:72
bool is_64bit
64-bit or 32-bit (memory) BAR?
Definition: pci_device_query_interface.h:74
int function
PCI function that this BAR belongs to.
Definition: pci_device_query_interface.h:71
bool is_memory
Memory or IO BAR?
Definition: pci_device_query_interface.h:73
int mapping_id
Mapping ID, used to identify incoming transactions.
Definition: pci_device_query_interface.h:76
int size_bits
Size of BAR, in number of bits.
Definition: pci_device_query_interface.h:75