14#ifndef SIMICS_SYSTEMC_INJECTION_EXTENSION_INJECT_PCI_UPSTREAM_OPERATION_H
15#define SIMICS_SYSTEMC_INJECTION_EXTENSION_INJECT_PCI_UPSTREAM_OPERATION_H
31template <
typename TPAYLOAD>
37 attr_value_t *attr, TPAYLOAD *gp)
override {
41 if (!p.
lookUp(
"rid", &rid))
51 }
else if (key ==
"write") {
54 if (!p.
lookUp(
"rid", &rid))
71 if (!parser->
lookUp(
"space", &space))
75 parser->
reportError(
"%s must be in range [%i - %i]",
#define ATTR_DICT_PARSER_NAMESPACE(ns)
Definition: attr_dict_parser.h:32
Extension for Simics pci_upstream_operation interface.
Definition: pci_upstream_operation_extension.h:28
Definition: attr_dict_parser.h:38
void reportError(const char *str,...)
AttrDictParser init(const attr_value_t *attr)
bool lookUp(const std::string &key, T *v)
Definition: attr_dict_parser.h:53
Definition: inject_base.h:43
Definition: extension_setter.h:32
Definition: inject_pci_upstream_operation.h:32
bool setValue(AttrDictParser *parser, const std::string &key, attr_value_t *attr, TPAYLOAD *gp) override
Definition: inject_pci_upstream_operation.h:36
bool addrSpaceLookUp(AttrDictParser *parser, simics::types::addr_space_t *v, std::string key)
Definition: inject_pci_upstream_operation.h:68
addr_space_t
Stand-alone, version of the Simics addr_space_t enum.
Definition: addr_space.h:21
@ Sim_Addr_Space_Memory
Definition: addr_space.h:24
@ Sim_Addr_Space_Conf
Definition: addr_space.h:22