// fapiChipEcFeature.C // This file is generated by perl script fapiParseAttributeInfo.pl // It implements the fapiQueryChipEcFeature function #include #include #include #include namespace fapi2 { fapi::ReturnCode fapiQueryChipEcFeature(fapi::AttributeId i_id, const fapi::Target * i_pTarget, uint8_t & o_hasFeature) { o_hasFeature = false; fapi::ReturnCode l_rc; uint8_t l_chipName = 0; uint8_t l_chipEc = 0; fapi::Target l_target = *i_pTarget; if (i_pTarget->isChiplet()) { l_rc = fapiGetParentChip(*i_pTarget, l_target); if (l_rc) { FAPI_ERR("fapiQueryChipEcFeature: error getting parent chip"); } } if (!l_rc) { l_rc = FAPI_ATTR_GET_PRIVILEGED(ATTR_NAME, &l_target, l_chipName); if (l_rc) { FAPI_ERR("fapiQueryChipEcFeature: error getting chip name"); } else { l_rc = FAPI_ATTR_GET_PRIVILEGED(ATTR_EC, &l_target, l_chipEc); if (l_rc) { FAPI_ERR("fapiQueryChipEcFeature: error getting chip ec"); } else { switch (i_id) { default: FAPI_ERR("fapiQueryChipEcFeature: Unknown feature 0x%x", i_id); l_rc.setFapiError(FAPI_RC_INVALID_CHIP_EC_FEATURE_GET); l_rc.addEIFfdc(0, &i_id, sizeof(i_id)); break; } if (o_hasFeature) { FAPI_INF("fapiQueryChipEcFeature: Chip (0x%x:0x%x) has feature (0x%x)", l_chipName, l_chipEc, i_id); } else { FAPI_INF("fapiQueryChipEcFeature: Chip (0x%x:0x%x) does not have feature (0x%x)", l_chipName, l_chipEc, i_id); } } } } return l_rc; } }