• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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