1 // Licensed to the .NET Foundation under one or more agreements. 2 // The .NET Foundation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 namespace System.Reflection.Metadata 6 { 7 /// <summary> 8 /// Specifies how arguments in a given signature are passed from the caller to the callee. 9 /// Underlying values correspond to the representation in the leading signature byte 10 /// represented by <see cref="SignatureHeader"/>. 11 /// </summary> 12 public enum SignatureCallingConvention : byte 13 { 14 /// <summary> 15 /// Managed calling convention with fixed-length argument list. 16 /// </summary> 17 Default = 0x0, 18 19 /// <summary> 20 /// Unmanaged C/C++-style calling convention where the call stack is cleaned by the caller. 21 /// </summary> 22 CDecl = 0x1, 23 24 /// <summary> 25 /// Unmanaged calling convention where call stack is cleaned up by the callee. 26 /// </summary> 27 StdCall = 0x2, 28 29 /// <summary> 30 /// Unmanaged C++-style calling convention for calling instance member functions with a fixed argument list. 31 /// </summary> 32 ThisCall = 0x3, 33 34 /// <summary> 35 /// Unmanaged calling convention where arguments are passed in registers when possible. 36 /// </summary> 37 FastCall = 0x4, 38 39 /// <summary> 40 /// Managed calling convention for passing extra arguments. 41 /// </summary> 42 VarArgs = 0x5, 43 } 44 } 45