On Wed, Dec 22, 2021 at 9:54 PM Reinhard Kotucha
On 2021-12-21 at 11:41:37 +0100, luigi scarso wrote:
On Wed, Sep 8, 2021 at 9:56 AM luigi scarso
wrote: On Sun, Sep 5, 2021 at 7:48 PM Reinhard Kotucha <
reinhard.kotucha@web.de>
wrote:
Obviously. But I doubt that wProcessorLevel is what's needed here. Isn't there something like wProcessorArchitecture that distinguishes between 32 and 64 bit?
seems so. I will check this weekend .
-- luigi
It should be fixed, we have now more PROCESSOR_ARCHITECTURE :
+ case PROCESSOR_ARCHITECTURE_AMD64: + strcpy(uts->machine, "amd64"); + break; + case PROCESSOR_ARCHITECTURE_ARM: + strcpy(uts->machine, "arm"); + break; + case PROCESSOR_ARCHITECTURE_ARM64: + strcpy(uts->machine, "arm64"); + break; + case PROCESSOR_ARCHITECTURE_IA64: + strcpy(uts->machine, "ia64"); + break;
Thank you Luigi!
Currently I get "x86_64" on Linux. Will it be sufficient check whether the string ends with '64' in order to determine reliably whether I'm on a 64 bit machine? That would be nice because conditional code or table lookups can be avoided.
hm, what we have now ( always #ifdef _WIN32 is true ) is : switch (sysinfo.wProcessorArchitecture) { case PROCESSOR_ARCHITECTURE_AMD64: strcpy(uts->machine, "amd64"); break; case PROCESSOR_ARCHITECTURE_ARM: strcpy(uts->machine, "arm"); break; case PROCESSOR_ARCHITECTURE_ARM64: strcpy(uts->machine, "arm64"); break; case PROCESSOR_ARCHITECTURE_IA64: strcpy(uts->machine, "ia64"); break; case PROCESSOR_ARCHITECTURE_PPC: strcpy(uts->machine, "ppc"); break; case PROCESSOR_ARCHITECTURE_ALPHA: strcpy(uts->machine, "alpha"); break; case PROCESSOR_ARCHITECTURE_MIPS: strcpy(uts->machine, "mips"); break; case PROCESSOR_ARCHITECTURE_INTEL: /* * dwProcessorType is only valid in Win95 and Win98 and WinME * wProcessorLevel is only valid in WinNT */ switch (os) { case Win95: case Win98: switch (sysinfo.dwProcessorType) { case PROCESSOR_INTEL_386: case PROCESSOR_INTEL_486: case PROCESSOR_INTEL_PENTIUM: sprintf(uts->machine, "i%ld", sysinfo.dwProcessorType); break; default: strcpy(uts->machine, "i386"); break; } break; case WinNT: sprintf(uts->machine, "i%d86", sysinfo.wProcessorLevel); break; default: strcpy(uts->machine, "unknown"); break; } break; default: strcpy(uts->machine, "unknown"); break; } -- luigi