1 #include <string.h>
2
3 #include <arm/android/api.h>
4 #include <arm/api.h>
5 #include <arm/linux/api.h>
6
cpuinfo_arm_android_parse_chipset_properties(const char proc_cpuinfo_hardware[CPUINFO_HARDWARE_VALUE_MAX],const char ro_product_board[CPUINFO_BUILD_PROP_VALUE_MAX],const char ro_board_platform[CPUINFO_BUILD_PROP_VALUE_MAX],const char ro_mediatek_platform[CPUINFO_BUILD_PROP_VALUE_MAX],const char ro_arch[CPUINFO_BUILD_PROP_VALUE_MAX],const char ro_chipname[CPUINFO_BUILD_PROP_VALUE_MAX],uint32_t cores,uint32_t max_cpu_freq_max,char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX])7 void cpuinfo_arm_android_parse_chipset_properties(
8 const char proc_cpuinfo_hardware[CPUINFO_HARDWARE_VALUE_MAX],
9 const char ro_product_board[CPUINFO_BUILD_PROP_VALUE_MAX],
10 const char ro_board_platform[CPUINFO_BUILD_PROP_VALUE_MAX],
11 const char ro_mediatek_platform[CPUINFO_BUILD_PROP_VALUE_MAX],
12 const char ro_arch[CPUINFO_BUILD_PROP_VALUE_MAX],
13 const char ro_chipname[CPUINFO_BUILD_PROP_VALUE_MAX],
14 uint32_t cores,
15 uint32_t max_cpu_freq_max,
16 char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]) {
17 struct cpuinfo_android_properties properties;
18 strncpy(properties.proc_cpuinfo_hardware, proc_cpuinfo_hardware, CPUINFO_HARDWARE_VALUE_MAX);
19 strncpy(properties.ro_product_board, ro_product_board, CPUINFO_BUILD_PROP_VALUE_MAX);
20 strncpy(properties.ro_board_platform, ro_board_platform, CPUINFO_BUILD_PROP_VALUE_MAX);
21 strncpy(properties.ro_mediatek_platform, ro_mediatek_platform, CPUINFO_BUILD_PROP_VALUE_MAX);
22 strncpy(properties.ro_arch, ro_arch, CPUINFO_BUILD_PROP_VALUE_MAX);
23 strncpy(properties.ro_chipname, ro_chipname, CPUINFO_BUILD_PROP_VALUE_MAX);
24
25 struct cpuinfo_arm_chipset chipset = cpuinfo_arm_android_decode_chipset(&properties, cores, max_cpu_freq_max);
26 if (chipset.series == cpuinfo_arm_chipset_series_unknown) {
27 chipset_name[0] = 0;
28 } else {
29 cpuinfo_arm_chipset_to_string(&chipset, chipset_name);
30 }
31 }
32
cpuinfo_arm_android_parse_proc_cpuinfo_hardware(const char hardware[CPUINFO_HARDWARE_VALUE_MAX],uint32_t cores,uint32_t max_cpu_freq_max,bool is_tegra,char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX])33 void cpuinfo_arm_android_parse_proc_cpuinfo_hardware(
34 const char hardware[CPUINFO_HARDWARE_VALUE_MAX],
35 uint32_t cores,
36 uint32_t max_cpu_freq_max,
37 bool is_tegra,
38 char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]) {
39 struct cpuinfo_arm_chipset chipset = cpuinfo_arm_linux_decode_chipset_from_proc_cpuinfo_hardware(
40 hardware, cores, max_cpu_freq_max, is_tegra);
41 if (chipset.series == cpuinfo_arm_chipset_series_unknown) {
42 chipset_name[0] = 0;
43 } else {
44 cpuinfo_arm_fixup_chipset(&chipset, cores, max_cpu_freq_max);
45 cpuinfo_arm_chipset_to_string(&chipset, chipset_name);
46 }
47 }
48
cpuinfo_arm_android_parse_ro_product_board(const char board[CPUINFO_BUILD_PROP_VALUE_MAX],uint32_t cores,uint32_t max_cpu_freq_max,char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX])49 void cpuinfo_arm_android_parse_ro_product_board(
50 const char board[CPUINFO_BUILD_PROP_VALUE_MAX],
51 uint32_t cores,
52 uint32_t max_cpu_freq_max,
53 char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]) {
54 struct cpuinfo_arm_chipset chipset =
55 cpuinfo_arm_android_decode_chipset_from_ro_product_board(board, cores, max_cpu_freq_max);
56 if (chipset.series == cpuinfo_arm_chipset_series_unknown) {
57 chipset_name[0] = 0;
58 } else {
59 cpuinfo_arm_fixup_chipset(&chipset, cores, max_cpu_freq_max);
60 cpuinfo_arm_chipset_to_string(&chipset, chipset_name);
61 }
62 }
63
cpuinfo_arm_android_parse_ro_board_platform(const char platform[CPUINFO_BUILD_PROP_VALUE_MAX],uint32_t cores,uint32_t max_cpu_freq_max,char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX])64 void cpuinfo_arm_android_parse_ro_board_platform(
65 const char platform[CPUINFO_BUILD_PROP_VALUE_MAX],
66 uint32_t cores,
67 uint32_t max_cpu_freq_max,
68 char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]) {
69 struct cpuinfo_arm_chipset chipset =
70 cpuinfo_arm_android_decode_chipset_from_ro_board_platform(platform, cores, max_cpu_freq_max);
71 if (chipset.series == cpuinfo_arm_chipset_series_unknown) {
72 chipset_name[0] = 0;
73 } else {
74 cpuinfo_arm_fixup_chipset(&chipset, cores, max_cpu_freq_max);
75 cpuinfo_arm_chipset_to_string(&chipset, chipset_name);
76 }
77 }
78
cpuinfo_arm_android_parse_ro_mediatek_platform(const char platform[CPUINFO_BUILD_PROP_VALUE_MAX],uint32_t cores,uint32_t max_cpu_freq_max,char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX])79 void cpuinfo_arm_android_parse_ro_mediatek_platform(
80 const char platform[CPUINFO_BUILD_PROP_VALUE_MAX],
81 uint32_t cores,
82 uint32_t max_cpu_freq_max,
83 char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]) {
84 struct cpuinfo_arm_chipset chipset = cpuinfo_arm_android_decode_chipset_from_ro_mediatek_platform(platform);
85 if (chipset.series == cpuinfo_arm_chipset_series_unknown) {
86 chipset_name[0] = 0;
87 } else {
88 cpuinfo_arm_fixup_chipset(&chipset, cores, max_cpu_freq_max);
89 cpuinfo_arm_chipset_to_string(&chipset, chipset_name);
90 }
91 }
92
cpuinfo_arm_android_parse_ro_arch(const char arch[CPUINFO_BUILD_PROP_VALUE_MAX],uint32_t cores,uint32_t max_cpu_freq_max,char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX])93 void cpuinfo_arm_android_parse_ro_arch(
94 const char arch[CPUINFO_BUILD_PROP_VALUE_MAX],
95 uint32_t cores,
96 uint32_t max_cpu_freq_max,
97 char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]) {
98 struct cpuinfo_arm_chipset chipset = cpuinfo_arm_android_decode_chipset_from_ro_arch(arch);
99 if (chipset.series == cpuinfo_arm_chipset_series_unknown) {
100 chipset_name[0] = 0;
101 } else {
102 cpuinfo_arm_fixup_chipset(&chipset, cores, max_cpu_freq_max);
103 cpuinfo_arm_chipset_to_string(&chipset, chipset_name);
104 }
105 }
106
cpuinfo_arm_android_parse_ro_chipname(const char chipname[CPUINFO_BUILD_PROP_VALUE_MAX],uint32_t cores,uint32_t max_cpu_freq_max,char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX])107 void cpuinfo_arm_android_parse_ro_chipname(
108 const char chipname[CPUINFO_BUILD_PROP_VALUE_MAX],
109 uint32_t cores,
110 uint32_t max_cpu_freq_max,
111 char chipset_name[CPUINFO_ARM_CHIPSET_NAME_MAX]) {
112 struct cpuinfo_arm_chipset chipset = cpuinfo_arm_android_decode_chipset_from_ro_chipname(chipname);
113 if (chipset.series == cpuinfo_arm_chipset_series_unknown) {
114 chipset_name[0] = 0;
115 } else {
116 cpuinfo_arm_fixup_chipset(&chipset, cores, max_cpu_freq_max);
117 cpuinfo_arm_chipset_to_string(&chipset, chipset_name);
118 }
119 }
120