16#ifndef SIMICS_SYSTEMC_SC_SIGNAL_ACCESS_BASE_H
17#define SIMICS_SYSTEMC_SC_SIGNAL_ACCESS_BASE_H
25#define __SIMICS_SYSTEMC_SIGNAL_DECLARE_TRANSFORM(type) \
26bool attrToValue(const attr_value_t *attr, type *value) const; \
27attr_value_t valueToAttr(type value) const;
29#define __SIMICS_SYSTEMC_SIGNAL_COMMA ,
31#define __SIMICS_SYSTEMC_SIGNAL_WRITE_BASE(signal, type, obj, \
34 signal *s = dynamic_cast<signal *>(obj); \
37 if (set_func(value, &v)) { \
44#define SIMICS_SYSTEMC_SIGNAL_WRITE(type, obj, value, set_func) \
45__SIMICS_SYSTEMC_SIGNAL_WRITE_BASE(sc_core::sc_signal<type>, \
46 type, obj, value, set_func); \
47__SIMICS_SYSTEMC_SIGNAL_WRITE_BASE(sc_core::sc_signal<type \
48 __SIMICS_SYSTEMC_SIGNAL_COMMA \
49 sc_core::SC_MANY_WRITERS>, \
50 type, obj, value, set_func); \
51__SIMICS_SYSTEMC_SIGNAL_WRITE_BASE(sc_core::sc_out<type>, \
52 type, obj, value, set_func); \
53__SIMICS_SYSTEMC_SIGNAL_WRITE_BASE(sc_core::sc_inout<type>, \
54 type, obj, value, set_func);
56#define __SIMICS_SYSTEMC_SIGNAL_READ_BASE(signal, type, obj, \
59 const signal *s = dynamic_cast<const signal *>(obj); \
61 *value = get_func(s->read()); \
66#define SIMICS_SYSTEMC_SIGNAL_READ(type, obj, value, get_func) \
67__SIMICS_SYSTEMC_SIGNAL_READ_BASE(sc_core::sc_signal<type>, \
68 type, obj, value, get_func); \
69__SIMICS_SYSTEMC_SIGNAL_READ_BASE(sc_core::sc_signal<type \
70 __SIMICS_SYSTEMC_SIGNAL_COMMA \
71 sc_core::SC_MANY_WRITERS>, \
72 type, obj, value, get_func); \
73__SIMICS_SYSTEMC_SIGNAL_READ_BASE(sc_core::sc_in<type>, \
74 type, obj, value, get_func); \
75__SIMICS_SYSTEMC_SIGNAL_READ_BASE(sc_core::sc_inout<type>, \
76 type, obj, value, get_func);
Definition: registry.h:88
Definition: sc_signal_access_base.h:78
Definition: pci_bus_interface.h:24
#define __SIMICS_SYSTEMC_SIGNAL_DECLARE_TRANSFORM(type)
Definition: sc_signal_access_base.h:25