1 | // Licensed to the .NET Foundation under one or more agreements. |
---|---|
2 | // The .NET Foundation licenses this file to you under the MIT license. |
3 | // See the LICENSE file in the project root for more information. |
4 | //***************************************************************************** |
5 | // TargetTypes.h |
6 | // |
7 | |
8 | // |
9 | //***************************************************************************** |
10 | |
11 | #ifndef _MD_TARGET_TYPES_ |
12 | #define _MD_TARGET_TYPES_ |
13 | |
14 | #include "datatargetreader.h" |
15 | |
16 | class Target_CMiniMdSchemaBase : public TargetObject |
17 | { |
18 | public: |
19 | Target_CMiniMdSchemaBase(); |
20 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
21 | |
22 | ULONG32 m_ulReserved; |
23 | BYTE m_major; |
24 | BYTE m_minor; |
25 | BYTE m_heaps; |
26 | BYTE m_rid; |
27 | ULONG64 m_maskvalid; |
28 | ULONG64 m_sorted; |
29 | }; |
30 | |
31 | class Target_CMiniMdSchema : public Target_CMiniMdSchemaBase |
32 | { |
33 | public: |
34 | Target_CMiniMdSchema(); |
35 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
36 | |
37 | ULONG32 m_cRecs[TBL_COUNT]; |
38 | ULONG32 m_ulExtra; |
39 | }; |
40 | |
41 | class Target_CMiniColDef : public TargetObject |
42 | { |
43 | public: |
44 | Target_CMiniColDef(); |
45 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
46 | |
47 | BYTE m_Type; |
48 | BYTE m_oColumn; |
49 | BYTE m_cbColumn; |
50 | }; |
51 | |
52 | class Target_CMiniTableDef : public TargetObject |
53 | { |
54 | public: |
55 | Target_CMiniTableDef(); |
56 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
57 | |
58 | NewArrayHolder<Target_CMiniColDef> m_pColDefs; |
59 | BYTE m_cCols; |
60 | BYTE m_iKey; |
61 | BYTE m_cbRec; |
62 | |
63 | private: |
64 | // don't copy this type - avoids needing to deep copy m_pColDefs |
65 | Target_CMiniTableDef(const Target_CMiniTableDef & rhs) { _ASSERTE(!"Don't copy"); } |
66 | Target_CMiniTableDef & operator=(const Target_CMiniTableDef &) |
67 | { |
68 | _ASSERTE(!"Don't copy"); |
69 | return *this; |
70 | } |
71 | }; |
72 | |
73 | class Target_CMiniMdBase : public TargetObject |
74 | { |
75 | public: |
76 | Target_CMiniMdBase(); |
77 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
78 | |
79 | Target_CMiniMdSchema m_Schema; |
80 | ULONG32 m_TblCount; |
81 | BOOL m_fVerifiedByTrustedSource; |
82 | Target_CMiniTableDef m_TableDefs[TBL_COUNT]; |
83 | |
84 | ULONG32 m_iStringsMask; |
85 | ULONG32 m_iGuidsMask; |
86 | ULONG32 m_iBlobsMask; |
87 | }; |
88 | |
89 | class Target_CMiniMdTemplate_CMiniMdRW : public Target_CMiniMdBase |
90 | { |
91 | }; |
92 | |
93 | class Target_MapSHash : public TargetObject |
94 | { |
95 | public: |
96 | Target_MapSHash(); |
97 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
98 | |
99 | CORDB_ADDRESS m_table; |
100 | ULONG32 m_tableSize; |
101 | ULONG32 m_tableCount; |
102 | ULONG32 m_tableOccupied; |
103 | ULONG32 m_tableMax; |
104 | }; |
105 | |
106 | class Target_CChainedHash : public TargetObject |
107 | { |
108 | public: |
109 | Target_CChainedHash(); |
110 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
111 | |
112 | CORDB_ADDRESS m_rgData; |
113 | ULONG32 m_iBuckets; |
114 | ULONG32 m_iSize; |
115 | ULONG32 m_iCount; |
116 | ULONG32 m_iMaxChain; |
117 | ULONG32 m_iFree; |
118 | }; |
119 | |
120 | class Target_CStringPoolHash : public Target_CChainedHash |
121 | { |
122 | public: |
123 | Target_CStringPoolHash(); |
124 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
125 | |
126 | CORDB_ADDRESS m_Pool; |
127 | }; |
128 | |
129 | class Target_StgPoolSeg : public TargetObject |
130 | { |
131 | public: |
132 | Target_StgPoolSeg(); |
133 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
134 | |
135 | CORDB_ADDRESS m_pSegData; |
136 | CORDB_ADDRESS m_pNextSeg; |
137 | ULONG32 m_cbSegSize; |
138 | ULONG32 m_cbSegNext; |
139 | }; |
140 | |
141 | class Target_HotHeap : public TargetObject |
142 | { |
143 | public: |
144 | Target_HotHeap(); |
145 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
146 | |
147 | CORDB_ADDRESS m_pHotHeapHeader; |
148 | }; |
149 | |
150 | class Target_StgPoolReadOnly : public Target_StgPoolSeg |
151 | { |
152 | public: |
153 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
154 | |
155 | Target_HotHeap m_HotHeap; |
156 | }; |
157 | |
158 | class Target_StgPool : public Target_StgPoolReadOnly |
159 | { |
160 | public: |
161 | Target_StgPool(); |
162 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
163 | |
164 | ULONG32 m_ulGrowInc; |
165 | CORDB_ADDRESS m_pCurSeg; |
166 | ULONG32 m_cbCurSegOffset; |
167 | BOOL m_bFree; |
168 | BOOL m_bReadOnly; |
169 | ULONG32 m_nVariableAlignmentMask; |
170 | ULONG32 m_cbStartOffsetOfEdit; |
171 | BOOL m_fValidOffsetOfEdit; |
172 | }; |
173 | |
174 | class Target_StgStringPool : public Target_StgPool |
175 | { |
176 | public: |
177 | Target_StgStringPool(); |
178 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
179 | |
180 | Target_CStringPoolHash m_Hash; |
181 | BOOL m_bHash; |
182 | }; |
183 | |
184 | class Target_StringHeapRW : public Target_StgStringPool |
185 | { |
186 | }; |
187 | |
188 | class Target_CBlobPoolHash : public Target_CChainedHash |
189 | { |
190 | public: |
191 | Target_CBlobPoolHash(); |
192 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
193 | |
194 | CORDB_ADDRESS m_Pool; |
195 | }; |
196 | |
197 | class Target_StgBlobPool : public Target_StgPool |
198 | { |
199 | public: |
200 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
201 | |
202 | Target_CBlobPoolHash m_Hash; |
203 | }; |
204 | |
205 | class Target_BlobHeapRW : public Target_StgBlobPool |
206 | { |
207 | }; |
208 | |
209 | class Target_CGuidPoolHash : public Target_CChainedHash |
210 | { |
211 | public: |
212 | Target_CGuidPoolHash(); |
213 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
214 | |
215 | CORDB_ADDRESS m_Pool; |
216 | }; |
217 | |
218 | class Target_StgGuidPool : public Target_StgPool |
219 | { |
220 | public: |
221 | Target_StgGuidPool(); |
222 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
223 | |
224 | Target_CGuidPoolHash m_Hash; |
225 | BOOL m_bHash; |
226 | }; |
227 | |
228 | class Target_GuidHeapRW : public Target_StgGuidPool |
229 | { |
230 | }; |
231 | |
232 | class Target_RecordPool : public Target_StgPool |
233 | { |
234 | public: |
235 | Target_RecordPool(); |
236 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
237 | |
238 | ULONG32 m_cbRec; |
239 | }; |
240 | |
241 | class Target_TableRW : public Target_RecordPool |
242 | { |
243 | }; |
244 | |
245 | class Target_OptionValue : public TargetObject |
246 | { |
247 | public: |
248 | Target_OptionValue(); |
249 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
250 | |
251 | ULONG32 m_DupCheck; |
252 | ULONG32 m_RefToDefCheck; |
253 | ULONG32 m_NotifyRemap; |
254 | ULONG32 m_UpdateMode; |
255 | ULONG32 m_ErrorIfEmitOutOfOrder; |
256 | ULONG32 m_ThreadSafetyOptions; |
257 | ULONG32 m_ImportOption; |
258 | ULONG32 m_LinkerOption; |
259 | ULONG32 m_GenerateTCEAdapters; |
260 | CORDB_ADDRESS m_RuntimeVersion; |
261 | ULONG32 m_MetadataVersion; |
262 | ULONG32 m_MergeOptions; |
263 | ULONG32 m_InitialSize; |
264 | ULONG32 m_LocalRefPreservation; |
265 | }; |
266 | |
267 | class Target_CMiniMdRW : public Target_CMiniMdTemplate_CMiniMdRW |
268 | { |
269 | public: |
270 | Target_CMiniMdRW(); |
271 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
272 | |
273 | CORDB_ADDRESS m_pMemberRefHash; |
274 | CORDB_ADDRESS m_pMemberDefHash; |
275 | CORDB_ADDRESS m_pLookUpHashs[TBL_COUNT]; |
276 | Target_MapSHash m_StringPoolOffsetHash; |
277 | CORDB_ADDRESS m_pNamedItemHash; |
278 | ULONG32 m_maxRid; |
279 | ULONG32 m_limRid; |
280 | ULONG32 m_maxIx; |
281 | ULONG32 m_limIx; |
282 | ULONG32 m_eGrow; |
283 | Target_TableRW m_Tables[TBL_COUNT]; |
284 | CORDB_ADDRESS m_pVS[TBL_COUNT]; |
285 | Target_StringHeapRW m_StringHeap; |
286 | Target_BlobHeapRW m_BlobHeap; |
287 | Target_BlobHeapRW m_UserStringHeap; |
288 | Target_GuidHeapRW m_GuidHeap; |
289 | CORDB_ADDRESS m_pHandler; |
290 | ULONG32 m_cbSaveSize; |
291 | BOOL m_fIsReadOnly; |
292 | BOOL m_bPreSaveDone; |
293 | BOOL m_bSaveCompressed; |
294 | BOOL m_bPostGSSMod; |
295 | CORDB_ADDRESS m_pMethodMap; |
296 | CORDB_ADDRESS m_pFieldMap; |
297 | CORDB_ADDRESS m_pPropertyMap; |
298 | CORDB_ADDRESS m_pEventMap; |
299 | CORDB_ADDRESS m_pParamMap; |
300 | CORDB_ADDRESS m_pFilterTable; |
301 | CORDB_ADDRESS m_pHostFilter; |
302 | CORDB_ADDRESS m_pTokenRemapManager; |
303 | Target_OptionValue m_OptionValue; |
304 | Target_CMiniMdSchema m_StartupSchema; |
305 | BYTE m_bSortable[TBL_COUNT]; |
306 | CORDB_ADDRESS dbg_m_pLock; |
307 | BOOL m_fMinimalDelta; |
308 | CORDB_ADDRESS m_rENCRecs; |
309 | }; |
310 | |
311 | class Target_CLiteWeightStgdb_CMiniMdRW : public TargetObject |
312 | { |
313 | public: |
314 | Target_CLiteWeightStgdb_CMiniMdRW(); |
315 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
316 | |
317 | Target_CMiniMdRW m_MiniMd; |
318 | CORDB_ADDRESS m_pvMd; |
319 | ULONG32 m_cbMd; |
320 | }; |
321 | |
322 | class Target_CLiteWeightStgdbRW : public Target_CLiteWeightStgdb_CMiniMdRW |
323 | { |
324 | public: |
325 | Target_CLiteWeightStgdbRW(); |
326 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
327 | |
328 | ULONG32 m_cbSaveSize; |
329 | BOOL m_bSaveCompressed; |
330 | CORDB_ADDRESS m_pImage; |
331 | ULONG32 m_dwImageSize; |
332 | ULONG32 m_dwPEKind; |
333 | ULONG32 m_dwMachine; |
334 | CORDB_ADDRESS m_pStreamList; |
335 | CORDB_ADDRESS m_pNextStgdb; |
336 | ULONG32 m_eFileType; |
337 | CORDB_ADDRESS m_wszFileName; |
338 | ULONG32 m_dwDatabaseLFT; |
339 | ULONG32 m_dwDatabaseLFS; |
340 | CORDB_ADDRESS m_pStgIO; |
341 | }; |
342 | |
343 | class Target_MDInternalRW : public TargetObject |
344 | { |
345 | public: |
346 | Target_MDInternalRW(); |
347 | virtual HRESULT ReadFrom(DataTargetReader & reader); |
348 | |
349 | Target_CLiteWeightStgdbRW m_pStgdb; |
350 | ULONG32 m_tdModule; |
351 | ULONG32 m_cRefs; |
352 | BOOL m_fOwnStgdb; |
353 | CORDB_ADDRESS m_pUnk; |
354 | CORDB_ADDRESS m_pUserUnk; |
355 | CORDB_ADDRESS m_pIMetaDataHelper; |
356 | CORDB_ADDRESS m_pSemReadWrite; |
357 | BOOL m_fOwnSem; |
358 | }; |
359 | |
360 | #endif |
361 |