16#ifndef SIMICS_SYSTEMC_INJECTION_EXTENSION_INJECT_PCI_UPSTREAM_OPERATION_H
17#define SIMICS_SYSTEMC_INJECTION_EXTENSION_INJECT_PCI_UPSTREAM_OPERATION_H
33template <
typename TPAYLOAD>
39 attr_value_t *attr, TPAYLOAD *gp) {
43 if (!p.
lookUp(
"rid", &rid))
53 }
else if (key ==
"write") {
56 if (!p.
lookUp(
"rid", &rid))
73 if (!parser->
lookUp(
"space", &space))
77 parser->
reportError(
"%s must be in range [%i - %i]",
#define ATTR_DICT_PARSER_NAMESPACE(ns)
Definition: attr_dict_parser.h:34
Extension for Simics pci_upstream_operation interface.
Definition: pci_upstream_operation_extension.h:30
Definition: attr_dict_parser.h:40
void reportError(const char *str,...)
AttrDictParser init(const attr_value_t *attr)
bool lookUp(std::string key, T *v)
Definition: attr_dict_parser.h:55
Definition: inject_base.h:45
Definition: extension_setter.h:34
Definition: inject_pci_upstream_operation.h:34
bool addrSpaceLookUp(AttrDictParser *parser, simics::types::addr_space_t *v, std::string key)
Definition: inject_pci_upstream_operation.h:70
virtual bool setValue(AttrDictParser *parser, const std::string &key, attr_value_t *attr, TPAYLOAD *gp)
Definition: inject_pci_upstream_operation.h:38
addr_space_t
Stand-alone, version of the Simics addr_space_t enum.
Definition: addr_space.h:23
@ Sim_Addr_Space_Memory
Definition: addr_space.h:26
@ Sim_Addr_Space_Conf
Definition: addr_space.h:24
Definition: pci_bus_interface.h:24