obfuz/Plugins/dnlib/DotNet/MethodImplAttributes.cs

51 lines
1.9 KiB
C#
Raw Normal View History

// dnlib: See LICENSE.txt for more info
using System;
namespace dnlib.DotNet {
/// <summary>
/// Method impl attributes, see CorHdr.h/CorMethodImpl
/// </summary>
[Flags]
public enum MethodImplAttributes : ushort {
/// <summary>Flags about code type.</summary>
CodeTypeMask = 0x0003,
/// <summary>Method impl is IL.</summary>
IL = 0x0000,
/// <summary>Method impl is native.</summary>
Native = 0x0001,
/// <summary>Method impl is OPTIL</summary>
OPTIL = 0x0002,
/// <summary>Method impl is provided by the runtime.</summary>
Runtime = 0x0003,
/// <summary>Flags specifying whether the code is managed or unmanaged.</summary>
ManagedMask = 0x0004,
/// <summary>Method impl is unmanaged, otherwise managed.</summary>
Unmanaged = 0x0004,
/// <summary>Method impl is managed.</summary>
Managed = 0x0000,
/// <summary>Indicates method is defined; used primarily in merge scenarios.</summary>
ForwardRef = 0x0010,
/// <summary>Indicates method sig is not to be mangled to do HRESULT conversion.</summary>
PreserveSig = 0x0080,
/// <summary>Reserved for internal use.</summary>
InternalCall = 0x1000,
/// <summary>Method is single threaded through the body.</summary>
Synchronized = 0x0020,
/// <summary>Method may not be inlined.</summary>
NoInlining = 0x0008,
/// <summary>Method should be inlined if possible.</summary>
AggressiveInlining = 0x0100,
/// <summary>Method may not be optimized.</summary>
NoOptimization = 0x0040,
/// <summary>Method may contain hot code and should be aggressively optimized.</summary>
AggressiveOptimization = 0x0200,
/// <summary>The JIT compiler should look for security mitigation attributes, such as the user-defined System.Runtime.CompilerServices.SecurityMitigationsAttribute. If found, the JIT compiler applies any related security mitigations. Available starting with .NET Framework 4.8.</summary>
SecurityMitigations = 0x0400,
}
}