sys/info: retrieve better CPU description on Darwin

Previously either `ARM` or `ARM64`, now you get something like `Apple
M1`
This commit is contained in:
Laytan Laats
2024-04-29 23:44:48 +02:00
parent 8660718ebe
commit d40c207fde
2 changed files with 41 additions and 13 deletions

View File

@@ -204,14 +204,27 @@ gb_internal void report_cpu_info() {
}
#elif defined(GB_CPU_ARM)
/*
TODO(Jeroen): On *nix, perhaps query `/proc/cpuinfo`.
*/
#if defined(GB_ARCH_64_BIT)
gb_printf("ARM64\n");
#else
gb_printf("ARM\n");
bool generic = true;
#if defined(GB_SYSTEM_OSX)
char cpu_name[128] = {};
size_t cpu_name_size = 128;
if (sysctlbyname("machdep.cpu.brand_string", &cpu_name, &cpu_name_size, nullptr, 0) == 0) {
generic = false;
gb_printf("%s\n", (char *)&cpu_name[0]);
}
#endif
if (generic) {
/*
TODO(Jeroen): On *nix, perhaps query `/proc/cpuinfo`.
*/
#if defined(GB_ARCH_64_BIT)
gb_printf("ARM64\n");
#else
gb_printf("ARM\n");
#endif
}
#else
gb_printf("Unknown\n");
#endif