67 lines
2.7 KiB
C#
Raw Normal View History

using System;
namespace System.Runtime
{
[AttributeUsage(AttributeTargets.Assembly, Inherited = false)]
public sealed class AssemblyTargetedPatchBandAttribute : Attribute
{
private String m_targetedPatchBand;
public AssemblyTargetedPatchBandAttribute(String targetedPatchBand)
{
m_targetedPatchBand = targetedPatchBand;
}
public String TargetedPatchBand
{
get { return m_targetedPatchBand; }
}
}
// This attribute seems particularly prone to accidental inclusion in bcl.small
// We would only want to do so intentionally (if targeted patching were enabled there)
#if !FEATURE_CORECLR
//============================================================================================================
// [TargetedPatchingOptOutAttribute("Performance critical to inline across NGen image boundaries")] -
// Sacrifices cheap servicing of a method body in order to allow unrestricted inlining. Certain types of
// trivial methods (e.g. simple property getters) are automatically attributed by ILCA.EXE during the build.
// For other performance critical methods, it should be added manually.
//============================================================================================================
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor, AllowMultiple = false, Inherited = false)]
public sealed class TargetedPatchingOptOutAttribute : Attribute
{
private String m_reason;
public TargetedPatchingOptOutAttribute(String reason)
{
m_reason = reason;
}
public String Reason
{
get { return m_reason; }
}
private TargetedPatchingOptOutAttribute() { }
}
#endif
//============================================================================================================
// [ForceTokenStabilization] - Using this CA forces ILCA.EXE to stabilize the attached type, method or field.
// We use this to identify private helper methods invoked by IL stubs.
//
// NOTE: Attaching this to a type is NOT equivalent to attaching it to all of its methods!
//============================================================================================================
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface | AttributeTargets.Delegate |
AttributeTargets.Method | AttributeTargets.Constructor |
AttributeTargets.Field
, AllowMultiple = false, Inherited = false)]
sealed class ForceTokenStabilizationAttribute : Attribute
{
public ForceTokenStabilizationAttribute() { }
}
}