Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions eng/CodeAnalysis.src.globalconfig
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ dotnet_diagnostic.SYSLIB1060.severity = error
# SYSLIB1061: Marshaller type has incompatible method signatures
dotnet_diagnostic.SYSLIB1061.severity = error

# SYSLIB1092: The usage of 'LibraryImportAttribute' does not follow recommendations. It is recommended to use explicit '[In]' and '[Out]' attributes on array parameters
dotnet_diagnostic.SYSLIB1092.severity = error

# CA1000: Do not declare static members on generic types
dotnet_diagnostic.CA1000.severity = none

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ private int GetMemberRef(Module? refedModule, int tr, int defToken)
}

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "ModuleBuilder_GetMemberRefFromSignature", StringMarshalling = StringMarshalling.Utf16)]
private static partial int GetMemberRefFromSignature(QCallModule module, int tr, string methodName, byte[] signature, int length);
private static partial int GetMemberRefFromSignature(QCallModule module, int tr, string methodName, [In] byte[] signature, int length);

private int GetMemberRefFromSignature(int tr, string methodName, byte[] signature, int length)
{
Expand Down Expand Up @@ -156,7 +156,7 @@ private int GetMemberRefOfFieldInfo(int tkType, RuntimeTypeHandle declaringType,
}

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "ModuleBuilder_GetTokenFromTypeSpec")]
private static partial int GetTokenFromTypeSpec(QCallModule pModule, byte[] signature, int length);
private static partial int GetTokenFromTypeSpec(QCallModule pModule, [In] byte[] signature, int length);

private int GetTokenFromTypeSpec(byte[] signature, int length)
{
Expand All @@ -165,13 +165,13 @@ private int GetTokenFromTypeSpec(byte[] signature, int length)
}

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "ModuleBuilder_GetArrayMethodToken", StringMarshalling = StringMarshalling.Utf16)]
private static partial int GetArrayMethodToken(QCallModule module, int tkTypeSpec, string methodName, byte[] signature, int sigLength);
private static partial int GetArrayMethodToken(QCallModule module, int tkTypeSpec, string methodName, [In] byte[] signature, int sigLength);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "ModuleBuilder_GetStringConstant", StringMarshalling = StringMarshalling.Utf16)]
private static partial int GetStringConstant(QCallModule module, string str, int length);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "ModuleBuilder_SetFieldRVAContent")]
internal static partial void SetFieldRVAContent(QCallModule module, int fdToken, byte[]? data, int length);
internal static partial void SetFieldRVAContent(QCallModule module, int fdToken, [In] byte[]? data, int length);

#endregion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,23 +66,23 @@ public void Bake(RuntimeModuleBuilder module, int token)

