summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Reflection/MethodImplAttributes.cs
blob: 1bd6b9dbd10e4a7ded3fd85502f94cc1ec242961 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// 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.

// 

namespace System.Reflection 
{
   
    using System;
    // This Enum matchs the CorMethodImpl defined in CorHdr.h
    [Serializable]
    public enum MethodImplAttributes
    {
        // code impl mask
        CodeTypeMask       =   0x0003,   // Flags about code type.   
        IL                 =   0x0000,   // Method impl is IL.
        Native             =   0x0001,   // Method impl is native.     
        /// <internalonly/>
        OPTIL              =   0x0002,   // Method impl is OPTIL 
        Runtime            =   0x0003,   // Method impl is provided by the runtime.
        // end code impl mask
    
        // managed mask
        ManagedMask        =   0x0004,   // Flags specifying whether the code is managed or unmanaged.
        Unmanaged          =   0x0004,   // Method impl is unmanaged, otherwise managed.
        Managed            =   0x0000,   // Method impl is managed.
        // end managed mask
    
        // implementation info and interop
        ForwardRef         =   0x0010,   // Indicates method is not defined; used primarily in merge scenarios.
        PreserveSig        =   0x0080,   // Indicates method sig is exported exactly as declared.

        InternalCall       =   0x1000,   // Internal Call...
    
        Synchronized       =   0x0020,   // Method is single threaded through the body.
        NoInlining         =   0x0008,   // Method may not be inlined.
        AggressiveInlining =   0x0100,   // Method should be inlined if possible.
        NoOptimization     =   0x0040,   // Method may not be optimized.

        MaxMethodImplVal   =   0xFFFF,   // Range check value
    }
}