16#ifndef SIMICS_SYSTEMC_IFACE_PCIE_DEVICE_SIMICS_ADAPTER_H
17#define SIMICS_SYSTEMC_IFACE_PCIE_DEVICE_SIMICS_ADAPTER_H
19#include <simics/devs/pci.h>
31template<
typename TBase,
typename TInterface = PcieDeviceInterface>
36 PCIE_DEVICE_INTERFACE, init_iface()) {
40 static void connected(conf_object_t *obj, conf_object_t *port_obj,
42 adapter<TBase, TInterface>(obj)->connected(port_obj, device_id);
44 static void disconnected(conf_object_t *obj, conf_object_t *port_obj,
46 adapter<TBase, TInterface>(obj)->disconnected(port_obj, device_id);
49 adapter<TBase, TInterface>(obj)->hot_reset();
53 std::vector<std::string> description(conf_object_t *obj,
55 return descriptionBase<TBase, TInterface>(obj, type);
57 pcie_device_interface_t init_iface() {
58 pcie_device_interface_t iface = {};
Adapter for Simics pcie_device interface.
Definition: pcie_device_simics_adapter.h:32
static void hot_reset(conf_object_t *obj)
Definition: pcie_device_simics_adapter.h:48
PcieDeviceSimicsAdapter()
Definition: pcie_device_simics_adapter.h:34
static void disconnected(conf_object_t *obj, conf_object_t *port_obj, uint16 device_id)
Definition: pcie_device_simics_adapter.h:44
static void connected(conf_object_t *obj, conf_object_t *port_obj, uint16 device_id)
Definition: pcie_device_simics_adapter.h:40
Base class for mapping Simics interface to a C++ interface.
Definition: simics_adapter.h:47
DescriptionType
Definition: description_interface.h:25