Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2017-11-21 05:32:23 +0300
committerAlexander Köplinger <alex.koeplinger@outlook.com>2017-11-21 05:32:23 +0300
commit21ba3d0d9dcd3ef61b0b5955fffa0e3285bbb14e (patch)
tree0fcf8f21a5e4ab11b2ed191346dbfda45e94968f /mcs/class/corlib
parent3259e04ace67552fc8d63a8f1ddbb830e526f05f (diff)
[corlib] Move System.Runtime.InteropServices.RuntimeInformation to co… (#6060)
* [corlib] Move System.Runtime.InteropServices.RuntimeInformation to corlib to match .net 4.7.1 api * Bump API snapshot submodule
Diffstat (limited to 'mcs/class/corlib')
-rw-r--r--mcs/class/corlib/Makefile3
-rw-r--r--mcs/class/corlib/System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs85
-rw-r--r--mcs/class/corlib/corefx/SR.cs2
-rw-r--r--mcs/class/corlib/corlib.dll.sources5
4 files changed, 94 insertions, 1 deletions
diff --git a/mcs/class/corlib/Makefile b/mcs/class/corlib/Makefile
index 42c8ab7ff8b..c31adb99769 100644
--- a/mcs/class/corlib/Makefile
+++ b/mcs/class/corlib/Makefile
@@ -27,7 +27,8 @@ endif
RESX_RESOURCE_STRING = \
../../../external/corert/src/System.Private.CoreLib/src/Resources/Strings.resx \
../../../external/corefx/src/System.Collections.Concurrent/src/Resources/Strings.resx \
- ../../../external/corefx/src/System.Memory/src/Resources/Strings.resx
+ ../../../external/corefx/src/System.Memory/src/Resources/Strings.resx \
+ ../../../external/corefx/src/System.Runtime.InteropServices.RuntimeInformation/src/Resources/Strings.resx \
LIBRARY_COMPILE = $(BOOT_COMPILE)
LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
diff --git a/mcs/class/corlib/System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs b/mcs/class/corlib/System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs
new file mode 100644
index 00000000000..4a515083c48
--- /dev/null
+++ b/mcs/class/corlib/System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs
@@ -0,0 +1,85 @@
+//
+// RuntimeInformation.cs
+//
+// Author:
+// Alexander Köplinger (alexander.koeplinger@xamarin.com)
+//
+// (C) 2016 Xamarin, Inc.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.IO;
+using System.Reflection;
+
+namespace System.Runtime.InteropServices
+{
+ public static class RuntimeInformation
+ {
+ public static string FrameworkDescription {
+ get {
+ return "Mono " + Mono.Runtime.GetDisplayName ();
+ }
+ }
+
+ public static bool IsOSPlatform (OSPlatform osPlatform)
+ {
+ switch (Environment.OSVersion.Platform) {
+ case PlatformID.Win32NT:
+ return osPlatform == OSPlatform.Windows;
+ case PlatformID.Unix:
+ if (File.Exists ("/usr/lib/libc.dylib"))
+ return osPlatform == OSPlatform.OSX;
+
+ return osPlatform == OSPlatform.Linux;
+ default:
+ return false;
+ }
+ }
+
+ public static string OSDescription
+ {
+ get
+ {
+ return Environment.OSVersion.VersionString;
+ }
+ }
+
+ public static Architecture OSArchitecture
+ {
+ get
+ {
+ // TODO: very barebones implementation, doesn't respect ARM
+ return Environment.Is64BitOperatingSystem ? Architecture.X64 : Architecture.X86;
+ }
+ }
+
+ public static Architecture ProcessArchitecture
+ {
+ get
+ {
+ // TODO: very barebones implementation, doesn't respect ARM
+ return Environment.Is64BitProcess ? Architecture.X64 : Architecture.X86;
+ }
+ }
+ }
+}
diff --git a/mcs/class/corlib/corefx/SR.cs b/mcs/class/corlib/corefx/SR.cs
index 0c602b29c08..e8440853154 100644
--- a/mcs/class/corlib/corefx/SR.cs
+++ b/mcs/class/corlib/corefx/SR.cs
@@ -821,4 +821,6 @@ partial class SR
public const string ArrayTypeMustBeExactMatch = "The array type must be exactly {0}.";
public const string CannotCallEqualsOnSpan = "Equals() on Span and ReadOnlySpan is not supported. Use operator== instead.";
public const string CannotCallGetHashCodeOnSpan = "GetHashCode() on Span and ReadOnlySpan is not supported.";
+ public const string Argument_EmptyValue = "Value cannot be empty.";
+ public const string PlatformNotSupported_RuntimeInformation = "RuntimeInformation is not supported for Portable Class Libraries.";
}
diff --git a/mcs/class/corlib/corlib.dll.sources b/mcs/class/corlib/corlib.dll.sources
index c6d48c39413..cebf502d0d2 100644
--- a/mcs/class/corlib/corlib.dll.sources
+++ b/mcs/class/corlib/corlib.dll.sources
@@ -409,6 +409,9 @@ System.Runtime.InteropServices.WindowsRuntime/DesignerNamespaceResolveEventArgs.
System.Runtime.InteropServices.WindowsRuntime/NamespaceResolveEventArgs.cs
System.Runtime.InteropServices.WindowsRuntime/UnsafeNativeMethods.cs
System.Runtime.InteropServices.WindowsRuntime/WindowsRuntimeMetadata.cs
+
+System.Runtime.InteropServices.RuntimeInformation/RuntimeInformation.cs
+
System.Runtime.Remoting/ActivatedClientTypeEntry.cs
System.Runtime.Remoting/ActivatedServiceTypeEntry.cs
System.Runtime.Remoting/CustomErrorsModes.cs
@@ -1684,6 +1687,8 @@ corefx/SR.cs
../../../external/corefx/src/System.Memory/src/System/SpanHelpers.Clear.cs
../../../external/corefx/src/System.Memory/src/System/ThrowHelper.cs
+../../../external/corefx/src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/OSPlatform.cs
+../../../external/corefx/src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/Architecture.cs
System.Security.Cryptography.X509Certificates/X509CertificateImplApple.cs
System.Security.Cryptography.X509Certificates/X509Helper.Apple.cs