[v0.94][ARM] Add Kirin and Broadcom ASCII arts. Fix Broadcom SoCs detection

This commit is contained in:
Dr-Noob
2020-11-28 13:51:02 +01:00
parent fd898331f8
commit 35c2aa7e6f
3 changed files with 73 additions and 9 deletions

View File

@@ -11,11 +11,11 @@
#define STRING_UNKNOWN "Unknown"
static char* soc_trademark_string[] = {
[SOC_SNAPDRAGON] = "Snapdragon",
[SOC_MEDIATEK] = "MediaTek",
[SOC_EXYNOS] = "Exynos",
[SOC_KIRIN] = "Kirin",
[SOC_BROADCOM] = "Broadcom",
[SOC_SNAPDRAGON] = "Snapdragon ",
[SOC_MEDIATEK] = "MediaTek ",
[SOC_EXYNOS] = "Exynos ",
[SOC_KIRIN] = "Kirin ",
[SOC_BROADCOM] = "Broadcom BCM",
};
void fill_soc(struct system_on_chip* soc, char* soc_name, VENDOR soc_vendor, int32_t process) {
@@ -24,7 +24,7 @@ void fill_soc(struct system_on_chip* soc, char* soc_name, VENDOR soc_vendor, int
int len = strlen(soc_name) + strlen(soc_trademark_string[soc->soc_vendor]) + 1;
soc->soc_name = malloc(sizeof(char) * len);
memset(soc->soc_name, 0, sizeof(char) * len);
sprintf(soc->soc_name, "%s %s", soc_trademark_string[soc->soc_vendor], soc_name);
sprintf(soc->soc_name, "%s%s", soc_trademark_string[soc->soc_vendor], soc_name);
}
bool match_soc(struct system_on_chip* soc, char* raw_name, char* expected_name, char* soc_name, VENDOR soc_vendor, int32_t process) {
@@ -415,6 +415,9 @@ struct system_on_chip* parse_soc_from_string(struct system_on_chip* soc) {
if(match_hisilicon(raw_name, soc))
return soc;
if(match_broadcom(raw_name, soc))
return soc;
match_special(raw_name, soc);
return soc;

View File

@@ -108,8 +108,49 @@
\
\
"
#define KIRIN_ASCII \
" \
\
\
\
\
####### \
##### #################### \
###################################### \
####################################### \
####################################### \
############################## \
########################## \
######################### \
######################## \
######################## \
######################### \
######################### \
\
"
#define BROADCOM_ASCII \
" \
################ \
######################### \
############################### \
################@@@@################ \
################@@@@@@################ \
#################@@@@@@################ \
#################@@@@@@@@################# \
#################@@@@@@@@################# \
#################@@@@##@@@@################ \
################@@@@##@@@@################ \
###############@@@@####@@@@############### \
@@@@@@@@@@####@@@@####@@@@####@@@@@@@@@@ \
######@@@@@@@@@@######@@@@@@@@@@###### \
################################## \
############################## \
######################## \
############### \
"
#define ARM_ASCII \
" \
\
@@ -159,6 +200,8 @@ static const char* ASCII_ARRAY [] = {
SNAPDRAGON_ASCII,
MEDIATEK_ASCII,
EXYNOS_ASCII,
KIRIN_ASCII,
BROADCOM_ASCII,
UNKNOWN_ASCII
};

View File

@@ -190,6 +190,20 @@ struct ascii* set_ascii(VENDOR vendor, STYLE style, struct colors* cs) {
COL_FANCY_4 = COLOR_FG_WHITE;
art->ascii_chars[0] = '@';
}
else if(art->vendor == SOC_KIRIN) {
COL_FANCY_1 = COLOR_BG_WHITE;
COL_FANCY_2 = COLOR_BG_RED;
COL_FANCY_3 = COLOR_FG_WHITE;
COL_FANCY_4 = COLOR_FG_RED;
art->ascii_chars[0] = '@';
}
else if(art->vendor == SOC_BROADCOM) {
COL_FANCY_1 = COLOR_BG_WHITE;
COL_FANCY_2 = COLOR_BG_RED;
COL_FANCY_3 = COLOR_FG_WHITE;
COL_FANCY_4 = COLOR_FG_RED;
art->ascii_chars[0] = '@';
}
else {
COL_FANCY_1 = COLOR_BG_CYAN;
COL_FANCY_2 = COLOR_BG_CYAN;
@@ -295,6 +309,10 @@ struct ascii* set_ascii(VENDOR vendor, STYLE style, struct colors* cs) {
strcpy(tmp, MEDIATEK_ASCII);
else if(art->vendor == SOC_EXYNOS)
strcpy(tmp, EXYNOS_ASCII);
else if(art->vendor == SOC_KIRIN)
strcpy(tmp, KIRIN_ASCII);
else if(art->vendor == SOC_BROADCOM)
strcpy(tmp, BROADCOM_ASCII);
else
strcpy(tmp, ARM_ASCII);
#endif
@@ -574,7 +592,7 @@ void print_ascii_arm(struct ascii* art, uint32_t la, void (*callback_print_algor
void print_ascii(struct ascii* art) {
uint32_t longest_attribute = longest_attribute_length(art);
if(art->vendor == SOC_SNAPDRAGON || art->vendor == SOC_MEDIATEK)
if(art->vendor == SOC_SNAPDRAGON || art->vendor == SOC_MEDIATEK || art->vendor == SOC_KIRIN || art->vendor == SOC_BROADCOM)
print_ascii_arm(art, longest_attribute, &print_algorithm_snapd_mtk);
else if(art->vendor == SOC_EXYNOS)
print_ascii_arm(art, longest_attribute, &print_algorithm_samsung);