summaryrefslogtreecommitdiff
path: root/src/md/datasource/targettypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/md/datasource/targettypes.h')
-rw-r--r--src/md/datasource/targettypes.h360
1 files changed, 360 insertions, 0 deletions
diff --git a/src/md/datasource/targettypes.h b/src/md/datasource/targettypes.h
new file mode 100644
index 0000000000..6f7acbc595
--- /dev/null
+++ b/src/md/datasource/targettypes.h
@@ -0,0 +1,360 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+//*****************************************************************************
+// TargetTypes.h
+//
+
+//
+//*****************************************************************************
+
+#ifndef _MD_TARGET_TYPES_
+#define _MD_TARGET_TYPES_
+
+#include "datatargetreader.h"
+
+class Target_CMiniMdSchemaBase : public TargetObject
+{
+public:
+ Target_CMiniMdSchemaBase();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ ULONG32 m_ulReserved;
+ BYTE m_major;
+ BYTE m_minor;
+ BYTE m_heaps;
+ BYTE m_rid;
+ ULONG64 m_maskvalid;
+ ULONG64 m_sorted;
+};
+
+class Target_CMiniMdSchema : public Target_CMiniMdSchemaBase
+{
+public:
+ Target_CMiniMdSchema();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ ULONG32 m_cRecs[TBL_COUNT];
+ ULONG32 m_ulExtra;
+};
+
+class Target_CMiniColDef : public TargetObject
+{
+public:
+ Target_CMiniColDef();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ BYTE m_Type;
+ BYTE m_oColumn;
+ BYTE m_cbColumn;
+};
+
+class Target_CMiniTableDef : public TargetObject
+{
+public:
+ Target_CMiniTableDef();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ NewArrayHolder<Target_CMiniColDef> m_pColDefs;
+ BYTE m_cCols;
+ BYTE m_iKey;
+ BYTE m_cbRec;
+
+private:
+ // don't copy this type - avoids needing to deep copy m_pColDefs
+ Target_CMiniTableDef(const Target_CMiniTableDef & rhs) { _ASSERTE(!"Don't copy"); }
+ Target_CMiniTableDef & operator=(const Target_CMiniTableDef &)
+ {
+ _ASSERTE(!"Don't copy");
+ return *this;
+ }
+};
+
+class Target_CMiniMdBase : public TargetObject
+{
+public:
+ Target_CMiniMdBase();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ Target_CMiniMdSchema m_Schema;
+ ULONG32 m_TblCount;
+ BOOL m_fVerifiedByTrustedSource;
+ Target_CMiniTableDef m_TableDefs[TBL_COUNT];
+
+ ULONG32 m_iStringsMask;
+ ULONG32 m_iGuidsMask;
+ ULONG32 m_iBlobsMask;
+};
+
+class Target_CMiniMdTemplate_CMiniMdRW : public Target_CMiniMdBase
+{
+};
+
+class Target_MapSHash : public TargetObject
+{
+public:
+ Target_MapSHash();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ CORDB_ADDRESS m_table;
+ ULONG32 m_tableSize;
+ ULONG32 m_tableCount;
+ ULONG32 m_tableOccupied;
+ ULONG32 m_tableMax;
+};
+
+class Target_CChainedHash : public TargetObject
+{
+public:
+ Target_CChainedHash();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ CORDB_ADDRESS m_rgData;
+ ULONG32 m_iBuckets;
+ ULONG32 m_iSize;
+ ULONG32 m_iCount;
+ ULONG32 m_iMaxChain;
+ ULONG32 m_iFree;
+};
+
+class Target_CStringPoolHash : public Target_CChainedHash
+{
+public:
+ Target_CStringPoolHash();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ CORDB_ADDRESS m_Pool;
+};
+
+class Target_StgPoolSeg : public TargetObject
+{
+public:
+ Target_StgPoolSeg();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ CORDB_ADDRESS m_pSegData;
+ CORDB_ADDRESS m_pNextSeg;
+ ULONG32 m_cbSegSize;
+ ULONG32 m_cbSegNext;
+};
+
+class Target_HotHeap : public TargetObject
+{
+public:
+ Target_HotHeap();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ CORDB_ADDRESS m_pHotHeapHeader;
+};
+
+class Target_StgPoolReadOnly : public Target_StgPoolSeg
+{
+public:
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ Target_HotHeap m_HotHeap;
+};
+
+class Target_StgPool : public Target_StgPoolReadOnly
+{
+public:
+ Target_StgPool();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ ULONG32 m_ulGrowInc;
+ CORDB_ADDRESS m_pCurSeg;
+ ULONG32 m_cbCurSegOffset;
+ BOOL m_bFree;
+ BOOL m_bReadOnly;
+ ULONG32 m_nVariableAlignmentMask;
+ ULONG32 m_cbStartOffsetOfEdit;
+ BOOL m_fValidOffsetOfEdit;
+};
+
+class Target_StgStringPool : public Target_StgPool
+{
+public:
+ Target_StgStringPool();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ Target_CStringPoolHash m_Hash;
+ BOOL m_bHash;
+};
+
+class Target_StringHeapRW : public Target_StgStringPool
+{
+};
+
+class Target_CBlobPoolHash : public Target_CChainedHash
+{
+public:
+ Target_CBlobPoolHash();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ CORDB_ADDRESS m_Pool;
+};
+
+class Target_StgBlobPool : public Target_StgPool
+{
+public:
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ Target_CBlobPoolHash m_Hash;
+};
+
+class Target_BlobHeapRW : public Target_StgBlobPool
+{
+};
+
+class Target_CGuidPoolHash : public Target_CChainedHash
+{
+public:
+ Target_CGuidPoolHash();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ CORDB_ADDRESS m_Pool;
+};
+
+class Target_StgGuidPool : public Target_StgPool
+{
+public:
+ Target_StgGuidPool();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ Target_CGuidPoolHash m_Hash;
+ BOOL m_bHash;
+};
+
+class Target_GuidHeapRW : public Target_StgGuidPool
+{
+};
+
+class Target_RecordPool : public Target_StgPool
+{
+public:
+ Target_RecordPool();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ ULONG32 m_cbRec;
+};
+
+class Target_TableRW : public Target_RecordPool
+{
+};
+
+class Target_OptionValue : public TargetObject
+{
+public:
+ Target_OptionValue();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ ULONG32 m_DupCheck;
+ ULONG32 m_RefToDefCheck;
+ ULONG32 m_NotifyRemap;
+ ULONG32 m_UpdateMode;
+ ULONG32 m_ErrorIfEmitOutOfOrder;
+ ULONG32 m_ThreadSafetyOptions;
+ ULONG32 m_ImportOption;
+ ULONG32 m_LinkerOption;
+ ULONG32 m_GenerateTCEAdapters;
+ CORDB_ADDRESS m_RuntimeVersion;
+ ULONG32 m_MetadataVersion;
+ ULONG32 m_MergeOptions;
+ ULONG32 m_InitialSize;
+ ULONG32 m_LocalRefPreservation;
+};
+
+class Target_CMiniMdRW : public Target_CMiniMdTemplate_CMiniMdRW
+{
+public:
+ Target_CMiniMdRW();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ CORDB_ADDRESS m_pMemberRefHash;
+ CORDB_ADDRESS m_pMemberDefHash;
+ CORDB_ADDRESS m_pLookUpHashs[TBL_COUNT];
+ Target_MapSHash m_StringPoolOffsetHash;
+ CORDB_ADDRESS m_pNamedItemHash;
+ ULONG32 m_maxRid;
+ ULONG32 m_limRid;
+ ULONG32 m_maxIx;
+ ULONG32 m_limIx;
+ ULONG32 m_eGrow;
+ Target_TableRW m_Tables[TBL_COUNT];
+ CORDB_ADDRESS m_pVS[TBL_COUNT];
+ Target_StringHeapRW m_StringHeap;
+ Target_BlobHeapRW m_BlobHeap;
+ Target_BlobHeapRW m_UserStringHeap;
+ Target_GuidHeapRW m_GuidHeap;
+ CORDB_ADDRESS m_pHandler;
+ ULONG32 m_cbSaveSize;
+ BOOL m_fIsReadOnly;
+ BOOL m_bPreSaveDone;
+ BOOL m_bSaveCompressed;
+ BOOL m_bPostGSSMod;
+ CORDB_ADDRESS m_pMethodMap;
+ CORDB_ADDRESS m_pFieldMap;
+ CORDB_ADDRESS m_pPropertyMap;
+ CORDB_ADDRESS m_pEventMap;
+ CORDB_ADDRESS m_pParamMap;
+ CORDB_ADDRESS m_pFilterTable;
+ CORDB_ADDRESS m_pHostFilter;
+ CORDB_ADDRESS m_pTokenRemapManager;
+ Target_OptionValue m_OptionValue;
+ Target_CMiniMdSchema m_StartupSchema;
+ BYTE m_bSortable[TBL_COUNT];
+ CORDB_ADDRESS dbg_m_pLock;
+ BOOL m_fMinimalDelta;
+ CORDB_ADDRESS m_rENCRecs;
+};
+
+class Target_CLiteWeightStgdb_CMiniMdRW : public TargetObject
+{
+public:
+ Target_CLiteWeightStgdb_CMiniMdRW();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ Target_CMiniMdRW m_MiniMd;
+ CORDB_ADDRESS m_pvMd;
+ ULONG32 m_cbMd;
+};
+
+class Target_CLiteWeightStgdbRW : public Target_CLiteWeightStgdb_CMiniMdRW
+{
+public:
+ Target_CLiteWeightStgdbRW();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ ULONG32 m_cbSaveSize;
+ BOOL m_bSaveCompressed;
+ CORDB_ADDRESS m_pImage;
+ ULONG32 m_dwImageSize;
+ ULONG32 m_dwPEKind;
+ ULONG32 m_dwMachine;
+ CORDB_ADDRESS m_pStreamList;
+ CORDB_ADDRESS m_pNextStgdb;
+ ULONG32 m_eFileType;
+ CORDB_ADDRESS m_wszFileName;
+ ULONG32 m_dwDatabaseLFT;
+ ULONG32 m_dwDatabaseLFS;
+ CORDB_ADDRESS m_pStgIO;
+};
+
+class Target_MDInternalRW : public TargetObject
+{
+public:
+ Target_MDInternalRW();
+ virtual HRESULT ReadFrom(DataTargetReader & reader);
+
+ Target_CLiteWeightStgdbRW m_pStgdb;
+ ULONG32 m_tdModule;
+ ULONG32 m_cRefs;
+ BOOL m_fOwnStgdb;
+ CORDB_ADDRESS m_pUnk;
+ CORDB_ADDRESS m_pUserUnk;
+ CORDB_ADDRESS m_pIMetaDataHelper;
+ CORDB_ADDRESS m_pSemReadWrite;
+ BOOL m_fOwnSem;
+};
+
+#endif