2010-04-06 Jb Evain <jbevain@novell.com>
[mcs.git] / class / Mono.Cecil / Mono.Cecil.Metadata / ElementType.cs
blob4d78f435f9899f3a2ef21ce6a3478d112be2e762
1 //
2 // ElementType.cs
3 //
4 // Author:
5 // Jb Evain (jbevain@gmail.com)
6 //
7 // (C) 2005 Jb Evain
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 namespace Mono.Cecil.Metadata {
31 public enum ElementType {
32 End = 0x00, // Marks end of a list
33 Void = 0x01,
34 Boolean = 0x02,
35 Char = 0x03,
36 I1 = 0x04,
37 U1 = 0x05,
38 I2 = 0x06,
39 U2 = 0x07,
40 I4 = 0x08,
41 U4 = 0x09,
42 I8 = 0x0a,
43 U8 = 0x0b,
44 R4 = 0x0c,
45 R8 = 0x0d,
46 String = 0x0e,
47 Ptr = 0x0f, // Followed by <type> token
48 ByRef = 0x10, // Followed by <type> token
49 ValueType = 0x11, // Followed by <type> token
50 Class = 0x12, // Followed by <type> token
51 Var = 0x13, // Followed by generic parameter number
52 Array = 0x14, // <type> <rank> <boundsCount> <bound1> <loCount> <lo1>
53 GenericInst = 0x15, // <type> <type-arg-count> <type-1> ... <type-n> */
54 TypedByRef = 0x16,
55 I = 0x18, // System.IntPtr
56 U = 0x19, // System.UIntPtr
57 FnPtr = 0x1b, // Followed by full method signature
58 Object = 0x1c, // System.Object
59 SzArray = 0x1d, // Single-dim array with 0 lower bound
60 MVar = 0x1e, // Followed by generic parameter number
61 CModReqD = 0x1f, // Required modifier : followed by a TypeDef or TypeRef token
62 CModOpt = 0x20, // Optional modifier : followed by a TypeDef or TypeRef token
63 Internal = 0x21, // Implemented within the CLI
64 Modifier = 0x40, // Or'd with following element types
65 Sentinel = 0x41, // Sentinel for varargs method signature
66 Pinned = 0x45, // Denotes a local variable that points at a pinned object
68 // special undocumented constants
69 Type = 0x50,
70 Boxed = 0x51,
71 Enum = 0x55