summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/framework/register/iipXorResetErrorRegister.h
blob: a47e752612d227c4614ff64d373fd103e4c4b29c (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
133
134
135
136
137
138
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* $Source: src/usr/diag/prdf/common/framework/register/iipXorResetErrorRegister.h $ */
/*                                                                        */
/* OpenPOWER HostBoot Project                                             */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 1997,2014              */
/*                                                                        */
/* 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                                                     */

#ifndef iipXorResetErrorRegister_h
#define iipXorResetErrorRegister_h

/**
 @file iipXorResetErrorRegister.h
 @brief XorResetErrorRegister declaration
*/

// Class Description *************************************************
//
//  Name:  XorResetErrorRegister
//  Base class: ErrorRegisterMask
//
//  Description: Reset error register after analyze.  Hardware register
//               is reset by XORing value written.
//
//  Usage:  See iipResetErrorRegister.h
//
//  Implementation in iipResetErrorRegister.C
//
// End Class Description *********************************************

//--------------------------------------------------------------------
// Includes
//--------------------------------------------------------------------

#ifndef iipErrorRegisterMask_h
#include <iipErrorRegisterMask.h>
#endif

namespace PRDF
{

//--------------------------------------------------------------------
//  Forward References
//--------------------------------------------------------------------

class XorResetErrorRegister : public ErrorRegisterMask
{
public:
  XorResetErrorRegister(SCAN_COMM_REGISTER_CLASS & r,
                        ResolutionMap & rm,
                        FILTER_CLASS * f = NULL);

  // Function Specification ********************************************
  //
  // Purpose:      Constructor
  // Parameters:   r: scan comm register associated with error register
  //               rm: Map of bitList to Resolutions
  //               reset: scan comm register to write reset to
  //               f: ptr to a bitList filter object
  // Returns:      Nothing
  // Requirements: None
  // Promises:     Object created
  // Exceptions:   None
  // Concurrency:  synchronous
  // Notes:
  //
  // End Function Specification ****************************************

  //~XorResetErrorRegister();
  // 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 ****************************************

protected:  // functions

  virtual int32_t Reset(const BIT_LIST_CLASS & bit_list, STEP_CODE_DATA_STRUCT & error);
  // Function Specification ********************************************
  //
  // Purpose:      Reset the hardware & perform any other actions needed
  //               to prepare for the next Analysis
  // Parameters:   Reference to a bit list
  // Returns:      Return code
  // Requirements: None.
  // Promises:     Hardware Registers modified
  //               Bits in bit_list are turned off in SCR then SCR::Write()
  //               Mask bits set if theshold was reached (see parent class)
  // Exceptions:   None.
  // Concurrency:
  // Notes:        bit_list.GetListLength() may be zero
  //
  // End Function Specification ****************************************

private: // functions

  XorResetErrorRegister(const XorResetErrorRegister & er);  // Copy not allowed
  // Assignment not allowed
  XorResetErrorRegister & operator=(const XorResetErrorRegister & er);

private:  // Data

};


inline
XorResetErrorRegister::XorResetErrorRegister(SCAN_COMM_REGISTER_CLASS & r,
                                       ResolutionMap & rm,
                                       FILTER_CLASS * f)
: ErrorRegisterMask(r,rm,f)
{}

} // end namespace PRDF

#endif /* iipXorResetErrorRegister_h */

OpenPOWER on IntegriCloud