diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2016-03-07 17:09:21 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-03-25 12:24:28 -0400 |
commit | 4dea56a10f144a1b0acb8aa9cc027870fd3c8d41 (patch) | |
tree | a015e5aa25d9d2753bdf6a01ab82e4de2527591a /src/usr/diag/prdf/common/framework/rule/prdfGroup.C | |
parent | 3ce1f242a85719ac94315bedb17d00536e1bf8cf (diff) | |
download | talos-hostboot-4dea56a10f144a1b0acb8aa9cc027870fd3c8d41.tar.gz talos-hostboot-4dea56a10f144a1b0acb8aa9cc027870fd3c8d41.zip |
PRD: moved rule/ out of framework/
Change-Id: I4ddfa567abb576f7949bf8a9c4ab5ee530eed70e
RTC: 140081
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/21860
Tested-by: Jenkins Server
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22137
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/framework/rule/prdfGroup.C')
-rwxr-xr-x | src/usr/diag/prdf/common/framework/rule/prdfGroup.C | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/src/usr/diag/prdf/common/framework/rule/prdfGroup.C b/src/usr/diag/prdf/common/framework/rule/prdfGroup.C deleted file mode 100755 index 61043540a..000000000 --- a/src/usr/diag/prdf/common/framework/rule/prdfGroup.C +++ /dev/null @@ -1,288 +0,0 @@ -/* IBM_PROLOG_BEGIN_TAG */ -/* This is an automatically generated prolog. */ -/* */ -/* $Source: src/usr/diag/prdf/common/framework/rule/prdfGroup.C $ */ -/* */ -/* OpenPOWER HostBoot Project */ -/* */ -/* Contributors Listed Below - COPYRIGHT 2012,2015 */ -/* [+] International Business Machines Corp. */ -/* */ -/* */ -/* Licensed under the Apache License, Version 2.0 (the "License"); */ -/* you may not use this file except in compliance with the License. */ -/* You may obtain a copy of the License at */ -/* */ -/* http://www.apache.org/licenses/LICENSE-2.0 */ -/* */ -/* Unless required by applicable law or agreed to in writing, software */ -/* distributed under the License is distributed on an "AS IS" BASIS, */ -/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ -/* implied. See the License for the specific language governing */ -/* permissions and limitations under the License. */ -/* */ -/* IBM_PROLOG_END_TAG */ - -#include <prdfGroup.H> - -#include <algorithm> - -#include <iipResetErrorRegister.h> -#include <iipServiceDataCollector.h> -#include <prdfBitString.H> -#include <prdfMain.H> -#include <prdfResolutionMap.H> - -namespace PRDF -{ - -Group::~Group() -{ - RegisterList_t::const_iterator l_errRegsEnd = cv_errRegs.end(); - for (RegisterList_t::const_iterator i = cv_errRegs.begin(); - i != l_errRegsEnd; - ++i) - { - delete *i; - } - - ResMaps_t::const_iterator l_resMapsEnd = cv_resMaps.end(); - for (ResMaps_t::const_iterator i = cv_resMaps.begin(); - i != l_resMapsEnd; - ++i) - { - delete (ResolutionMap *)(*i).second; - } - - // Delete filters. - FilterList_t::const_iterator l_filterEnd = cv_filters.end(); - for (FilterList_t::const_iterator i = cv_filters.begin(); - i != l_filterEnd; - ++i) - { - delete (*i); - } -} - -int32_t Group::Analyze(STEP_CODE_DATA_STRUCT & i_step) -{ - int32_t l_rc = -1; - ServiceDataCollector l_backupStep(*i_step.service_data); - int32_t l_tmpRC = SUCCESS; - - RegisterList_t::const_iterator l_errRegsEnd = cv_errRegs.end(); - for (RegisterList_t::const_iterator i = cv_errRegs.begin(); - (i != l_errRegsEnd) && (l_rc != SUCCESS); - ++i) - { - bool l_secErr = i_step.service_data->isSecondaryErrFound(); - (*i_step.service_data) = l_backupStep; - - if( l_secErr ) - { - i_step.service_data->setSecondaryErrFlag(); - } - - l_tmpRC = (*i)->Analyze(i_step); - - if (PRD_SCAN_COMM_REGISTER_ZERO != l_tmpRC) - { - l_rc = l_tmpRC; - } - } - if ( PRD_SCAN_COMM_REGISTER_ZERO == l_tmpRC ) - { - l_rc = l_tmpRC; - } - - if (0 == cv_errRegs.size()) - l_rc = cv_defaultRes.Resolve(i_step); - - return l_rc; -}; - -void Group::Add(SCAN_COMM_REGISTER_CLASS * i_reg, - const uint8_t * i_bits, - size_t i_bitSize, - Resolution & i_action, - ResetAndMaskPair & i_resets, - uint16_t i_scrID, - bool i_reqTranspose) -{ - FilterClass * l_transposeFilter = NULL; - uint8_t l_bits[1] = { '\0' }; - ResolutionMap * l_res = cv_resMaps[i_reg]; - - if (NULL == l_res) - { - l_res = cv_resMaps[i_reg] = new ResolutionMap(1, cv_defaultRes); - ResetAndMaskErrorRegister * l_errReg = - new ResetAndMaskErrorRegister(*i_reg, *l_res, i_scrID); - cv_errRegs.push_back(l_errReg); - - // Sort reset and mask lists. - std::sort(i_resets.first.begin(), i_resets.first.end()); - std::sort(i_resets.second.begin(), i_resets.second.end()); - - // Remove duplicate resets and masks. - i_resets.first.erase( - std::unique(i_resets.first.begin(), i_resets.first.end()), - i_resets.first.end()); - i_resets.second.erase( - std::unique(i_resets.second.begin(), i_resets.second.end()), - i_resets.second.end()); - - // Add resets. - std::for_each(i_resets.first.begin(), i_resets.first.end(), - std::bind1st( - std::mem_fun(&ResetAndMaskErrorRegister::addReset), - l_errReg) - ); - - // Add masks. - std::for_each(i_resets.second.begin(), i_resets.second.end(), - std::bind1st( - std::mem_fun(&ResetAndMaskErrorRegister::addMask), - l_errReg) - ); - } - - // This action requires a transpose filter (multiple bits &'d) - if (i_reqTranspose) - { - // Create key and transposition filter. Add to filter list. - BitKey l_tmpKey(i_bits, i_bitSize); - l_transposeFilter = new FilterTranspose(l_tmpKey, - cv_nextBitForTranspose); - cv_filters.push_back(l_transposeFilter); - - // Update bit string pointers/values. - l_bits[0] = cv_nextBitForTranspose++; - i_bits = l_bits; - i_bitSize = 1; - - // Check for existing transposition filter, create link as needed. - if (NULL != l_res->getFilter()) - { - l_transposeFilter = new FilterLink(*l_res->getFilter(), - *l_transposeFilter); // pw01 - cv_filters.push_back(l_transposeFilter); - } - - // Assign transpose filter. - l_res->setFilter(l_transposeFilter); - } - - // Add action to resolution. - l_res->Add(i_bits, i_bitSize, &i_action); -}; - -void Group::Add(SCAN_COMM_REGISTER_CLASS * i_reg, - Resolution & i_action, - ResetAndMaskPair & i_resets, - uint16_t i_scrID) -{ - ResolutionMap * l_res = cv_resMaps[i_reg]; - - if (NULL == l_res) - { - l_res = cv_resMaps[i_reg] = new ResolutionMap(1, cv_defaultRes); - ResetAndMaskErrorRegister * l_errReg = - new ResetAndMaskErrorRegister(*i_reg, *l_res, i_scrID); - cv_errRegs.push_back(l_errReg); - - // Sort reset and mask lists. - std::sort(i_resets.first.begin(), i_resets.first.end()); - std::sort(i_resets.second.begin(), i_resets.second.end()); - - // Remove duplicate resets and masks. - i_resets.first.erase( - std::unique(i_resets.first.begin(), i_resets.first.end()), - i_resets.first.end()); - i_resets.second.erase( - std::unique(i_resets.second.begin(), i_resets.second.end()), - i_resets.second.end()); - - // Add resets. - std::for_each(i_resets.first.begin(), i_resets.first.end(), - std::bind1st( - std::mem_fun(&ResetAndMaskErrorRegister::addReset), - l_errReg) - ); - - // Add masks. - std::for_each(i_resets.second.begin(), i_resets.second.end(), - std::bind1st( - std::mem_fun(&ResetAndMaskErrorRegister::addMask), - l_errReg) - ); - } - - l_res->ReplaceDefaultWith(i_action); - -}; - -void Group::AddFilter(FilterClass * i_filter, bool i_addFirst ) -{ - // Add to filter list, for deallocation later. - cv_filters.push_back(i_filter); - - // Iterate through all resolution maps. - for(ResMaps_t::const_iterator i = cv_resMaps.begin(); - i != cv_resMaps.end(); - i++) - { - // Get old filter. - FilterClass * l_bitFilter = - ((ResolutionMap *)(*i).second)->getFilter(); - - // Need new filter link? - if (NULL != l_bitFilter) - { - if( i_addFirst ) - { - l_bitFilter = new FilterLink( *i_filter, *l_bitFilter ); - } - else - { - l_bitFilter = new FilterLink( *l_bitFilter, *i_filter ); - } - - // Add to filter list, for deallocation later. - cv_filters.push_back(l_bitFilter); - } - else - { - l_bitFilter = i_filter; - } - - // Assign filter to resolution map. - ((ResolutionMap *)(*i).second)->setFilter(l_bitFilter); - } -} - - - -const BIT_STRING_CLASS & Group::Read(ATTENTION_TYPE i_attn) -{ - static BIT_STRING_BUFFER_CLASS a(64); - return a; -}; - -BIT_LIST_CLASS Group::Filter(const BIT_STRING_CLASS & i) -{ - return BIT_LIST_CLASS(); -}; - -int32_t Group::Lookup(STEP_CODE_DATA_STRUCT & i_step, BIT_LIST_CLASS & b) -{ - return -1; -}; - -int32_t Group::Reset(const BIT_LIST_CLASS & b, STEP_CODE_DATA_STRUCT & i_step) -{ - return -1; -}; - -} // end namespace PRDF - |