mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
57 lines
1.8 KiB
C
57 lines
1.8 KiB
C
#ifndef __SYSCTL__
|
|
#define __SYSCTL__
|
|
|
|
// From Linux kernel: arch/arm64/include/asm/cputype.h
|
|
#define MIDR_APPLE_M1_ICESTORM 0x610F0220
|
|
#define MIDR_APPLE_M1_FIRESTORM 0x610F0230
|
|
// Kernel does not include those, so I just assume that
|
|
// APPLE_CPU_PART_M2_BLIZZARD=0x30,M2_AVALANCHE=0x31
|
|
#define MIDR_APPLE_M2_BLIZZARD 0x610F0300
|
|
#define MIDR_APPLE_M2_AVALANCHE 0x610F0310
|
|
// https://github.com/AsahiLinux/m1n1/blob/main/src/chickens.c
|
|
#define MIDR_APPLE_M3_SAWTOOTH 0x610F0480
|
|
#define MIDR_APPLE_M3_EVEREST 0x610F0490
|
|
|
|
// M1 / A14
|
|
#ifndef CPUFAMILY_ARM_FIRESTORM_ICESTORM
|
|
#define CPUFAMILY_ARM_FIRESTORM_ICESTORM 0x1B588BB3
|
|
#endif
|
|
// M2 / A15
|
|
#ifndef CPUFAMILY_ARM_AVALANCHE_BLIZZARD
|
|
#define CPUFAMILY_ARM_AVALANCHE_BLIZZARD 0xDA33D83D
|
|
#endif
|
|
// M3 / A16 / A17
|
|
// M3: https://ratfactor.com/zig/stdlib-browseable2/c/darwin.zig.html
|
|
// M3_2: https://github.com/Dr-Noob/cpufetch/issues/230
|
|
// PRO: https://github.com/Dr-Noob/cpufetch/issues/225
|
|
// MAX: https://github.com/Dr-Noob/cpufetch/issues/210
|
|
#define CPUFAMILY_ARM_EVEREST_SAWTOOTH 0x8765EDEA
|
|
#define CPUFAMILY_ARM_EVEREST_SAWTOOTH_2 0xFA33415E
|
|
#define CPUFAMILY_ARM_EVEREST_SAWTOOTH_PRO 0x5F4DEA93
|
|
#define CPUFAMILY_ARM_EVEREST_SAWTOOTH_MAX 0x72015832
|
|
|
|
// For detecting different M1 types
|
|
// NOTE: Could also be achieved detecting different
|
|
// MIDR values (e.g., APPLE_CPU_PART_M1_ICESTORM_PRO)
|
|
#ifndef CPUSUBFAMILY_ARM_HG
|
|
#define CPUSUBFAMILY_ARM_HG 2
|
|
#endif
|
|
#ifndef CPUSUBFAMILY_ARM_HS
|
|
#define CPUSUBFAMILY_ARM_HS 4
|
|
#endif
|
|
#ifndef CPUSUBFAMILY_ARM_HC_HD
|
|
#define CPUSUBFAMILY_ARM_HC_HD 5
|
|
#endif
|
|
|
|
// For alternative way to get CPU frequency on macOS and *BSD
|
|
#ifdef __APPLE__
|
|
#define CPUFREQUENCY_SYSCTL "hw.cpufrequency_max"
|
|
#else
|
|
// For FreeBSD, not sure about other *BSD
|
|
#define CPUFREQUENCY_SYSCTL "dev.cpu.0.freq"
|
|
#endif
|
|
|
|
uint32_t get_sys_info_by_name(char* name);
|
|
|
|
#endif
|