blob: e87d702107e7beab81143e256f828e99a5de544f [file] [log] [blame]
Zane Shelleyfd3f9cc2019-07-29 15:02:24 -05001/* IBM_PROLOG_BEGIN_TAG */
2/* This is an automatically generated prolog. */
3/* */
4/* $Source: src/usr/diag/prdf/common/framework/register/iipMopRegisterAccessScanComm.h $ */
5/* */
6/* OpenPOWER HostBoot Project */
7/* */
8/* Contributors Listed Below - COPYRIGHT 1996,2017 */
9/* [+] International Business Machines Corp. */
10/* */
11/* */
12/* Licensed under the Apache License, Version 2.0 (the "License"); */
13/* you may not use this file except in compliance with the License. */
14/* You may obtain a copy of the License at */
15/* */
16/* http://www.apache.org/licenses/LICENSE-2.0 */
17/* */
18/* Unless required by applicable law or agreed to in writing, software */
19/* distributed under the License is distributed on an "AS IS" BASIS, */
20/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
21/* implied. See the License for the specific language governing */
22/* permissions and limitations under the License. */
23/* */
24/* IBM_PROLOG_END_TAG */
25
26#ifndef iipMopRegisterAccessScanComm_h
27#define iipMopRegisterAccessScanComm_h
28
29// Class Specification *************************************************
30//
31// Class name: MopRegisterAccessScanComm
32// Parent class: MopRegisterAccess.
33//
34// Summary: This class provides access to hardware register data via
35// a MOP Scan Comm routine.
36//
37// Cardinality: 0
38//
39// Performance/Implementation:
40// Space Complexity: Constant
41// Time Complexity: All member functions constant unless otherwise
42// stated.
43//
44// Usage Examples:
45//
46//
47//
48// End Class Specification *********************************************
49
50// Includes
51
52#pragma interface
53
54#ifndef iipMopRegisterAccess_h
55#include <iipMopRegisterAccess.h>
56#endif
57
58namespace PRDF
59{
60
61// Forward References
62class MopRegisterAccessScanComm : public MopRegisterAccess
63{
64public:
65
66 // Function Specification ********************************************
67 //
68 // Purpose: CTOR
69 // Parameters: None
70 // Returns: No value returned.
71 // Requirements: None.
72 // Promises: All data members are initialized.
73 // Exceptions: None.
74 // Concurrency: N/A
75 // Note: Multiple chip IDs are for chips that MOPs must
76 // access at the same time when performing a Scan
77 // Comm operation (ie STINGER & ARROW chips)
78 //
79 // End Function Specification //////////////////////////////////////
80
81 // MopRegisterAccessScanComm(const MopRegisterAccessScanComm & scr);
82 // Function Specification ********************************************
83 //
84 // Purpose: Copy
85 // Parameters: scr: Reference to instance to copy
86 // Returns: No value returned.
87 // Requirements: None.
88 // Promises: All data members will be copied (Deep copy).
89 // Exceptions: None.
90 // Concurrency: N/A.
91 // Notes: This constructor is not declared. This compiler generated
92 // default definition is sufficient.
93 //
94 // End Function Specification ****************************************
95
96 // virtual ~MopRegisterAccessScanComm(void);
97 // Function Specification ********************************************
98 //
99 // Purpose: Destruction
100 // Parameters: None.
101 // Returns: No value returned
102 // Requirements: None.
103 // Promises: None.
104 // Exceptions: None.
105 // Concurrency: N/A
106 // Notes: This destructor is not declared. This compiler generated
107 // default definition is sufficient.
108 //
109 // End Function Specification ****************************************
110
111 // MopRegisterAccessScanComm & operator=(const MopRegisterAccessScanComm & scr);
112 // Function Specification ********************************************
113 //
114 // Purpose: Assigment
115 // Parameters: d: Reference to instance to assign from
116 // Returns: Reference to this instance
117 // Requirements: None.
118 // Promises: All data members are assigned to
119 // Exceptions: None.
120 // Concurrency: N/A.
121 // Notes: This assingment operator is not declared. The compiler
122 // generated default definition is sufficient.
123 //
124 // End Function Specification ****************************************
125
126 virtual uint32_t Access(BitString & bs,
127 uint32_t registerId,
128 Operation operation) const;
129 // Function Specification ********************************************
130 //
131 // Purpose: This function reads or writes the hardware according
132 // to the specified operation.
133 // Parameters: bs: Bit string to retrieve(for write) or store data
134 // (from read)
135 // registerId: ScanComm register address
136 // operation: Indicates either read or write operation
137 // Returns: Hardware OPs return code
138 // Requirements: bs.Length() == long enough
139 // Promises: For read operation, bs is modified to reflect hardware
140 // register state
141 // Exceptions: None.
142 // Concurrency: Nonreentrant.
143 // Note: The first bs.Length() bits from the Hardware OPs read
144 // are set/reset in bs (from left to right)
145 // For a write, the first bs.Length() bits are written
146 // to the hardware register with right padded 0's if
147 // needed
148 //
149 // End Function Specification ****************************************
150
151
152private: // DATA
153
154};
155
156} // end namespace PRDF
157
158#endif