diff --git a/ext/etc/etc.c b/ext/etc/etc.c index 8d50a96..627dc92 100644 --- a/ext/etc/etc.c +++ b/ext/etc/etc.c @@ -813,18 +813,7 @@ etc_uname(VALUE obj) rb_sys_fail("GetVersionEx"); result = rb_hash_new(); - switch (v.dwPlatformId) { - case VER_PLATFORM_WIN32s: - sysname = "Win32s"; - break; - case VER_PLATFORM_WIN32_NT: - sysname = "Windows_NT"; - break; - case VER_PLATFORM_WIN32_WINDOWS: - default: - sysname = "Windows"; - break; - } + sysname = "Windows_NT"; rb_hash_aset(result, SYMBOL_LIT("sysname"), rb_str_new_cstr(sysname)); release = rb_sprintf("%lu.%lu.%lu", v.dwMajorVersion, v.dwMinorVersion, v.dwBuildNumber); rb_hash_aset(result, SYMBOL_LIT("release"), release); @@ -847,6 +836,9 @@ etc_uname(VALUE obj) # endif # ifndef PROCESSOR_ARCHITECTURE_INTEL # define PROCESSOR_ARCHITECTURE_INTEL 0 +# endif +# ifndef PROCESSOR_ARCHITECTURE_ARM64 +# define PROCESSOR_ARCHITECTURE_ARM64 12 # endif GetSystemInfo(&s); switch (s.wProcessorArchitecture) { @@ -856,6 +848,9 @@ etc_uname(VALUE obj) case PROCESSOR_ARCHITECTURE_ARM: mach = "ARM"; break; + case PROCESSOR_ARCHITECTURE_ARM64: + mach = "ARM64"; + break; case PROCESSOR_ARCHITECTURE_INTEL: mach = "x86"; break;