diff --git a/src/libraries/Common/src/Interop/Unix/System.Native/Interop.ProcessorArchitecture.cs b/src/libraries/Common/src/Interop/Unix/System.Native/Interop.ProcessorArchitecture.cs index 81dc2f936895eb9776dc9c7ed4f81f5b31cc044e..8b1ad552e7ddd6d7627bbf4e0bf0aec735f93380 100644 --- a/src/libraries/Common/src/Interop/Unix/System.Native/Interop.ProcessorArchitecture.cs +++ b/src/libraries/Common/src/Interop/Unix/System.Native/Interop.ProcessorArchitecture.cs @@ -14,7 +14,8 @@ internal enum ProcessorArchitecture x64, ARM, ARM64, - WASM + WASM, + S390x } } } diff --git a/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.c b/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.c index 56ad9f2a4240b22c3a21b4a02248192c12dac43e..504cb32e0d192116f3dae4ef88dd73737d8f0e8c 100644 --- a/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.c +++ b/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.c @@ -55,6 +55,8 @@ int32_t SystemNative_GetOSArchitecture() return ARCH_X86; #elif defined(TARGET_WASM) return ARCH_WASM; +#elif defined(TARGET_S390X) + return ARCH_S390X; #else #error Unidentified Architecture #endif @@ -78,6 +80,8 @@ int32_t SystemNative_GetProcessArchitecture() return ARCH_X86; #elif defined(TARGET_WASM) return ARCH_WASM; +#elif defined(TARGET_S390X) + return ARCH_S390X; #else #error Unidentified Architecture #endif diff --git a/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.h b/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.h index 8f233ae1e603b136c8554cf1555e480184d41fb3..ff7e91d7dad1da860ee4966e35b551e25eb826a8 100644 --- a/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.h +++ b/src/libraries/Native/Unix/System.Native/pal_runtimeinformation.h @@ -22,5 +22,6 @@ enum ARCH_X64, ARCH_ARM, ARCH_ARM64, - ARCH_WASM + ARCH_WASM, + ARCH_S390X }; diff --git a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/ref/System.Runtime.InteropServices.RuntimeInformation.cs b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/ref/System.Runtime.InteropServices.RuntimeInformation.cs index f5ed97de3b96b94e2ae35cec2fe860a83727cd60..576f7b08f9493e3dac8b012df82283d1a02cc676 100644 --- a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/ref/System.Runtime.InteropServices.RuntimeInformation.cs +++ b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/ref/System.Runtime.InteropServices.RuntimeInformation.cs @@ -13,6 +13,7 @@ public enum Architecture Arm = 2, Arm64 = 3, Wasm = 4, + S390x = 5, } public readonly partial struct OSPlatform : System.IEquatable { diff --git a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/Architecture.cs b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/Architecture.cs index fd77f67601c9b51000fd1e0ba5a0d5dfe58a0d28..2c52a9b8ea433cd9274beebcd105c621eb6aa8c1 100644 --- a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/Architecture.cs +++ b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/Architecture.cs @@ -9,6 +9,7 @@ public enum Architecture X64, Arm, Arm64, - Wasm + Wasm, + S390x } } diff --git a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/RuntimeInformation.Unix.cs b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/RuntimeInformation.Unix.cs index 0a8147db34af52177187fbcf41bf6cba5d37f8e9..46b1a85d763c26fed6ae5ad79e006157a0239986 100644 --- a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/RuntimeInformation.Unix.cs +++ b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/RuntimeInformation.Unix.cs @@ -27,6 +27,8 @@ private static Architecture Map(Interop.Sys.ProcessorArchitecture arch) return Architecture.Arm64; case Interop.Sys.ProcessorArchitecture.WASM: return Architecture.Wasm; + case Interop.Sys.ProcessorArchitecture.S390x: + return Architecture.S390x; case Interop.Sys.ProcessorArchitecture.x86: default: Debug.Assert(arch == Interop.Sys.ProcessorArchitecture.x86, "Unidentified Architecture"); diff --git a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/CheckArchitectureTests.cs b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/CheckArchitectureTests.cs index a54b80285783b40c92f74520fe4cfd565712abcb..50c52fa853158f68155063bdac90f830184480d1 100644 --- a/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/CheckArchitectureTests.cs +++ b/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/CheckArchitectureTests.cs @@ -36,6 +36,10 @@ public void VerifyArchitecture() Assert.Equal(Architecture.Wasm, processArch); break; + case Architecture.S390x: + Assert.Equal(Architecture.S390x, processArch); + break; + default: Assert.False(true, "Unexpected Architecture."); break;