105
* SSM descriptor table for the CSAM structure.
107
static const SSMFIELD g_aCsamFields[] =
109
/** @todo there are more fields that can be ignored here. */
110
SSMFIELD_ENTRY_IGNORE( CSAM, offVM),
111
SSMFIELD_ENTRY_PAD_HC64( CSAM, Alignment0, sizeof(uint32_t)),
112
SSMFIELD_ENTRY_IGN_HCPTR( CSAM, pPageTree),
113
SSMFIELD_ENTRY( CSAM, aDangerousInstr),
114
SSMFIELD_ENTRY( CSAM, cDangerousInstr),
115
SSMFIELD_ENTRY( CSAM, iDangerousInstr),
116
SSMFIELD_ENTRY_RCPTR( CSAM, pPDBitmapGC), /// @todo ignore this?
117
SSMFIELD_ENTRY_RCPTR( CSAM, pPDHCBitmapGC), /// @todo ignore this?
118
SSMFIELD_ENTRY_IGN_HCPTR( CSAM, pPDBitmapHC),
119
SSMFIELD_ENTRY_IGN_HCPTR( CSAM, pPDGCBitmapHC),
120
SSMFIELD_ENTRY_IGN_HCPTR( CSAM, savedstate.pSSM),
121
SSMFIELD_ENTRY( CSAM, savedstate.cPageRecords),
122
SSMFIELD_ENTRY( CSAM, savedstate.cPatchPageRecords),
123
SSMFIELD_ENTRY( CSAM, cDirtyPages),
124
SSMFIELD_ENTRY_RCPTR_ARRAY( CSAM, pvDirtyBasePage),
125
SSMFIELD_ENTRY_RCPTR_ARRAY( CSAM, pvDirtyFaultPage),
126
SSMFIELD_ENTRY( CSAM, cPossibleCodePages),
127
SSMFIELD_ENTRY_RCPTR_ARRAY( CSAM, pvPossibleCodePage),
128
SSMFIELD_ENTRY_RCPTR_ARRAY( CSAM, pvCallInstruction),
129
SSMFIELD_ENTRY( CSAM, iCallInstruction),
130
SSMFIELD_ENTRY( CSAM, fScanningStarted),
131
SSMFIELD_ENTRY( CSAM, fGatesChecked),
132
SSMFIELD_ENTRY_PAD_HC( CSAM, Alignment1, 6, 2),
133
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrTraps),
134
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrPages),
135
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrPagesInv),
136
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrRemovedPages),
137
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrPatchPages),
138
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrPageNPHC),
139
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrPageNPGC),
140
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrFlushes),
141
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrFlushesSkipped),
142
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrKnownPagesHC),
143
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrKnownPagesGC),
144
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrInstr),
145
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrBytesRead),
146
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrOpcodeRead),
147
SSMFIELD_ENTRY_IGNORE( CSAM, StatTime),
148
SSMFIELD_ENTRY_IGNORE( CSAM, StatTimeCheckAddr),
149
SSMFIELD_ENTRY_IGNORE( CSAM, StatTimeAddrConv),
150
SSMFIELD_ENTRY_IGNORE( CSAM, StatTimeFlushPage),
151
SSMFIELD_ENTRY_IGNORE( CSAM, StatTimeDisasm),
152
SSMFIELD_ENTRY_IGNORE( CSAM, StatFlushDirtyPages),
153
SSMFIELD_ENTRY_IGNORE( CSAM, StatCheckGates),
154
SSMFIELD_ENTRY_IGNORE( CSAM, StatCodePageModified),
155
SSMFIELD_ENTRY_IGNORE( CSAM, StatDangerousWrite),
156
SSMFIELD_ENTRY_IGNORE( CSAM, StatInstrCacheHit),
157
SSMFIELD_ENTRY_IGNORE( CSAM, StatInstrCacheMiss),
158
SSMFIELD_ENTRY_IGNORE( CSAM, StatPagePATM),
159
SSMFIELD_ENTRY_IGNORE( CSAM, StatPageCSAM),
160
SSMFIELD_ENTRY_IGNORE( CSAM, StatPageREM),
161
SSMFIELD_ENTRY_IGNORE( CSAM, StatNrUserPages),
162
SSMFIELD_ENTRY_IGNORE( CSAM, StatPageMonitor),
163
SSMFIELD_ENTRY_IGNORE( CSAM, StatPageRemoveREMFlush),
164
SSMFIELD_ENTRY_IGNORE( CSAM, StatBitmapAlloc),
165
SSMFIELD_ENTRY_IGNORE( CSAM, StatScanNextFunction),
166
SSMFIELD_ENTRY_IGNORE( CSAM, StatScanNextFunctionFailed),
167
SSMFIELD_ENTRY_TERM()
170
/** Fake type to simplify g_aCsamPDBitmapArray construction. */
173
uint8_t *a[CSAM_PGDIRBMP_CHUNKS];
177
* SSM descriptor table for the CSAM::pPDBitmapHC array.
179
static SSMFIELD const g_aCsamPDBitmapArray[] =
181
SSMFIELD_ENTRY_HCPTR_NI_ARRAY(CSAMPDBITMAPARRAY, a),
182
SSMFIELD_ENTRY_TERM()
186
* SSM descriptor table for the CSAMPAGEREC structure.
188
static const SSMFIELD g_aCsamPageRecFields[] =
190
SSMFIELD_ENTRY_IGN_HCPTR( CSAMPAGEREC, Core.Key),
191
SSMFIELD_ENTRY_IGN_HCPTR( CSAMPAGEREC, Core.pLeft),
192
SSMFIELD_ENTRY_IGN_HCPTR( CSAMPAGEREC, Core.pRight),
193
SSMFIELD_ENTRY_IGNORE( CSAMPAGEREC, Core.uchHeight),
194
SSMFIELD_ENTRY_PAD_HC_AUTO( 3, 7),
195
SSMFIELD_ENTRY_RCPTR( CSAMPAGEREC, page.pPageGC),
196
SSMFIELD_ENTRY_PAD_HC_AUTO( 0, 4),
197
SSMFIELD_ENTRY_PAD_MSC32_AUTO( 4),
198
SSMFIELD_ENTRY_GCPHYS( CSAMPAGEREC, page.GCPhys),
199
SSMFIELD_ENTRY( CSAMPAGEREC, page.fFlags),
200
SSMFIELD_ENTRY( CSAMPAGEREC, page.uSize),
201
SSMFIELD_ENTRY_PAD_HC_AUTO( 0, 4),
202
SSMFIELD_ENTRY_HCPTR_NI( CSAMPAGEREC, page.pBitmap),
203
SSMFIELD_ENTRY( CSAMPAGEREC, page.fCode32),
204
SSMFIELD_ENTRY( CSAMPAGEREC, page.fMonitorActive),
205
SSMFIELD_ENTRY( CSAMPAGEREC, page.fMonitorInvalidation),
206
SSMFIELD_ENTRY_PAD_HC_AUTO( 1, 1),
207
SSMFIELD_ENTRY( CSAMPAGEREC, page.enmTag),
208
SSMFIELD_ENTRY( CSAMPAGEREC, page.u64Hash),
209
SSMFIELD_ENTRY_TERM()
106
214
* Initializes the CSAM.