1 /** 2 * \file 3 */ 4 5 #ifndef __MONO_METADATA_ROW_INDEXES_H__ 6 #define __MONO_METADATA_ROW_INDEXES_H__ 7 8 /* 9 * The last entry in the enum is used to give the number 10 * of columns in the row. 11 */ 12 13 enum { 14 MONO_ASSEMBLY_HASH_ALG, 15 MONO_ASSEMBLY_MAJOR_VERSION, 16 MONO_ASSEMBLY_MINOR_VERSION, 17 MONO_ASSEMBLY_BUILD_NUMBER, 18 MONO_ASSEMBLY_REV_NUMBER, 19 MONO_ASSEMBLY_FLAGS, 20 MONO_ASSEMBLY_PUBLIC_KEY, 21 MONO_ASSEMBLY_NAME, 22 MONO_ASSEMBLY_CULTURE, 23 MONO_ASSEMBLY_SIZE 24 }; 25 26 enum { 27 MONO_ASSEMBLYOS_PLATFORM, 28 MONO_ASSEMBLYOS_MAJOR_VERSION, 29 MONO_ASSEMBLYOS_MINOR_VERSION, 30 MONO_ASSEMBLYOS_SIZE 31 }; 32 33 enum { 34 MONO_ASSEMBLY_PROCESSOR, 35 MONO_ASSEMBLY_PROCESSOR_SIZE 36 }; 37 38 enum { 39 MONO_ASSEMBLYREF_MAJOR_VERSION, 40 MONO_ASSEMBLYREF_MINOR_VERSION, 41 MONO_ASSEMBLYREF_BUILD_NUMBER, 42 MONO_ASSEMBLYREF_REV_NUMBER, 43 MONO_ASSEMBLYREF_FLAGS, 44 MONO_ASSEMBLYREF_PUBLIC_KEY, 45 MONO_ASSEMBLYREF_NAME, 46 MONO_ASSEMBLYREF_CULTURE, 47 MONO_ASSEMBLYREF_HASH_VALUE, 48 MONO_ASSEMBLYREF_SIZE 49 }; 50 51 enum { 52 MONO_ASSEMBLYREFOS_PLATFORM, 53 MONO_ASSEMBLYREFOS_MAJOR_VERSION, 54 MONO_ASSEMBLYREFOS_MINOR_VERSION, 55 MONO_ASSEMBLYREFOS_ASSEMBLYREF, 56 MONO_ASSEMBLYREFOS_SIZE 57 }; 58 59 enum { 60 MONO_ASSEMBLYREFPROC_PROCESSOR, 61 MONO_ASSEMBLYREFPROC_ASSEMBLYREF, 62 MONO_ASSEMBLYREFPROC_SIZE 63 }; 64 65 enum { 66 MONO_CLASS_LAYOUT_PACKING_SIZE, 67 MONO_CLASS_LAYOUT_CLASS_SIZE, 68 MONO_CLASS_LAYOUT_PARENT, 69 MONO_CLASS_LAYOUT_SIZE 70 }; 71 72 enum { 73 MONO_CONSTANT_TYPE, 74 MONO_CONSTANT_PADDING, 75 MONO_CONSTANT_PARENT, 76 MONO_CONSTANT_VALUE, 77 MONO_CONSTANT_SIZE 78 }; 79 80 enum { 81 MONO_CUSTOM_ATTR_PARENT, 82 MONO_CUSTOM_ATTR_TYPE, 83 MONO_CUSTOM_ATTR_VALUE, 84 MONO_CUSTOM_ATTR_SIZE 85 }; 86 87 enum { 88 MONO_DECL_SECURITY_ACTION, 89 MONO_DECL_SECURITY_PARENT, 90 MONO_DECL_SECURITY_PERMISSIONSET, 91 MONO_DECL_SECURITY_SIZE 92 }; 93 94 enum { 95 MONO_EVENT_MAP_PARENT, 96 MONO_EVENT_MAP_EVENTLIST, 97 MONO_EVENT_MAP_SIZE 98 }; 99 100 enum { 101 MONO_EVENT_FLAGS, 102 MONO_EVENT_NAME, 103 MONO_EVENT_TYPE, 104 MONO_EVENT_SIZE 105 }; 106 107 enum { 108 MONO_EVENT_POINTER_EVENT, 109 MONO_EVENT_POINTER_SIZE 110 }; 111 112 enum { 113 MONO_EXP_TYPE_FLAGS, 114 MONO_EXP_TYPE_TYPEDEF, 115 MONO_EXP_TYPE_NAME, 116 MONO_EXP_TYPE_NAMESPACE, 117 MONO_EXP_TYPE_IMPLEMENTATION, 118 MONO_EXP_TYPE_SIZE 119 }; 120 121 enum { 122 MONO_FIELD_FLAGS, 123 MONO_FIELD_NAME, 124 MONO_FIELD_SIGNATURE, 125 MONO_FIELD_SIZE 126 }; 127 128 enum { 129 MONO_FIELD_LAYOUT_OFFSET, 130 MONO_FIELD_LAYOUT_FIELD, 131 MONO_FIELD_LAYOUT_SIZE 132 }; 133 134 enum { 135 MONO_FIELD_MARSHAL_PARENT, 136 MONO_FIELD_MARSHAL_NATIVE_TYPE, 137 MONO_FIELD_MARSHAL_SIZE 138 }; 139 140 enum { 141 MONO_FIELD_POINTER_FIELD, 142 MONO_FIELD_POINTER_SIZE 143 }; 144 145 enum { 146 MONO_FIELD_RVA_RVA, 147 MONO_FIELD_RVA_FIELD, 148 MONO_FIELD_RVA_SIZE 149 }; 150 151 enum { 152 MONO_FILE_FLAGS, 153 MONO_FILE_NAME, 154 MONO_FILE_HASH_VALUE, 155 MONO_FILE_SIZE 156 }; 157 158 enum { 159 MONO_IMPLMAP_FLAGS, 160 MONO_IMPLMAP_MEMBER, 161 MONO_IMPLMAP_NAME, 162 MONO_IMPLMAP_SCOPE, 163 MONO_IMPLMAP_SIZE 164 }; 165 166 enum { 167 MONO_INTERFACEIMPL_CLASS, 168 MONO_INTERFACEIMPL_INTERFACE, 169 MONO_INTERFACEIMPL_SIZE 170 }; 171 172 enum { 173 MONO_MANIFEST_OFFSET, 174 MONO_MANIFEST_FLAGS, 175 MONO_MANIFEST_NAME, 176 MONO_MANIFEST_IMPLEMENTATION, 177 MONO_MANIFEST_SIZE 178 }; 179 180 enum { 181 MONO_MEMBERREF_CLASS, 182 MONO_MEMBERREF_NAME, 183 MONO_MEMBERREF_SIGNATURE, 184 MONO_MEMBERREF_SIZE 185 }; 186 187 enum { 188 MONO_METHOD_RVA, 189 MONO_METHOD_IMPLFLAGS, 190 MONO_METHOD_FLAGS, 191 MONO_METHOD_NAME, 192 MONO_METHOD_SIGNATURE, 193 MONO_METHOD_PARAMLIST, 194 MONO_METHOD_SIZE 195 }; 196 197 enum { 198 MONO_METHODIMPL_CLASS, 199 MONO_METHODIMPL_BODY, 200 MONO_METHODIMPL_DECLARATION, 201 MONO_METHODIMPL_SIZE 202 }; 203 204 enum { 205 MONO_METHOD_POINTER_METHOD, 206 MONO_METHOD_POINTER_SIZE 207 }; 208 209 enum { 210 MONO_METHOD_SEMA_SEMANTICS, 211 MONO_METHOD_SEMA_METHOD, 212 MONO_METHOD_SEMA_ASSOCIATION, 213 MONO_METHOD_SEMA_SIZE 214 }; 215 216 enum { 217 MONO_MODULE_GENERATION, 218 MONO_MODULE_NAME, 219 MONO_MODULE_MVID, 220 MONO_MODULE_ENC, 221 MONO_MODULE_ENCBASE, 222 MONO_MODULE_SIZE 223 }; 224 225 enum { 226 MONO_MODULEREF_NAME, 227 MONO_MODULEREF_SIZE 228 }; 229 230 enum { 231 MONO_NESTED_CLASS_NESTED, 232 MONO_NESTED_CLASS_ENCLOSING, 233 MONO_NESTED_CLASS_SIZE 234 }; 235 236 enum { 237 MONO_PARAM_FLAGS, 238 MONO_PARAM_SEQUENCE, 239 MONO_PARAM_NAME, 240 MONO_PARAM_SIZE 241 }; 242 243 enum { 244 MONO_PARAM_POINTER_PARAM, 245 MONO_PARAM_POINTER_SIZE 246 }; 247 248 enum { 249 MONO_PROPERTY_FLAGS, 250 MONO_PROPERTY_NAME, 251 MONO_PROPERTY_TYPE, 252 MONO_PROPERTY_SIZE 253 }; 254 255 enum { 256 MONO_PROPERTY_POINTER_PROPERTY, 257 MONO_PROPERTY_POINTER_SIZE 258 }; 259 260 enum { 261 MONO_PROPERTY_MAP_PARENT, 262 MONO_PROPERTY_MAP_PROPERTY_LIST, 263 MONO_PROPERTY_MAP_SIZE 264 }; 265 266 enum { 267 MONO_STAND_ALONE_SIGNATURE, 268 MONO_STAND_ALONE_SIGNATURE_SIZE 269 }; 270 271 enum { 272 MONO_TYPEDEF_FLAGS, 273 MONO_TYPEDEF_NAME, 274 MONO_TYPEDEF_NAMESPACE, 275 MONO_TYPEDEF_EXTENDS, 276 MONO_TYPEDEF_FIELD_LIST, 277 MONO_TYPEDEF_METHOD_LIST, 278 MONO_TYPEDEF_SIZE 279 }; 280 281 enum { 282 MONO_TYPEREF_SCOPE, 283 MONO_TYPEREF_NAME, 284 MONO_TYPEREF_NAMESPACE, 285 MONO_TYPEREF_SIZE 286 }; 287 288 enum { 289 MONO_TYPESPEC_SIGNATURE, 290 MONO_TYPESPEC_SIZE 291 }; 292 293 enum { 294 MONO_GENERICPARAM_NUMBER, 295 MONO_GENERICPARAM_FLAGS, 296 MONO_GENERICPARAM_OWNER, 297 MONO_GENERICPARAM_NAME, 298 299 MONO_GENERICPARAM_SIZE 300 }; 301 302 enum { 303 MONO_METHODSPEC_METHOD, 304 MONO_METHODSPEC_SIGNATURE, 305 MONO_METHODSPEC_SIZE 306 }; 307 308 enum { 309 MONO_GENPARCONSTRAINT_GENERICPAR, 310 MONO_GENPARCONSTRAINT_CONSTRAINT, 311 MONO_GENPARCONSTRAINT_SIZE 312 }; 313 314 enum { 315 MONO_DOCUMENT_NAME, 316 MONO_DOCUMENT_HASHALG, 317 MONO_DOCUMENT_HASH, 318 MONO_DOCUMENT_LANGUAGE, 319 MONO_DOCUMENT_SIZE 320 }; 321 322 enum { 323 MONO_METHODBODY_DOCUMENT, 324 MONO_METHODBODY_SEQ_POINTS, 325 MONO_METHODBODY_SIZE 326 }; 327 328 enum { 329 MONO_LOCALSCOPE_METHOD, 330 MONO_LOCALSCOPE_IMPORTSCOPE, 331 MONO_LOCALSCOPE_VARIABLELIST, 332 MONO_LOCALSCOPE_CONSTANTLIST, 333 MONO_LOCALSCOPE_STARTOFFSET, 334 MONO_LOCALSCOPE_LENGTH, 335 MONO_LOCALSCOPE_SIZE 336 }; 337 338 enum { 339 MONO_LOCALVARIABLE_ATTRIBUTES, 340 MONO_LOCALVARIABLE_INDEX, 341 MONO_LOCALVARIABLE_NAME, 342 MONO_LOCALVARIABLE_SIZE 343 }; 344 345 enum { 346 MONO_CUSTOMDEBUGINFORMATION_PARENT, 347 MONO_CUSTOMDEBUGINFORMATION_KIND, 348 MONO_CUSTOMDEBUGINFORMATION_VALUE, 349 MONO_CUSTOMDEBUGINFORMATION_SIZE 350 }; 351 352 /* 353 * Coded Tokens 354 * The _BITS entry is for the bits used in the token. 355 * The _MASK entry is for mask the index out. 356 */ 357 358 enum { 359 MONO_TYPEDEFORREF_TYPEDEF, 360 MONO_TYPEDEFORREF_TYPEREF, 361 MONO_TYPEDEFORREF_TYPESPEC, 362 MONO_TYPEDEFORREF_BITS = 2, 363 MONO_TYPEDEFORREF_MASK = 3 364 }; 365 366 enum { 367 MONO_HASCONSTANT_FIEDDEF, 368 MONO_HASCONSTANT_PARAM, 369 MONO_HASCONSTANT_PROPERTY, 370 MONO_HASCONSTANT_BITS = 2, 371 MONO_HASCONSTANT_MASK = 3 372 }; 373 374 enum { 375 MONO_CUSTOM_ATTR_METHODDEF, 376 MONO_CUSTOM_ATTR_FIELDDEF, 377 MONO_CUSTOM_ATTR_TYPEREF, 378 MONO_CUSTOM_ATTR_TYPEDEF, 379 MONO_CUSTOM_ATTR_PARAMDEF, 380 MONO_CUSTOM_ATTR_INTERFACE, 381 MONO_CUSTOM_ATTR_MEMBERREF, 382 MONO_CUSTOM_ATTR_MODULE, 383 MONO_CUSTOM_ATTR_PERMISSION, 384 MONO_CUSTOM_ATTR_PROPERTY, 385 MONO_CUSTOM_ATTR_EVENT, 386 MONO_CUSTOM_ATTR_SIGNATURE, 387 MONO_CUSTOM_ATTR_MODULEREF, 388 MONO_CUSTOM_ATTR_TYPESPEC, 389 MONO_CUSTOM_ATTR_ASSEMBLY, 390 MONO_CUSTOM_ATTR_ASSEMBLYREF, 391 MONO_CUSTOM_ATTR_FILE, 392 MONO_CUSTOM_ATTR_EXP_TYPE, 393 MONO_CUSTOM_ATTR_MANIFEST, 394 MONO_CUSTOM_ATTR_GENERICPAR, 395 MONO_CUSTOM_ATTR_BITS = 5, 396 MONO_CUSTOM_ATTR_MASK = 0x1F 397 }; 398 399 enum { 400 MONO_HAS_FIELD_MARSHAL_FIELDSREF, 401 MONO_HAS_FIELD_MARSHAL_PARAMDEF, 402 MONO_HAS_FIELD_MARSHAL_BITS = 1, 403 MONO_HAS_FIELD_MARSHAL_MASK = 1 404 }; 405 406 enum { 407 MONO_HAS_DECL_SECURITY_TYPEDEF, 408 MONO_HAS_DECL_SECURITY_METHODDEF, 409 MONO_HAS_DECL_SECURITY_ASSEMBLY, 410 MONO_HAS_DECL_SECURITY_BITS = 2, 411 MONO_HAS_DECL_SECURITY_MASK = 3 412 }; 413 414 enum { 415 MONO_MEMBERREF_PARENT_TYPEDEF, /* not used */ 416 MONO_MEMBERREF_PARENT_TYPEREF, 417 MONO_MEMBERREF_PARENT_MODULEREF, 418 MONO_MEMBERREF_PARENT_METHODDEF, 419 MONO_MEMBERREF_PARENT_TYPESPEC, 420 MONO_MEMBERREF_PARENT_BITS = 3, 421 MONO_MEMBERREF_PARENT_MASK = 7 422 }; 423 424 enum { 425 MONO_HAS_SEMANTICS_EVENT, 426 MONO_HAS_SEMANTICS_PROPERTY, 427 MONO_HAS_SEMANTICS_BITS = 1, 428 MONO_HAS_SEMANTICS_MASK = 1 429 }; 430 431 enum { 432 MONO_METHODDEFORREF_METHODDEF, 433 MONO_METHODDEFORREF_METHODREF, 434 MONO_METHODDEFORREF_BITS = 1, 435 MONO_METHODDEFORREF_MASK = 1 436 }; 437 438 enum { 439 MONO_MEMBERFORWD_FIELDDEF, 440 MONO_MEMBERFORWD_METHODDEF, 441 MONO_MEMBERFORWD_BITS = 1, 442 MONO_MEMBERFORWD_MASK = 1 443 }; 444 445 enum { 446 MONO_IMPLEMENTATION_FILE, 447 MONO_IMPLEMENTATION_ASSEMBLYREF, 448 MONO_IMPLEMENTATION_EXP_TYPE, 449 MONO_IMPLEMENTATION_BITS = 2, 450 MONO_IMPLEMENTATION_MASK = 3 451 }; 452 453 enum { 454 MONO_CUSTOM_ATTR_TYPE_TYPEREF, /* not used */ 455 MONO_CUSTOM_ATTR_TYPE_TYPEDEF, /* not used */ 456 MONO_CUSTOM_ATTR_TYPE_METHODDEF, 457 MONO_CUSTOM_ATTR_TYPE_MEMBERREF, 458 MONO_CUSTOM_ATTR_TYPE_STRING, /* not used */ 459 MONO_CUSTOM_ATTR_TYPE_BITS = 3, 460 MONO_CUSTOM_ATTR_TYPE_MASK = 7 461 }; 462 463 enum { 464 MONO_RESOLUTION_SCOPE_MODULE, 465 MONO_RESOLUTION_SCOPE_MODULEREF, 466 MONO_RESOLUTION_SCOPE_ASSEMBLYREF, 467 MONO_RESOLUTION_SCOPE_TYPEREF, 468 MONO_RESOLUTION_SCOPE_BITS = 2, 469 MONO_RESOLUTION_SCOPE_MASK = 3 470 }; 471 472 /* Kept for compatibility since this is a public header file */ 473 enum { 474 MONO_RESOLTION_SCOPE_MODULE, 475 MONO_RESOLTION_SCOPE_MODULEREF, 476 MONO_RESOLTION_SCOPE_ASSEMBLYREF, 477 MONO_RESOLTION_SCOPE_TYPEREF, 478 MONO_RESOLTION_SCOPE_BITS = 2, 479 MONO_RESOLTION_SCOPE_MASK = 3 480 }; 481 482 enum { 483 MONO_TYPEORMETHOD_TYPE, 484 MONO_TYPEORMETHOD_METHOD, 485 MONO_TYPEORMETHOD_BITS = 1, 486 MONO_TYPEORMETHOD_MASK = 1 487 }; 488 489 #endif /* __MONO_METADATA_ROW_INDEXES_H__ */ 490 491 492