| 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 | // MetaModelColumnDefs.h -- Table definitions for MetaData. |
| 6 | // |
| 7 | |
| 8 | // |
| 9 | //***************************************************************************** |
| 10 | |
| 11 | #if METAMODEL_MAJOR_VER != 2 |
| 12 | #if METAMODEL_MAJOR_VER != 1 |
| 13 | #error "METAMODEL_MAJOR_VER other than 1 or 2 is not implemented" |
| 14 | #endif |
| 15 | #endif |
| 16 | // |
| 17 | // These are used by #defining appropriately, then #including this file. |
| 18 | // |
| 19 | //------------------------------------------------------------------------- |
| 20 | //Module |
| 21 | SCHEMA_TABLE_START(Module) |
| 22 | SCHEMA_ITEM(Module, USHORT, Generation) |
| 23 | SCHEMA_ITEM_STRING(Module, Name) |
| 24 | SCHEMA_ITEM_GUID(Module, Mvid) |
| 25 | SCHEMA_ITEM_GUID(Module, EncId) |
| 26 | SCHEMA_ITEM_GUID(Module, EncBaseId) |
| 27 | SCHEMA_TABLE_END(Module) |
| 28 | |
| 29 | //------------------------------------------------------------------------- |
| 30 | //TypeRef |
| 31 | SCHEMA_TABLE_START(TypeRef) |
| 32 | SCHEMA_ITEM_CDTKN(TypeRef, ResolutionScope, ResolutionScope) |
| 33 | SCHEMA_ITEM_STRING(TypeRef, Name) |
| 34 | SCHEMA_ITEM_STRING(TypeRef, Namespace) |
| 35 | SCHEMA_TABLE_END(TypeRef) |
| 36 | |
| 37 | //------------------------------------------------------------------------- |
| 38 | // TypeDef |
| 39 | SCHEMA_TABLE_START(TypeDef) |
| 40 | SCHEMA_ITEM(TypeDef, ULONG, Flags) |
| 41 | SCHEMA_ITEM_STRING(TypeDef, Name) |
| 42 | SCHEMA_ITEM_STRING(TypeDef, Namespace) |
| 43 | SCHEMA_ITEM_CDTKN(TypeDef, Extends, TypeDefOrRef) |
| 44 | SCHEMA_ITEM_RID(TypeDef, FieldList, Field) |
| 45 | SCHEMA_ITEM_RID(TypeDef, MethodList, Method) |
| 46 | SCHEMA_TABLE_END(TypeDef) |
| 47 | |
| 48 | //------------------------------------------------------------------------- |
| 49 | //FieldPtr |
| 50 | SCHEMA_TABLE_START(FieldPtr) |
| 51 | SCHEMA_ITEM_NOFIXED() |
| 52 | SCHEMA_ITEM_RID(FieldPtr, Field, Field) |
| 53 | SCHEMA_TABLE_END(FieldPtr) |
| 54 | |
| 55 | //------------------------------------------------------------------------- |
| 56 | //Field |
| 57 | SCHEMA_TABLE_START(Field) |
| 58 | SCHEMA_ITEM(Field, USHORT, Flags) |
| 59 | SCHEMA_ITEM_STRING(Field,Name) |
| 60 | SCHEMA_ITEM_BLOB(Field,Signature) |
| 61 | SCHEMA_TABLE_END(Field) |
| 62 | |
| 63 | //------------------------------------------------------------------------- |
| 64 | //MethodPtr |
| 65 | SCHEMA_TABLE_START(MethodPtr) |
| 66 | SCHEMA_ITEM_NOFIXED() |
| 67 | SCHEMA_ITEM_RID(MethodPtr, Method, Method) |
| 68 | SCHEMA_TABLE_END(MethodPtr) |
| 69 | |
| 70 | //------------------------------------------------------------------------- |
| 71 | //Method |
| 72 | SCHEMA_TABLE_START(Method) |
| 73 | SCHEMA_ITEM(Method, ULONG, RVA) |
| 74 | SCHEMA_ITEM(Method, USHORT, ImplFlags) |
| 75 | SCHEMA_ITEM(Method, USHORT, Flags) |
| 76 | SCHEMA_ITEM_STRING(Method,Name) |
| 77 | SCHEMA_ITEM_BLOB(Method,Signature) |
| 78 | SCHEMA_ITEM_RID(Method,ParamList,Param) |
| 79 | SCHEMA_TABLE_END(Method) |
| 80 | |
| 81 | //------------------------------------------------------------------------- |
| 82 | //ParamPtr |
| 83 | SCHEMA_TABLE_START(ParamPtr) |
| 84 | SCHEMA_ITEM_NOFIXED() |
| 85 | SCHEMA_ITEM_RID(ParamPtr, Param, Param) |
| 86 | SCHEMA_TABLE_END(ParamPtr) |
| 87 | |
| 88 | //------------------------------------------------------------------------- |
| 89 | // Param |
| 90 | SCHEMA_TABLE_START(Param) |
| 91 | SCHEMA_ITEM(Param, USHORT, Flags) |
| 92 | SCHEMA_ITEM(Param, USHORT, Sequence) |
| 93 | SCHEMA_ITEM_STRING(Param,Name) |
| 94 | SCHEMA_TABLE_END(Param) |
| 95 | |
| 96 | //------------------------------------------------------------------------- |
| 97 | //InterfaceImpl |
| 98 | SCHEMA_TABLE_START(InterfaceImpl) |
| 99 | SCHEMA_ITEM_RID(InterfaceImpl,Class,TypeDef) |
| 100 | SCHEMA_ITEM_CDTKN(InterfaceImpl,Interface,TypeDefOrRef) |
| 101 | SCHEMA_TABLE_END(InterfaceImpl) |
| 102 | |
| 103 | //------------------------------------------------------------------------- |
| 104 | //MemberRef |
| 105 | SCHEMA_TABLE_START(MemberRef) |
| 106 | SCHEMA_ITEM_NOFIXED() |
| 107 | SCHEMA_ITEM_CDTKN(MemberRef,Class,MemberRefParent) |
| 108 | SCHEMA_ITEM_STRING(MemberRef,Name) |
| 109 | SCHEMA_ITEM_BLOB(MemberRef,Signature) |
| 110 | SCHEMA_TABLE_END(MemberRef) |
| 111 | |
| 112 | //------------------------------------------------------------------------- |
| 113 | //Constant |
| 114 | SCHEMA_TABLE_START(Constant) |
| 115 | SCHEMA_ITEM(Constant, BYTE, Type) |
| 116 | SCHEMA_ITEM_CDTKN(Constant,Parent,HasConstant) |
| 117 | SCHEMA_ITEM_BLOB(Constant,Value) |
| 118 | SCHEMA_TABLE_END(Constant) |
| 119 | |
| 120 | //------------------------------------------------------------------------- |
| 121 | //CustomAttribute |
| 122 | SCHEMA_TABLE_START(CustomAttribute) |
| 123 | SCHEMA_ITEM_NOFIXED() |
| 124 | SCHEMA_ITEM_CDTKN(CustomAttribute,Parent,HasCustomAttribute) |
| 125 | SCHEMA_ITEM_CDTKN(CustomAttribute,Type,CustomAttributeType) |
| 126 | SCHEMA_ITEM_BLOB(CustomAttribute,Value) |
| 127 | SCHEMA_TABLE_END(CustomAttribute) |
| 128 | |
| 129 | //------------------------------------------------------------------------- |
| 130 | //FieldMarshal |
| 131 | SCHEMA_TABLE_START(FieldMarshal) |
| 132 | SCHEMA_ITEM_NOFIXED() |
| 133 | SCHEMA_ITEM_CDTKN(FieldMarshal,Parent,HasFieldMarshal) |
| 134 | SCHEMA_ITEM_BLOB(FieldMarshal,NativeType) |
| 135 | SCHEMA_TABLE_END(FieldMarshal) |
| 136 | |
| 137 | //------------------------------------------------------------------------- |
| 138 | //DeclSecurity |
| 139 | SCHEMA_TABLE_START(DeclSecurity) |
| 140 | SCHEMA_ITEM(DeclSecurity, SHORT, Action) |
| 141 | SCHEMA_ITEM_CDTKN(DeclSecurity,Parent,HasDeclSecurity) |
| 142 | SCHEMA_ITEM_BLOB(DeclSecurity,PermissionSet) |
| 143 | SCHEMA_TABLE_END(DeclSecurity) |
| 144 | |
| 145 | //------------------------------------------------------------------------- |
| 146 | //ClassLayout |
| 147 | SCHEMA_TABLE_START(ClassLayout) |
| 148 | SCHEMA_ITEM(ClassLayout, USHORT, PackingSize) |
| 149 | SCHEMA_ITEM(ClassLayout, ULONG, ClassSize) |
| 150 | SCHEMA_ITEM_RID(ClassLayout,Parent,TypeDef) |
| 151 | SCHEMA_TABLE_END(ClassLayout) |
| 152 | |
| 153 | //------------------------------------------------------------------------- |
| 154 | //FieldLayout |
| 155 | SCHEMA_TABLE_START(FieldLayout) |
| 156 | SCHEMA_ITEM(FieldLayout, ULONG, OffSet) |
| 157 | SCHEMA_ITEM_RID(FieldLayout, Field, Field) |
| 158 | SCHEMA_TABLE_END(FieldLayout) |
| 159 | |
| 160 | //------------------------------------------------------------------------- |
| 161 | //StandAloneSig |
| 162 | SCHEMA_TABLE_START(StandAloneSig) |
| 163 | SCHEMA_ITEM_NOFIXED() |
| 164 | SCHEMA_ITEM_BLOB(StandAloneSig,Signature) |
| 165 | SCHEMA_TABLE_END(StandAloneSig) |
| 166 | |
| 167 | //------------------------------------------------------------------------- |
| 168 | //EventMap |
| 169 | SCHEMA_TABLE_START(EventMap) |
| 170 | SCHEMA_ITEM_NOFIXED() |
| 171 | SCHEMA_ITEM_RID(EventMap,Parent,TypeDef) |
| 172 | SCHEMA_ITEM_RID(EventMap,EventList,Event) |
| 173 | SCHEMA_TABLE_END(EventMap) |
| 174 | |
| 175 | //------------------------------------------------------------------------- |
| 176 | //EventPtr |
| 177 | SCHEMA_TABLE_START(EventPtr) |
| 178 | SCHEMA_ITEM_NOFIXED() |
| 179 | SCHEMA_ITEM_RID(EventPtr, Event, Event) |
| 180 | SCHEMA_TABLE_END(EventPtr) |
| 181 | |
| 182 | //------------------------------------------------------------------------- |
| 183 | //Event |
| 184 | SCHEMA_TABLE_START(Event) |
| 185 | SCHEMA_ITEM(Event, USHORT, EventFlags) |
| 186 | SCHEMA_ITEM_STRING(Event,Name) |
| 187 | SCHEMA_ITEM_CDTKN(Event,EventType,TypeDefOrRef) |
| 188 | SCHEMA_TABLE_END(Event) |
| 189 | |
| 190 | //------------------------------------------------------------------------- |
| 191 | //PropertyMap |
| 192 | SCHEMA_TABLE_START(PropertyMap) |
| 193 | SCHEMA_ITEM_NOFIXED() |
| 194 | SCHEMA_ITEM_RID(PropertyMap,Parent,TypeDef) |
| 195 | SCHEMA_ITEM_RID(PropertyMap,PropertyList,Property) |
| 196 | SCHEMA_TABLE_END(PropertyMap) |
| 197 | |
| 198 | //------------------------------------------------------------------------- |
| 199 | //PropertyPtr |
| 200 | SCHEMA_TABLE_START(PropertyPtr) |
| 201 | SCHEMA_ITEM_NOFIXED() |
| 202 | SCHEMA_ITEM_RID(PropertyPtr, Property, Property) |
| 203 | SCHEMA_TABLE_END(PropertyPtr) |
| 204 | |
| 205 | //------------------------------------------------------------------------- |
| 206 | //Property |
| 207 | SCHEMA_TABLE_START(Property) |
| 208 | SCHEMA_ITEM(Property, USHORT, PropFlags) |
| 209 | SCHEMA_ITEM_STRING(Property,Name) |
| 210 | SCHEMA_ITEM_BLOB(Property,Type) |
| 211 | SCHEMA_TABLE_END(Property) |
| 212 | |
| 213 | //------------------------------------------------------------------------- |
| 214 | //MethodSemantics |
| 215 | SCHEMA_TABLE_START(MethodSemantics) |
| 216 | SCHEMA_ITEM(MethodSemantics, USHORT, Semantic) |
| 217 | SCHEMA_ITEM_RID(MethodSemantics,Method,Method) |
| 218 | SCHEMA_ITEM_CDTKN(MethodSemantics,Association,HasSemantic) |
| 219 | SCHEMA_TABLE_END(MethodSemantics) |
| 220 | |
| 221 | //------------------------------------------------------------------------- |
| 222 | //MethodImpl |
| 223 | SCHEMA_TABLE_START(MethodImpl) |
| 224 | SCHEMA_ITEM_RID(MethodImpl,Class,TypeDef) |
| 225 | SCHEMA_ITEM_CDTKN(MethodImpl,MethodBody,MethodDefOrRef) |
| 226 | SCHEMA_ITEM_CDTKN(MethodImpl, MethodDeclaration, MethodDefOrRef) |
| 227 | SCHEMA_TABLE_END(MethodImpl) |
| 228 | |
| 229 | //------------------------------------------------------------------------- |
| 230 | //ModuleRef |
| 231 | SCHEMA_TABLE_START(ModuleRef) |
| 232 | SCHEMA_ITEM_NOFIXED() |
| 233 | SCHEMA_ITEM_STRING(ModuleRef, Name) |
| 234 | SCHEMA_TABLE_END(ModuleRef) |
| 235 | |
| 236 | //------------------------------------------------------------------------- |
| 237 | // TypeSpec |
| 238 | SCHEMA_TABLE_START(TypeSpec) |
| 239 | SCHEMA_ITEM_NOFIXED() |
| 240 | SCHEMA_ITEM_BLOB(TypeSpec,Signature) |
| 241 | SCHEMA_TABLE_END(TypeSpec) |
| 242 | |
| 243 | //------------------------------------------------------------------------- |
| 244 | // ENCLog |
| 245 | SCHEMA_TABLE_START(ENCLog) |
| 246 | SCHEMA_ITEM(ENCLog, ULONG, Token) |
| 247 | SCHEMA_ITEM(ENCLog, ULONG, FuncCode) |
| 248 | SCHEMA_TABLE_END(ENCLog) |
| 249 | |
| 250 | //------------------------------------------------------------------------- |
| 251 | // ImplMap |
| 252 | SCHEMA_TABLE_START(ImplMap) |
| 253 | SCHEMA_ITEM(ImplMap, USHORT, MappingFlags) |
| 254 | SCHEMA_ITEM_CDTKN(ImplMap, MemberForwarded, MemberForwarded) |
| 255 | SCHEMA_ITEM_STRING(ImplMap, ImportName) |
| 256 | SCHEMA_ITEM_RID(ImplMap, ImportScope, ModuleRef) |
| 257 | SCHEMA_TABLE_END(ImplMap) |
| 258 | |
| 259 | //------------------------------------------------------------------------- |
| 260 | // ENCMap |
| 261 | SCHEMA_TABLE_START(ENCMap) |
| 262 | SCHEMA_ITEM(ENCMap, ULONG, Token) |
| 263 | SCHEMA_TABLE_END(ENCMap) |
| 264 | |
| 265 | //------------------------------------------------------------------------- |
| 266 | // FieldRVA |
| 267 | SCHEMA_TABLE_START(FieldRVA) |
| 268 | SCHEMA_ITEM(FieldRVA, ULONG, RVA) |
| 269 | SCHEMA_ITEM_RID(FieldRVA, Field, Field) |
| 270 | SCHEMA_TABLE_END(FieldRVA) |
| 271 | |
| 272 | //------------------------------------------------------------------------- |
| 273 | // Assembly |
| 274 | SCHEMA_TABLE_START(Assembly) |
| 275 | SCHEMA_ITEM(Assembly, ULONG, HashAlgId) |
| 276 | SCHEMA_ITEM(Assembly, USHORT, MajorVersion) |
| 277 | SCHEMA_ITEM(Assembly, USHORT, MinorVersion) |
| 278 | SCHEMA_ITEM(Assembly, USHORT, BuildNumber) |
| 279 | SCHEMA_ITEM(Assembly, USHORT, RevisionNumber) |
| 280 | SCHEMA_ITEM(Assembly, ULONG, Flags) |
| 281 | SCHEMA_ITEM_BLOB(Assembly, PublicKey) |
| 282 | SCHEMA_ITEM_STRING(Assembly, Name) |
| 283 | SCHEMA_ITEM_STRING(Assembly, Locale) |
| 284 | SCHEMA_TABLE_END(Assembly) |
| 285 | |
| 286 | //------------------------------------------------------------------------- |
| 287 | // AssemblyProcessor |
| 288 | SCHEMA_TABLE_START(AssemblyProcessor) |
| 289 | SCHEMA_ITEM(AssemblyProcessor, ULONG, Processor) |
| 290 | SCHEMA_TABLE_END(AssemblyProcessor) |
| 291 | |
| 292 | //------------------------------------------------------------------------- |
| 293 | // AssemblyOS |
| 294 | SCHEMA_TABLE_START(AssemblyOS) |
| 295 | SCHEMA_ITEM(AssemblyOS, ULONG, OSPlatformId) |
| 296 | SCHEMA_ITEM(AssemblyOS, ULONG, OSMajorVersion) |
| 297 | SCHEMA_ITEM(AssemblyOS, ULONG, OSMinorVersion) |
| 298 | SCHEMA_TABLE_END(AssemblyOS) |
| 299 | |
| 300 | //------------------------------------------------------------------------- |
| 301 | // AssemblyRef |
| 302 | SCHEMA_TABLE_START(AssemblyRef) |
| 303 | SCHEMA_ITEM(AssemblyRef, USHORT, MajorVersion) |
| 304 | SCHEMA_ITEM(AssemblyRef, USHORT, MinorVersion) |
| 305 | SCHEMA_ITEM(AssemblyRef, USHORT, BuildNumber) |
| 306 | SCHEMA_ITEM(AssemblyRef, USHORT, RevisionNumber) |
| 307 | SCHEMA_ITEM(AssemblyRef, ULONG, Flags) |
| 308 | SCHEMA_ITEM_BLOB(AssemblyRef, PublicKeyOrToken) |
| 309 | SCHEMA_ITEM_STRING(AssemblyRef, Name) |
| 310 | SCHEMA_ITEM_STRING(AssemblyRef, Locale) |
| 311 | SCHEMA_ITEM_BLOB(AssemblyRef, HashValue) |
| 312 | SCHEMA_TABLE_END(AssemblyRef) |
| 313 | |
| 314 | //------------------------------------------------------------------------- |
| 315 | // AssemblyRefProcessor |
| 316 | SCHEMA_TABLE_START(AssemblyRefProcessor) |
| 317 | SCHEMA_ITEM(AssemblyRefProcessor, ULONG, Processor) |
| 318 | SCHEMA_ITEM_RID(AssemblyRefProcessor, AssemblyRef, AssemblyRef) |
| 319 | SCHEMA_TABLE_END(AssemblyRefProcessor) |
| 320 | |
| 321 | //------------------------------------------------------------------------- |
| 322 | // AssemblyRefOS |
| 323 | SCHEMA_TABLE_START(AssemblyRefOS) |
| 324 | SCHEMA_ITEM(AssemblyRefOS, ULONG, OSPlatformId) |
| 325 | SCHEMA_ITEM(AssemblyRefOS, ULONG, OSMajorVersion) |
| 326 | SCHEMA_ITEM(AssemblyRefOS, ULONG, OSMinorVersion) |
| 327 | SCHEMA_ITEM_RID(AssemblyRefOS, AssemblyRef, AssemblyRef) |
| 328 | SCHEMA_TABLE_END(AssemblyRefOS) |
| 329 | |
| 330 | //------------------------------------------------------------------------- |
| 331 | // File |
| 332 | SCHEMA_TABLE_START(File) |
| 333 | SCHEMA_ITEM(File, ULONG, Flags) |
| 334 | SCHEMA_ITEM_STRING(File, Name) |
| 335 | SCHEMA_ITEM_BLOB(File, HashValue) |
| 336 | SCHEMA_TABLE_END(File) |
| 337 | |
| 338 | //------------------------------------------------------------------------- |
| 339 | // ExportedType |
| 340 | SCHEMA_TABLE_START(ExportedType) |
| 341 | SCHEMA_ITEM(ExportedType, ULONG, Flags) |
| 342 | SCHEMA_ITEM(ExportedType, ULONG, TypeDefId) |
| 343 | SCHEMA_ITEM_STRING(ExportedType, TypeName) |
| 344 | SCHEMA_ITEM_STRING(ExportedType, TypeNamespace) |
| 345 | SCHEMA_ITEM_CDTKN(ExportedType, Implementation, Implementation) |
| 346 | SCHEMA_TABLE_END(ExportedType) |
| 347 | |
| 348 | //------------------------------------------------------------------------- |
| 349 | // ManifestResource |
| 350 | SCHEMA_TABLE_START(ManifestResource) |
| 351 | SCHEMA_ITEM(ManifestResource, ULONG, Offset) |
| 352 | SCHEMA_ITEM(ManifestResource, ULONG, Flags) |
| 353 | SCHEMA_ITEM_STRING(ManifestResource, Name) |
| 354 | SCHEMA_ITEM_CDTKN(ManifestResource, Implementation, Implementation) |
| 355 | SCHEMA_TABLE_END(ManifestResource) |
| 356 | |
| 357 | //------------------------------------------------------------------------- |
| 358 | // NestedClass |
| 359 | SCHEMA_TABLE_START(NestedClass) |
| 360 | SCHEMA_ITEM_RID(NestedClass, NestedClass, TypeDef) |
| 361 | SCHEMA_ITEM_RID(NestedClass, EnclosingClass, TypeDef) |
| 362 | SCHEMA_TABLE_END(NestedClass) |
| 363 | |
| 364 | |
| 365 | //------------------------------------------------------------------------- |
| 366 | // GenericParam |
| 367 | SCHEMA_TABLE_START(GenericParam) |
| 368 | SCHEMA_ITEM(GenericParam, USHORT, Number) |
| 369 | SCHEMA_ITEM(GenericParam, USHORT, Flags) |
| 370 | SCHEMA_ITEM_CDTKN(GenericParam, Owner, TypeOrMethodDef) |
| 371 | SCHEMA_ITEM_STRING(GenericParam, Name) |
| 372 | SCHEMA_TABLE_END(GenericParam) |
| 373 | |
| 374 | //------------------------------------------------------------------------- |
| 375 | // Transitional table for Metadata v1.1 for GenericParam |
| 376 | SCHEMA_TABLE_START(GenericParamV1_1) |
| 377 | SCHEMA_ITEM(GenericParam, USHORT, Number) |
| 378 | SCHEMA_ITEM(GenericParam, USHORT, Flags) |
| 379 | SCHEMA_ITEM_CDTKN(GenericParam, Owner, TypeOrMethodDef) |
| 380 | SCHEMA_ITEM_STRING(GenericParam, Name) |
| 381 | SCHEMA_ITEM_CDTKN(GenericParam, Kind, TypeDefOrRef) |
| 382 | SCHEMA_TABLE_END(GenericParam) |
| 383 | |
| 384 | |
| 385 | |
| 386 | //------------------------------------------------------------------------- |
| 387 | //MethodSpec |
| 388 | SCHEMA_TABLE_START(MethodSpec) |
| 389 | SCHEMA_ITEM_NOFIXED() |
| 390 | SCHEMA_ITEM_CDTKN(MethodSpec, Method, MethodDefOrRef) |
| 391 | SCHEMA_ITEM_BLOB(MethodSpec, Instantiation) |
| 392 | SCHEMA_TABLE_END(MethodSpec) |
| 393 | |
| 394 | //------------------------------------------------------------------------- |
| 395 | // GenericParamConstraint |
| 396 | SCHEMA_TABLE_START(GenericParamConstraint) |
| 397 | SCHEMA_ITEM_RID(GenericParamConstraint, Owner, GenericParam) |
| 398 | SCHEMA_ITEM_CDTKN(GenericParamConstraint, Constraint, TypeDefOrRef) |
| 399 | SCHEMA_TABLE_END(GenericParamConstraint) |
| 400 | |
| 401 | // eof ------------------------------------------------------------------------ |
| 402 | |