From 654d2e27e10cc18c093115584673ea73beeaa0ee Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Wed, 7 Apr 2021 10:14:20 +0200 Subject: [PATCH 1/7] [v0.96] Replace Makefile var names (use C names instead of C++) --- Makefile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 26c210b..e91ba03 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ -CXX=gcc +CC=gcc -CXXFLAGS=-Wall -Wextra -Werror -pedantic -fstack-protector-all -pedantic -std=c99 +CFLAGS=-Wall -Wextra -Werror -pedantic -fstack-protector-all -pedantic -std=c99 SANITY_FLAGS=-Wfloat-equal -Wshadow -Wpointer-arith SRC_COMMON=src/common/ @@ -13,13 +13,13 @@ ifneq ($(OS),Windows_NT) ifeq ($(arch), x86_64) SRC_DIR=src/x86/ SOURCE += $(COMMON_SRC) $(SRC_DIR)cpuid.c $(SRC_DIR)apic.c $(SRC_DIR)cpuid_asm.c $(SRC_DIR)uarch.c - HEADERS += $(COMMON_HDR) $(SRC_DIR)cpuid.h $(SRC_DIR)apic.h $(SRC_DIR)cpuid_asm.h $(SRC_DIR)uarch.h - CXXFLAGS += -DARCH_X86 + HEADERS += $(COMMON_HDR) $(SRC_DIR)cpuid.h $(SRC_DIR)apic.h $(SRC_DIR)cpuid_asm.h $(SRC_DIR)uarch.h + CFLAGS += -DARCH_X86 else SRC_DIR=src/arm/ SOURCE += $(COMMON_SRC) $(SRC_DIR)midr.c $(SRC_DIR)uarch.c $(SRC_DIR)soc.c $(SRC_DIR)udev.c HEADERS += $(COMMON_HDR) $(SRC_DIR)midr.h $(SRC_DIR)uarch.h $(SRC_DIR)soc.h $(SRC_DIR)udev.c $(SRC_DIR)socs.h - CXXFLAGS += -DARCH_ARM -Wno-unused-parameter + CFLAGS += -DARCH_ARM -Wno-unused-parameter endif OUTPUT=cpufetch @@ -27,22 +27,22 @@ else # Assume x86_64 SRC_DIR=src/x86/ SOURCE += $(COMMON_SRC) $(SRC_DIR)cpuid.c $(SRC_DIR)apic.c $(SRC_DIR)cpuid_asm.c $(SRC_DIR)uarch.c - HEADERS += $(COMMON_HDR) $(SRC_DIR)cpuid.h $(SRC_DIR)apic.h $(SRC_DIR)cpuid_asm.h $(SRC_DIR)uarch.h - CXXFLAGS += -DARCH_X86 + HEADERS += $(COMMON_HDR) $(SRC_DIR)cpuid.h $(SRC_DIR)apic.h $(SRC_DIR)cpuid_asm.h $(SRC_DIR)uarch.h + CFLAGS += -DARCH_X86 SANITY_FLAGS += -Wno-pedantic-ms-format OUTPUT=cpufetch.exe endif all: $(OUTPUT) -debug: CXXFLAGS += -g -O0 +debug: CFLAGS += -g -O0 debug: $(OUTPUT) -release: CXXFLAGS += -static -O3 +release: CFLAGS += -static -O3 release: $(OUTPUT) $(OUTPUT): Makefile $(SOURCE) $(HEADERS) - $(CXX) $(CXXFLAGS) $(SANITY_FLAGS) $(SOURCE) -o $(OUTPUT) + $(CC) $(CFLAGS) $(SANITY_FLAGS) $(SOURCE) -o $(OUTPUT) run: $(OUTPUT) ./$(OUTPUT) From c7cc8be71285cdf6c849c5887cac8fb26f5a48c1 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Wed, 7 Apr 2021 10:37:17 +0200 Subject: [PATCH 2/7] [v0.96] Use lower verbosity for some errors found in cpuid --- src/x86/cpuid.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/src/x86/cpuid.c b/src/x86/cpuid.c index 1d1bde4..f1f0322 100755 --- a/src/x86/cpuid.c +++ b/src/x86/cpuid.c @@ -427,7 +427,7 @@ struct topology* get_topology_info(struct cpuInfo* cpu, struct cache* cach) { get_topology_from_apic(cpu, topo); } else { - printErr("Can't read topology information from cpuid (needed level is 0x%.8X, max is 0x%.8X)", 0x00000001, cpu->maxLevels); + printWarn("Can't read topology information from cpuid (needed level is 0x%.8X, max is 0x%.8X)", 0x00000001, cpu->maxLevels); topo->physical_cores = 1; topo->logical_cores = 1; topo->smt_available = 1; @@ -451,7 +451,7 @@ struct topology* get_topology_info(struct cpuInfo* cpu, struct cache* cach) { } } else { - printErr("Can't read topology information from cpuid (needed extended level is 0x%.8X, max is 0x%.8X)", 0x80000008, cpu->maxExtendedLevels); + printWarn("Can't read topology information from cpuid (needed extended level is 0x%.8X, max is 0x%.8X)", 0x80000008, cpu->maxExtendedLevels); topo->physical_cores = 1; topo->logical_cores = 1; topo->smt_supported = 1; @@ -602,7 +602,7 @@ struct cache* get_cache_info(struct cpuInfo* cpu) { if(cpu->cpu_vendor == CPU_VENDOR_INTEL) { level = 0x00000004; if(cpu->maxLevels < level) { - printErr("Can't read cache information from cpuid (needed level is 0x%.8X, max is 0x%.8X)", level, cpu->maxLevels); + printWarn("Can't read cache information from cpuid (needed level is 0x%.8X, max is 0x%.8X)", level, cpu->maxLevels); return NULL; } else { @@ -615,7 +615,7 @@ struct cache* get_cache_info(struct cpuInfo* cpu) { printWarn("Can't read cache information from cpuid (needed extended level is 0x%.8X, max is 0x%.8X)", level, cpu->maxExtendedLevels); level = 0x80000006; if(cpu->maxExtendedLevels < level) { - printErr("Can't read cache information from cpuid using old method (needed extended level is 0x%.8X, max is 0x%.8X)", level, cpu->maxExtendedLevels); + printWarn("Can't read cache information from cpuid using old method (needed extended level is 0x%.8X, max is 0x%.8X)", level, cpu->maxExtendedLevels); return NULL; } printWarn("Fallback to old method using 0x%.8X and 0x%.8X", level-1, level); @@ -656,30 +656,21 @@ struct frequency* get_frequency_info(struct cpuInfo* cpu) { struct frequency* freq = malloc(sizeof(struct frequency)); if(cpu->maxLevels < 0x00000016) { - #ifdef _WIN32 - if(cpu->hv->present) { - printWarn("Can't read frequency information from cpuid (needed level is 0x%.8X, max is 0x%.8X)", 0x00000016, cpu->maxLevels); - } - else { - printErr("Can't read frequency information from cpuid (needed level is 0x%.8X, max is 0x%.8X)", 0x00000016, cpu->maxLevels); - } - freq->base = UNKNOWN_FREQ; - freq->max = UNKNOWN_FREQ; - #elif defined __APPLE__ - printErr("Can't read frequency information from cpuid (needed level is 0x%.8X, max is 0x%.8X)", 0x00000016, cpu->maxLevels); + #if defined (_WIN32) || defined (__APPLE__) + printWarn("Can't read frequency information from cpuid (needed level is 0x%.8X, max is 0x%.8X)", 0x00000016, cpu->maxLevels); freq->base = UNKNOWN_FREQ; freq->max = UNKNOWN_FREQ; #else printWarn("Can't read frequency information from cpuid (needed level is 0x%.8X, max is 0x%.8X). Using udev", 0x00000016, cpu->maxLevels); freq->base = UNKNOWN_FREQ; freq->max = get_max_freq_from_file(0, cpu->hv->present); - + if(freq->max == 0) { if(cpu->hv->present) { printWarn("Read max CPU frequency and got 0 MHz"); } else { - printBug("Read max CPU frequency and got 0 MHz"); + printBug("Read max CPU frequency and got 0 MHz"); } freq->max = UNKNOWN_FREQ; } From 28798765007521b7f40b4937ff4d977cbee5d973 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Wed, 7 Apr 2021 11:10:45 +0200 Subject: [PATCH 3/7] [v0.96] Dont treat unknown unified cache as a bug, since there are some processors with eDRAM which supports this level, like #41 --- src/x86/cpuid.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/x86/cpuid.c b/src/x86/cpuid.c index f1f0322..085c20b 100755 --- a/src/x86/cpuid.c +++ b/src/x86/cpuid.c @@ -364,13 +364,12 @@ bool get_cache_topology_amd(struct cpuInfo* cpu, struct topology* topo) { topo->cach->L3->num_caches = topo->logical_cores / num_sharing_cache; } else { - printBug("Found unified cache at level %d (expected == 2 or 3)", cache_level); - return false; + printWarn("Found unknown unified cache at level %d", cache_level); } break; - default: // Unknown Type Cache - printBug("Unknown Type Cache found at ID %d", i); + default: // Unknown cache type + printBug("Unknown cache type %d with level %d found at i=%d", cache_type, cache_level, i); return false; } } @@ -573,13 +572,12 @@ struct cache* get_cache_info_general(struct cache* cach, uint32_t level) { cach->L3->exists = true; } else { - printBug("Found unified cache at level %d (expected == 2 or 3)", cache_level); - return NULL; + printWarn("Found unknown unified cache at level %d (size is %d bytes)", cache_level, cache_total_size); } break; - default: // Unknown Type Cache - printBug("Unknown Type Cache found at ID %d", i); + default: // Unknown cache type + printBug("Unknown cache type %d with level %d found at i=%d", cache_type, cache_level, i); return NULL; } } From b3ed3e9240ab11b0c9c91ceffcba5ff318219a29 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Wed, 7 Apr 2021 14:52:25 +0200 Subject: [PATCH 4/7] [v0.96] Add 32bit support in Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e91ba03..7293f40 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ COMMON_HDR = $(SRC_COMMON)ascii.h $(SRC_COMMON)cpu.h $(SRC_COMMON)udev.h $(SRC_C ifneq ($(OS),Windows_NT) arch := $(shell uname -m) - ifeq ($(arch), x86_64) + ifeq ($(arch), $(filter $(arch), x86_64 i686)) SRC_DIR=src/x86/ SOURCE += $(COMMON_SRC) $(SRC_DIR)cpuid.c $(SRC_DIR)apic.c $(SRC_DIR)cpuid_asm.c $(SRC_DIR)uarch.c HEADERS += $(COMMON_HDR) $(SRC_DIR)cpuid.h $(SRC_DIR)apic.h $(SRC_DIR)cpuid_asm.h $(SRC_DIR)uarch.h From bb9fb17ec8adde344df98ffbf255f03b5f618f44 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Wed, 7 Apr 2021 16:25:31 +0200 Subject: [PATCH 5/7] [v0.96] Tracking issue #54 --- src/arm/soc.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/arm/soc.c b/src/arm/soc.c index c3e1673..f391577 100644 --- a/src/arm/soc.c +++ b/src/arm/soc.c @@ -435,12 +435,21 @@ bool match_special(char* soc_name, struct system_on_chip* soc) { fill_soc(soc, "665", SOC_SNAPD_SM6125, 11); return true; } - - return false; + + // Snapdragon 730 reported as "Qualcomm Technologies, Inc. SDMMAGPIE" + if((tmp = strstr(soc_name, "SDMMAGPIE")) != NULL) { + fill_soc(soc, "730", SOC_SNAPD_SM7150_AA, 8); + return true; + } + + return false; } struct system_on_chip* parse_soc_from_string(struct system_on_chip* soc) { char* raw_name = soc->raw_name; + + if(match_special(raw_name, soc)) + return soc; if (match_qualcomm(raw_name, soc)) return soc; @@ -454,10 +463,7 @@ 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); + match_broadcom(raw_name, soc); return soc; } From 7916e8cbb440b15af409115276fdc2df090e3f0b Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Wed, 7 Apr 2021 20:06:03 +0200 Subject: [PATCH 6/7] [v0.96] Replace "Simplistic" by "Simple" in description --- README.md | 2 +- cpufetch.8 | 2 +- src/common/main.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4ad23fb..95fe63a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ![Contributions welcome](https://img.shields.io/badge/contributions-welcome-orange.svg) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) -

