16#ifndef SIMICS_SYSTEMC_IFACE_I3C_SLAVE_SIMICS_ADAPTER_H
17#define SIMICS_SYSTEMC_IFACE_I3C_SLAVE_SIMICS_ADAPTER_H
19#include <simics/devs/i3c.h>
31template<
typename TBase,
typename TInterface = I3cSlaveInterface>
37 I3C_SLAVE_INTERFACE, init_iface()) {
41 static void start(conf_object_t *obj, uint8_t address) {
42 adapter<TBase, TInterface>(obj)->start(address);
44 static void write(conf_object_t *obj, uint8_t value) {
45 adapter<TBase, TInterface>(obj)->write(value);
47 static void sdr_write(conf_object_t *obj, ::bytes_t data) {
49 bytes.
data = data.data;
51 adapter<TBase, TInterface>(obj)->sdr_write(bytes);
53 static void read(conf_object_t *obj) {
54 adapter<TBase, TInterface>(obj)->read();
57 adapter<TBase, TInterface>(obj)->daa_read();
59 static void stop(conf_object_t *obj) {
60 adapter<TBase, TInterface>(obj)->stop();
63 adapter<TBase, TInterface>(obj)->ibi_start();
66 adapter<TBase, TInterface>(obj)->ibi_acknowledge(
71 std::vector<std::string> description(conf_object_t *obj,
73 return descriptionBase<TBase, TInterface>(obj, type);
75 i3c_slave_interface_t init_iface() {
76 i3c_slave_interface_t iface = {};
Definition: i3c_slave_simics_adapter.h:33
static void start(conf_object_t *obj, uint8_t address)
Definition: i3c_slave_simics_adapter.h:41
I3cSlaveSimicsAdapter()
Definition: i3c_slave_simics_adapter.h:35
static void read(conf_object_t *obj)
Definition: i3c_slave_simics_adapter.h:53
static void write(conf_object_t *obj, uint8_t value)
Definition: i3c_slave_simics_adapter.h:44
static void ibi_start(conf_object_t *obj)
Definition: i3c_slave_simics_adapter.h:62
static void ibi_acknowledge(conf_object_t *obj, ::i3c_ack_t ack)
Definition: i3c_slave_simics_adapter.h:65
static void sdr_write(conf_object_t *obj, ::bytes_t data)
Definition: i3c_slave_simics_adapter.h:47
static void daa_read(conf_object_t *obj)
Definition: i3c_slave_simics_adapter.h:56
static void stop(conf_object_t *obj)
Definition: i3c_slave_simics_adapter.h:59
Base class for mapping Simics interface to a C++ interface.
Definition: simics_adapter.h:47
DescriptionType
Definition: description_interface.h:25
@ I3C_ack
Definition: i3c_ack.h:23
@ I3C_noack
Definition: i3c_ack.h:24
Definition: pci_bus_interface.h:24
const uint8_t * data
Definition: bytes.h:29
size_t len
Definition: bytes.h:30