1*2b54f0dbSXin Li #pragma once 2*2b54f0dbSXin Li 3*2b54f0dbSXin Li #include <stdbool.h> 4*2b54f0dbSXin Li #include <stdint.h> 5*2b54f0dbSXin Li #include <windows.h> 6*2b54f0dbSXin Li 7*2b54f0dbSXin Li #include <cpuinfo.h> 8*2b54f0dbSXin Li #include <x86/api.h> 9*2b54f0dbSXin Li 10*2b54f0dbSXin Li struct cpuinfo_arm_linux_processor { 11*2b54f0dbSXin Li /** 12*2b54f0dbSXin Li * Minimum processor ID on the package which includes this logical processor. 13*2b54f0dbSXin Li * This value can serve as an ID for the cluster of logical processors: it is the 14*2b54f0dbSXin Li * same for all logical processors on the same package. 15*2b54f0dbSXin Li */ 16*2b54f0dbSXin Li uint32_t package_leader_id; 17*2b54f0dbSXin Li /** 18*2b54f0dbSXin Li * Minimum processor ID on the core which includes this logical processor. 19*2b54f0dbSXin Li * This value can serve as an ID for the cluster of logical processors: it is the 20*2b54f0dbSXin Li * same for all logical processors on the same package. 21*2b54f0dbSXin Li */ 22*2b54f0dbSXin Li /** 23*2b54f0dbSXin Li * Number of logical processors in the package. 24*2b54f0dbSXin Li */ 25*2b54f0dbSXin Li uint32_t package_processor_count; 26*2b54f0dbSXin Li /** 27*2b54f0dbSXin Li * Maximum frequency, in kHZ. 28*2b54f0dbSXin Li * The value is parsed from /sys/devices/system/cpu/cpu<N>/cpufreq/cpuinfo_max_freq 29*2b54f0dbSXin Li * If failed to read or parse the file, the value is 0. 30*2b54f0dbSXin Li */ 31*2b54f0dbSXin Li uint32_t max_frequency; 32*2b54f0dbSXin Li /** 33*2b54f0dbSXin Li * Minimum frequency, in kHZ. 34*2b54f0dbSXin Li * The value is parsed from /sys/devices/system/cpu/cpu<N>/cpufreq/cpuinfo_min_freq 35*2b54f0dbSXin Li * If failed to read or parse the file, the value is 0. 36*2b54f0dbSXin Li */ 37*2b54f0dbSXin Li uint32_t min_frequency; 38*2b54f0dbSXin Li /** Linux processor ID */ 39*2b54f0dbSXin Li uint32_t system_processor_id; 40*2b54f0dbSXin Li uint32_t flags; 41*2b54f0dbSXin Li }; 42