未验证 提交 dc088c3f 编写于 作者: U Ulrich Weigand 提交者: GitHub

Add public Architecture enum value for s390x (#52906)

* Add S390x value to System.Runtime.InteropServices.Architecture enum

* Add native s390x architecture detection
上级 5d2dc941
...@@ -14,7 +14,8 @@ internal enum ProcessorArchitecture ...@@ -14,7 +14,8 @@ internal enum ProcessorArchitecture
x64, x64,
ARM, ARM,
ARM64, ARM64,
WASM WASM,
S390x
} }
} }
} }
...@@ -55,6 +55,8 @@ int32_t SystemNative_GetOSArchitecture() ...@@ -55,6 +55,8 @@ int32_t SystemNative_GetOSArchitecture()
return ARCH_X86; return ARCH_X86;
#elif defined(TARGET_WASM) #elif defined(TARGET_WASM)
return ARCH_WASM; return ARCH_WASM;
#elif defined(TARGET_S390X)
return ARCH_S390X;
#else #else
#error Unidentified Architecture #error Unidentified Architecture
#endif #endif
...@@ -78,6 +80,8 @@ int32_t SystemNative_GetProcessArchitecture() ...@@ -78,6 +80,8 @@ int32_t SystemNative_GetProcessArchitecture()
return ARCH_X86; return ARCH_X86;
#elif defined(TARGET_WASM) #elif defined(TARGET_WASM)
return ARCH_WASM; return ARCH_WASM;
#elif defined(TARGET_S390X)
return ARCH_S390X;
#else #else
#error Unidentified Architecture #error Unidentified Architecture
#endif #endif
......
...@@ -22,5 +22,6 @@ enum ...@@ -22,5 +22,6 @@ enum
ARCH_X64, ARCH_X64,
ARCH_ARM, ARCH_ARM,
ARCH_ARM64, ARCH_ARM64,
ARCH_WASM ARCH_WASM,
ARCH_S390X
}; };
...@@ -13,6 +13,7 @@ public enum Architecture ...@@ -13,6 +13,7 @@ public enum Architecture
Arm = 2, Arm = 2,
Arm64 = 3, Arm64 = 3,
Wasm = 4, Wasm = 4,
S390x = 5,
} }
public readonly partial struct OSPlatform : System.IEquatable<System.Runtime.InteropServices.OSPlatform> public readonly partial struct OSPlatform : System.IEquatable<System.Runtime.InteropServices.OSPlatform>
{ {
......
...@@ -9,6 +9,7 @@ public enum Architecture ...@@ -9,6 +9,7 @@ public enum Architecture
X64, X64,
Arm, Arm,
Arm64, Arm64,
Wasm Wasm,
S390x
} }
} }
...@@ -27,6 +27,8 @@ private static Architecture Map(Interop.Sys.ProcessorArchitecture arch) ...@@ -27,6 +27,8 @@ private static Architecture Map(Interop.Sys.ProcessorArchitecture arch)
return Architecture.Arm64; return Architecture.Arm64;
case Interop.Sys.ProcessorArchitecture.WASM: case Interop.Sys.ProcessorArchitecture.WASM:
return Architecture.Wasm; return Architecture.Wasm;
case Interop.Sys.ProcessorArchitecture.S390x:
return Architecture.S390x;
case Interop.Sys.ProcessorArchitecture.x86: case Interop.Sys.ProcessorArchitecture.x86:
default: default:
Debug.Assert(arch == Interop.Sys.ProcessorArchitecture.x86, "Unidentified Architecture"); Debug.Assert(arch == Interop.Sys.ProcessorArchitecture.x86, "Unidentified Architecture");
......
...@@ -36,6 +36,10 @@ public void VerifyArchitecture() ...@@ -36,6 +36,10 @@ public void VerifyArchitecture()
Assert.Equal(Architecture.Wasm, processArch); Assert.Equal(Architecture.Wasm, processArch);
break; break;
case Architecture.S390x:
Assert.Equal(Architecture.S390x, processArch);
break;
default: default:
Assert.False(true, "Unexpected Architecture."); Assert.False(true, "Unexpected Architecture.");
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册