# IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # $Source: src/usr/diag/prdf/common/plat/centaur/centaur_common_actions.rule $ # # OpenPOWER HostBoot Project # # Contributors Listed Below - COPYRIGHT 2017,2018 # [+] 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 ################################################################################ # This file is intended to create a common set of actionclasses for all rule # files. # # NOTE: THESE ACTIONCLASSES WILL BE CREATED FOR ALL RULE FILES, REGARDLESS IF # THEY ARE ACTUALLY USED. PLEASE LIMIT THIS FILE TO RELATIVELY COMMON # ACTIONS. OTHERWISE, IT WILL CAUSE UNWANTED CODE BLOAT AND MEMORY USAGE. # # Simply add the following line at the top the actionclass section of each rule # file: # # .include "cen_common_actions.rule" # # Note that no indentation can be used for the .include keyword. ################################################################################ ################################################################################ # Thresholds # ################################################################################ # Threshold syntax: # threshold( field() [, mfg()|mfg_file()] ); # # Timebase syntax: # [/ [timbase_count] ] # # Note that can be found in prdfMfgThresholds.lst # # Examples: # threshold( field( 1 ) ); # threshold( field(32 / day) ); # threshold( field( 5 / 2 min) ); # threshold( field(32 / 1 day), mfg(2 / hour) ); # threshold( field( 2 / min), mfg(1 ) ); # threshold( field(32 / day), mfg_file(P8CHIP_OFFNODE_BUS_CES) ); /** Threshold of 1 */ actionclass threshold1 { threshold( field(1) ); }; /** Threshold of 32 per day */ actionclass threshold32pday { threshold( field(32 / day) ); }; /** Threshold of 5 per hour */ actionclass threshold5phour { threshold( field(5 / hour) ); }; ################################################################################ # Threshold and Mask policy ################################################################################ /** * Threshold 32/day (field) and 1 (mnfg). Do not predictively callout on * threshold in the field, instead just mask. */ actionclass threshold_and_mask { threshold32pday; funccall("ClearServiceCallFlag"); }; actionclass threshold_and_mask_self { calloutSelfMed; threshold_and_mask; }; ################################################################################ # Special Flags # ################################################################################ /** SUE source */ actionclass SueSource { flag(UERE); }; /** SUE originated from somewhere else */ actionclass SueSeen { flag(SUE); }; ################################################################################ # Simple Callouts # ################################################################################ # Callout self actionclass calloutSelfHigh { callout(MRU_HIGH); }; actionclass calloutSelfMed { callout(MRU_MED); }; actionclass calloutSelfMedA { callout(MRU_MEDA); }; actionclass calloutSelfLow { callout(MRU_LOW); }; # 2nd Level Support actionclass callout2ndLvlMed { callout(procedure(LEVEL2_SUPPORT), MRU_MED); }; /** Callout self with low priority but don't gard it */ actionclass calloutSelfLowNoGard { callout(MRU_LOW, NO_GARD); }; ################################################################################ # Callouts with thresholds # ################################################################################ actionclass self_th_1 { calloutSelfMed; threshold1; }; actionclass self_th_5perHour { calloutSelfMed; threshold5phour; }; actionclass self_th_32perDay { calloutSelfMed; threshold32pday; }; actionclass level2_th_1 { callout2ndLvlMed; threshold1; }; ################################################################################ # Callouts with flags # ################################################################################ actionclass self_th_1_UERE { self_th_1; SueSource; }; actionclass level2_th_1_UERE { level2_th_1; SueSource; }; ################################################################################ # Default callouts # ################################################################################ /** Default action for an unexpected unmasked bit */ actionclass defaultMaskedError { callout2ndLvlMed; threshold1; }; /** Default TBD action */ actionclass TBDDefaultCallout { callout2ndLvlMed; threshold( field(32 / day), mfg(32 / day) ); };