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