Simplistic yet fancy CPU architecture fetching tool

+

Simple yet fancy CPU architecture fetching tool

  ![cpu1](pictures/i9.png) diff --git a/cpufetch.8 b/cpufetch.8 index 0e34a2e..1ba067d 100644 --- a/cpufetch.8 +++ b/cpufetch.8 @@ -6,7 +6,7 @@ cpufetch \- manual page for cpufetch v0.96 (x86_64 build) .B cpufetch [\fI\,OPTION\/\fR]... .SH DESCRIPTION -Simplistic yet fancy CPU architecture fetching tool +Simple yet fancy CPU architecture fetching tool .SH OPTIONS .TP \fB\-c\fR, \fB\-\-color\fR diff --git a/src/common/main.c b/src/common/main.c index 233322b..f650091 100644 --- a/src/common/main.c +++ b/src/common/main.c @@ -22,7 +22,7 @@ void print_help(char *argv[]) { int max_len = max_arg_str_length(); printf("Usage: %s [OPTION]...\n", argv[0]); - printf("Simplistic yet fancy CPU architecture fetching tool\n\n"); + printf("Simple yet fancy CPU architecture fetching tool\n\n"); printf("Options: \n"); printf(" -%c, --%s %*s Set the color scheme (by default, cpufetch uses the system color scheme)\n", c[ARG_COLOR], t[ARG_COLOR], (int) (max_len-strlen(t[ARG_COLOR])), ""); From 812ee0acc6de439e3c4adfc3412e5edd05ef2335 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Thu, 8 Apr 2021 09:36:21 +0200 Subject: [PATCH 7/7] [v0.96] Add PREFIX to Makefile and uninstall target, as requested by many users --- Makefile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 7293f40..d7bd02f 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,8 @@ CC=gcc CFLAGS=-Wall -Wextra -Werror -pedantic -fstack-protector-all -pedantic -std=c99 SANITY_FLAGS=-Wfloat-equal -Wshadow -Wpointer-arith +PREFIX ?= /usr + SRC_COMMON=src/common/ COMMON_SRC = $(SRC_COMMON)main.c $(SRC_COMMON)cpu.c $(SRC_COMMON)udev.c $(SRC_COMMON)printer.c $(SRC_COMMON)args.c $(SRC_COMMON)global.c @@ -51,6 +53,11 @@ clean: @rm $(OUTPUT) install: $(OUTPUT) - install -Dm755 "cpufetch" "/usr/bin/cpufetch" - install -Dm644 "LICENSE" "/usr/share/licenses/cpufetch-git/LICENSE" - install -Dm644 "cpufetch.8" "/usr/share/man/man8/cpufetch.8.gz" + install -Dm755 "cpufetch" "$(PREFIX)/bin/cpufetch" + install -Dm644 "LICENSE" "$(PREFIX)/share/licenses/cpufetch-git/LICENSE" + install -Dm644 "cpufetch.8" "$(PREFIX)/share/man/man8/cpufetch.8.gz" + +uninstall: + rm -f "$(PREFIX)/bin/cpufetch" + rm -f "$(PREFIX)/share/licenses/cpufetch-git/LICENSE" + rm -f "$(PREFIX)/share/man/man8/cpufetch.8.gz"