#region Internal Static FCalls
[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_DefineMethod", StringMarshalling = StringMarshalling.Utf16)]
internal static partial int DefineMethod(QCallModule module, int tkParent, string name, byte[] signature, int sigLength,
internal static partial int DefineMethod(QCallModule module, int tkParent, string name, [In] byte[] signature, int sigLength,
MethodAttributes attributes);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_DefineMethodSpec")]
internal static partial int DefineMethodSpec(QCallModule module, int tkParent, byte[] signature, int sigLength);
internal static partial int DefineMethodSpec(QCallModule module, int tkParent, [In] byte[] signature, int sigLength);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_DefineField", StringMarshalling = StringMarshalling.Utf16)]
internal static partial int DefineField(QCallModule module, int tkParent, string name, byte[] signature, int sigLength,
internal static partial int DefineField(QCallModule module, int tkParent, string name, [In] byte[] signature, int sigLength,
FieldAttributes attributes);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_SetMethodIL")]
private static partial void SetMethodIL(QCallModule module, int tk, [MarshalAs(UnmanagedType.Bool)] bool isInitLocals,
byte[]? body, int bodyLength,
byte[] LocalSig, int sigLength,
[In] byte[]? body, int bodyLength,
[In] byte[] LocalSig, int sigLength,
int maxStackSize,
ExceptionHandler[]? exceptions, int numExceptions,
int[]? tokenFixups, int numTokenFixups);
[In] ExceptionHandler[]? exceptions, int numExceptions,
[In] int[]? tokenFixups, int numTokenFixups);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_DefineCustomAttribute")]
private static partial void DefineCustomAttribute(QCallModule module, int tkAssociate, int tkConstructor,
Expand All @@ -97,7 +97,7 @@ internal static void DefineCustomAttribute(RuntimeModuleBuilder module, int tkAs

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_DefineProperty", StringMarshalling = StringMarshalling.Utf16)]
internal static partial int DefineProperty(QCallModule module, int tkParent, string name, PropertyAttributes attributes,
byte[] signature, int sigLength);
[In] byte[] signature, int sigLength);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_DefineEvent", StringMarshalling = StringMarshalling.Utf16)]
internal static partial int DefineEvent(QCallModule module, int tkParent, string name, EventAttributes attributes, int tkEventType);
Expand All @@ -117,7 +117,7 @@ internal static partial int SetParamInfo(QCallModule module, int tkMethod, int i
ParameterAttributes iParamAttributes, string? strParamName);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_GetTokenFromSig")]
internal static partial int GetTokenFromSig(QCallModule module, byte[] signature, int sigLength);
internal static partial int GetTokenFromSig(QCallModule module, [In] byte[] signature, int sigLength);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_SetFieldLayoutOffset")]
internal static partial void SetFieldLayoutOffset(QCallModule module, int fdToken, int iOffset);
Expand Down Expand Up @@ -535,11 +535,11 @@ protected override bool IsCreatedCore()
#region FCalls
[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_DefineType", StringMarshalling = StringMarshalling.Utf16)]
private static partial int DefineType(QCallModule module,
string fullname, int tkParent, TypeAttributes attributes, int tkEnclosingType, int[] interfaceTokens);
string fullname, int tkParent, TypeAttributes attributes, int tkEnclosingType, [In] int[] interfaceTokens);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_DefineGenericParam", StringMarshalling = StringMarshalling.Utf16)]
private static partial int DefineGenericParam(QCallModule module,
string name, int tkParent, GenericParameterAttributes attributes, int position, int[] constraints);
string name, int tkParent, GenericParameterAttributes attributes, int position, [In] int[] constraints);

[LibraryImport(RuntimeHelpers.QCall, EntryPoint = "TypeBuilder_TermCreateClass")]
private static partial void TermCreateClass(QCallModule module, int tk, ObjectHandleOnStack type);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1773,7 +1773,7 @@ public bool Equals(ModuleHandle handle)
private static partial void GetDynamicMethod(
QCallModule module,
string name,
byte[] sig,
[In] byte[] sig,
int sigLen,
ObjectHandleOnStack resolver,
ObjectHandleOnStack result);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ private static partial bool GetDsaParameters(
[return: MarshalAs(UnmanagedType.Bool)]
internal static partial bool DsaKeyCreateByExplicitParameters(
out SafeDsaHandle dsa,
byte[] p,
[In] byte[] p,
int pLength,
byte[] q,
[In] byte[] q,
int qLength,
byte[] g,
[In] byte[] g,
int gLength,
byte[] y,
[In] byte[] y,
int yLength,
byte[]? x,
[In] byte[]? x,
int xLength);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ internal static partial class AndroidCrypto
private static partial int EcKeyCreateByKeyParameters(
out SafeEcKeyHandle key,
string oid,
byte[]? qx, int qxLength,
byte[]? qy, int qyLength,
byte[]? d, int dLength);
[In] byte[]? qx, int qxLength,
[In] byte[]? qy, int qyLength,
[In] byte[]? d, int dLength);

internal static SafeEcKeyHandle EcKeyCreateByKeyParameters(
string oid,
Expand All @@ -38,17 +38,17 @@ internal static SafeEcKeyHandle EcKeyCreateByKeyParameters(
[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_EcKeyCreateByExplicitParameters")]
internal static partial SafeEcKeyHandle EcKeyCreateByExplicitParameters(
ECCurve.ECCurveType curveType,
byte[]? qx, int qxLength,
byte[]? qy, int qyLength,
byte[]? d, int dLength,
byte[] p, int pLength,
byte[] a, int aLength,
byte[] b, int bLength,
byte[] gx, int gxLength,
byte[] gy, int gyLength,
byte[] order, int nLength,
byte[]? cofactor, int cofactorLength,
byte[]? seed, int seedLength);
[In] byte[]? qx, int qxLength,
[In] byte[]? qy, int qyLength,
[In] byte[]? d, int dLength,
[In] byte[] p, int pLength,
[In] byte[] a, int aLength,
[In] byte[] b, int bLength,
[In] byte[] gx, int gxLength,
[In] byte[] gy, int gyLength,
[In] byte[] order, int nLength,
[In] byte[]? cofactor, int cofactorLength,
[In] byte[]? seed, int seedLength);

internal static SafeEcKeyHandle EcKeyCreateByExplicitCurve(ECCurve curve)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,21 +176,21 @@ private static partial bool GetRsaParameters(
[return: MarshalAs(UnmanagedType.Bool)]
internal static partial bool SetRsaParameters(
SafeRsaHandle key,
byte[]? n,
[In] byte[]? n,
int nLength,
byte[]? e,
[In] byte[]? e,
int eLength,
byte[]? d,
[In] byte[]? d,
int dLength,
byte[]? p,
[In] byte[]? p,
int pLength,
byte[]? dmp1,
[In] byte[]? dmp1,
int dmp1Length,
byte[]? q,
[In] byte[]? q,
int qLength,
byte[]? dmq1,
[In] byte[]? dmq1,
int dmq1Length,
byte[]? iqmp,
[In] byte[]? iqmp,
int iqmpLength);

internal enum RsaPadding : int
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ private static partial SafeSslHandle SSLStreamCreateWithCertificates(
ref byte pkcs8PrivateKey,
int pkcs8PrivateKeyLen,
PAL_KeyAlgorithm algorithm,
IntPtr[] certs,
[In] IntPtr[] certs,
int certsLen);
internal static SafeSslHandle SSLStreamCreateWithCertificates(
SslStream.JavaProxy sslStreamProxy,
Expand Down Expand Up @@ -126,7 +126,7 @@ private unsafe struct ApplicationProtocolData
}

[LibraryImport(Interop.Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_SSLStreamSetApplicationProtocols")]
private static unsafe partial int SSLStreamSetApplicationProtocols(SafeSslHandle sslHandle, ApplicationProtocolData[] protocolData, int count);
private static unsafe partial int SSLStreamSetApplicationProtocols(SafeSslHandle sslHandle, [In] ApplicationProtocolData[] protocolData, int count);
internal static unsafe void SSLStreamSetApplicationProtocols(SafeSslHandle sslHandle, List<SslApplicationProtocol> protocols)
{
int count = protocols.Count;
Expand Down Expand Up @@ -172,7 +172,7 @@ internal static void SSLStreamSetEnabledProtocols(SafeSslHandle sslHandle, ReadO
internal static partial PAL_SSLStreamStatus SSLStreamHandshake(SafeSslHandle sslHandle);

[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_SSLStreamGetApplicationProtocol")]
private static partial int SSLStreamGetApplicationProtocol(SafeSslHandle ssl, byte[]? buf, ref int len);
private static partial int SSLStreamGetApplicationProtocol(SafeSslHandle ssl, [Out] byte[]? buf, ref int len);
internal static byte[]? SSLStreamGetApplicationProtocol(SafeSslHandle ssl)
{
int len = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ internal static partial class AndroidCrypto
internal static partial SafeX509Handle X509Decode(ref byte buf, int len);

[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509Encode")]
private static partial int X509Encode(SafeX509Handle x, byte[]? buf, ref int len);
private static partial int X509Encode(SafeX509Handle x, [Out] byte[]? buf, ref int len);
internal static byte[] X509Encode(SafeX509Handle x)
{
int len = 0;
Expand Down Expand Up @@ -59,7 +59,7 @@ internal static SafeX509Handle GetPrivateKeyEntryCertificate(SafeHandle privatKe
}

[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509DecodeCollection")]
private static partial int X509DecodeCollection(ref byte buf, int bufLen, IntPtr[]? ptrs, ref int handlesLen);
private static partial int X509DecodeCollection(ref byte buf, int bufLen, [Out] IntPtr[]? ptrs, ref int handlesLen);
internal static SafeX509Handle[] X509DecodeCollection(ReadOnlySpan<byte> data)
{
ref byte buf = ref MemoryMarshal.GetReference(data);
Expand Down Expand Up @@ -98,7 +98,7 @@ internal static SafeX509Handle[] X509DecodeCollection(ReadOnlySpan<byte> data)
}

[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509ExportPkcs7")]
private static partial int X509ExportPkcs7(IntPtr[] certs, int certsLen, byte[]? buf, ref int len);
private static partial int X509ExportPkcs7([In] IntPtr[] certs, int certsLen, [Out] byte[]? buf, ref int len);
internal static byte[] X509ExportPkcs7(IntPtr[] certHandles)
{
int len = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ internal static partial class AndroidCrypto
[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509ChainCreateContext")]
internal static partial SafeX509ChainContextHandle X509ChainCreateContext(
SafeX509Handle cert,
IntPtr[] extraStore,
[In] IntPtr[] extraStore,
int extraStoreLen);

[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509ChainDestroyContext")]
Expand All @@ -33,7 +33,7 @@ internal static partial bool X509ChainBuild(
[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509ChainGetCertificates")]
private static partial int X509ChainGetCertificates(
SafeX509ChainContextHandle ctx,
IntPtr[] certs,
[Out] IntPtr[] certs,
int certsLen);

internal static X509Certificate2[] X509ChainGetCertificates(SafeX509ChainContextHandle ctx)
Expand Down Expand Up @@ -75,7 +75,7 @@ internal struct ValidationError
[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509ChainGetErrors")]
private static unsafe partial int X509ChainGetErrors(
SafeX509ChainContextHandle ctx,
ValidationError[] errors,
[Out] ValidationError[] errors,
int errorsLen);

internal static ValidationError[] X509ChainGetErrors(SafeX509ChainContextHandle ctx)
Expand All @@ -95,7 +95,7 @@ internal static ValidationError[] X509ChainGetErrors(SafeX509ChainContextHandle
[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509ChainSetCustomTrustStore")]
internal static partial int X509ChainSetCustomTrustStore(
SafeX509ChainContextHandle ctx,
IntPtr[] customTrustStore,
[In] IntPtr[] customTrustStore,
int customTrustStoreLen);

[LibraryImport(Libraries.AndroidCryptoNative, EntryPoint = "AndroidCryptoNative_X509ChainValidate")]
Expand Down
2 changes: 1 addition & 1 deletion src/libraries/Common/src/Interop/Interop.Calendar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ internal static partial class Interop
internal static partial class Globalization
{
[LibraryImport(Libraries.GlobalizationNative, EntryPoint = "GlobalizationNative_GetCalendars", StringMarshalling = StringMarshalling.Utf16)]
internal static partial int GetCalendars(string localeName, CalendarId[] calendars, int calendarsCapacity);
internal static partial int GetCalendars(string localeName, [Out] CalendarId[] calendars, int calendarsCapacity);

[LibraryImport(Libraries.GlobalizationNative, EntryPoint = "GlobalizationNative_GetCalendarInfo", StringMarshalling = StringMarshalling.Utf16)]
internal static unsafe partial ResultCode GetCalendarInfo(string localeName, CalendarId calendarId, CalendarDataType calendarDataType, char* result, int resultCapacity);
Expand Down
2 changes: 1 addition & 1 deletion src/libraries/Common/src/Interop/Interop.Calendar.iOS.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ internal static partial class Interop
internal static partial class Globalization
{
[LibraryImport(Libraries.GlobalizationNative, EntryPoint = "GlobalizationNative_GetCalendarsNative", StringMarshalling = StringMarshalling.Utf8)]
internal static partial int GetCalendarsNative(string localeName, CalendarId[] calendars, int calendarsCapacity);
internal static partial int GetCalendarsNative(string localeName, [Out] CalendarId[] calendars, int calendarsCapacity);

[LibraryImport(Libraries.GlobalizationNative, EntryPoint = "GlobalizationNative_GetCalendarInfoNative", StringMarshalling = StringMarshalling.Utf8)]
internal static partial string GetCalendarInfoNative(string localeName, CalendarId calendarId, CalendarDataType calendarDataType);
Expand Down
Loading
Loading