summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/framework/resolution/iipEregResolution.h
blob: 5aa3d31db00a240ef02925e0951e4a89aa9aaa41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* $Source: src/usr/diag/prdf/framework/resolution/iipEregResolution.h $  */
/*                                                                        */
/* IBM CONFIDENTIAL                                                       */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 1996,2012              */
/*                                                                        */
/* p1                                                                     */
/*                                                                        */
/* Object Code Only (OCO) source materials                                */
/* Licensed Internal Code Source Materials                                */
/* IBM HostBoot Licensed Internal Code                                    */
/*                                                                        */
/* The source code for this program is not published or otherwise         */
/* divested of its trade secrets, irrespective of what has been           */
/* deposited with the U.S. Copyright Office.                              */
/*                                                                        */
/* Origin: 30                                                             */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */

#ifndef iipEregResolution_h
#define iipEregResolution_h

// Class Description *************************************************
//
//  Name:  EregResolution     concrete class
//  Base class: Resolution
//
//  Description: Resolve an error by analyzing an error register
//  Usage:
//
//    ResolutionMap ereg1Resolutions(...);
//    ErrorRegister ereg1(....);
//    ErrorRegister ereg2(....);
//
//    Resolution *r = new EregResolution(ereg2);
//    ereg1Resolutions.add(BIT_LIST_STRING_20,r); // If bit 20 of ereg1 on then
//                                                // Resolution = ereg2.Analyze();
//
//
//
// End Class Description *********************************************

//--------------------------------------------------------------------
// Includes
//--------------------------------------------------------------------
#if !defined(iipResolution_h)
#include <iipResolution.h>
#endif

//--------------------------------------------------------------------
//  Forward References
//--------------------------------------------------------------------
class ErrorRegisterType;

class EregResolution : public Resolution
{
  public:
  EregResolution();
  EregResolution(ErrorRegisterType & er);
  // Function Specification ********************************************
  //
  // Purpose:      Constructor
  // Parameters:   ErrorRegister object to be invoked by Resolve()
  // Returns:      Nothing
  // Requirements: None
  // Promises:     Object created
  // Exceptions:   None
  // Concurrency:  synchronous
  // Notes:
  //
  // End Function Specification ****************************************

  // ~EregResolution();
  // Function Specification ********************************************
  //
  // Purpose:      Destruction
  // Parameters:   None.
  // Returns:      No value returned
  // Requirements: None.
  // Promises:     None.
  // Exceptions:   None.
  // Concurrency:  Reentrant
  // Notes:        Compiler default is sufficient
  //
  // End Function Specification ****************************************
  // Copy ctor   - compiler default is sufficient
  // Assignment  - compiler default is sufficient

    virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & data);
  // Function Specification ********************************************
  //
  // Purpose:
  // Parameters:   None.
  // Returns:      No value returned
  // Requirements: None.
  // Promises:     None.
  // Exceptions:   None.
  // Concurrency:  Reentrant
  // Notes:        Compiler default is sufficient
  //
  // End Function Specification ****************************************

  private:  // functions
  private:  // Data

    ErrorRegisterType * errorRegister;

};

inline
EregResolution::EregResolution(ErrorRegisterType &er)
: errorRegister(&er) {}

inline
EregResolution::EregResolution()
  : errorRegister(NULL) {}

#endif /* iipEregResolution_h */

// Change Log *********************************************************
//
//  Flag Reason  Vers Date     Coder    Description
//  ---- ------- ---- -------- -------- -------------------------------
//              v4r1m0 05/13/96  DRG    Initial Creation
//  pw01 494911  f310 03/04/05 iawillia Use ErrorRegisterType instead of
//                                          ErrorRegister.
//                   f522283 fips300 09/27/05 dgilbert Make class FlyWeight -able
// End Change Log *****************************************************
OpenPOWER on IntegriCloud