diff --git a/Makefile b/Makefile index 6a9d913..0d7b6e7 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,11 @@ ifneq ($(OS),Windows_NT) SOURCE += $(SRC_DIR)sysctl.c HEADERS += $(SRC_DIR)sysctl.h endif + else ifeq ($(arch), $(filter $(arch), riscv64 riscv32)) + SRC_DIR=src/riscv/ + SOURCE += $(COMMON_SRC) $(SRC_DIR)riscv.c $(SRC_DIR)uarch.c + HEADERS += $(COMMON_SRC) $(SRC_DIR)riscv.h $(SRC_DIR)uarch.h + CFLAGS += -DARCH_RISCV -Wno-unused-parameter -std=c99 -fstack-protector-all else # Error lines should not be tabulated because Makefile complains about it $(warning Unsupported arch detected: $(arch). See https://github.com/Dr-Noob/cpufetch#1-support) diff --git a/src/common/cpu.c b/src/common/cpu.c index 2faa4bb..1987420 100644 --- a/src/common/cpu.c +++ b/src/common/cpu.c @@ -14,6 +14,8 @@ #include "../ppc/uarch.h" #elif ARCH_ARM #include "../arm/uarch.h" +#elif ARCH_RISCV + #include "../riscv/uarch.h" #endif #define STRING_YES "Yes" diff --git a/src/common/global.c b/src/common/global.c index 2ed88ba..e62e695 100644 --- a/src/common/global.c +++ b/src/common/global.c @@ -29,6 +29,9 @@ #elif ARCH_ARM static const char* ARCH_STR = "ARM build"; #include "../arm/midr.h" +#elif ARCH_RISCV + static const char* ARCH_STR = "RISC-V build"; + #include "../riscv/riscv.h" #endif #ifdef __linux__ diff --git a/src/common/printer.c b/src/common/printer.c index cb0b4a8..dd73a8c 100644 --- a/src/common/printer.c +++ b/src/common/printer.c @@ -16,10 +16,12 @@ #elif ARCH_PPC #include "../ppc/uarch.h" #include "../ppc/ppc.h" -#else +#elif ARCH_ARM #include "../arm/uarch.h" #include "../arm/midr.h" #include "../arm/soc.h" +#elif ARCH_RISCV + #include "../riscv/riscv.h" #endif #ifdef _WIN32 @@ -911,6 +913,13 @@ bool print_cpufetch_arm(struct cpuInfo* cpu, STYLE s, struct color** cs, struct } #endif +#ifdef ARCH_RISCV +bool print_cpufetch_riscv(struct cpuInfo* cpu, STYLE s, struct color** cs, struct terminal* term) { + printf("Unimplemented\n"); + return true; +} +#endif + struct terminal* get_terminal_size(void) { struct terminal* term = emalloc(sizeof(struct terminal)); @@ -948,5 +957,7 @@ bool print_cpufetch(struct cpuInfo* cpu, STYLE s, struct color** cs, bool show_f return print_cpufetch_ppc(cpu, s, cs, term, show_full_cpu_name); #elif ARCH_ARM return print_cpufetch_arm(cpu, s, cs, term); +#elif ARCH_RISCV + return print_cpufetch_riscv(cpu, s, cs, term); #endif } diff --git a/src/common/printer.h b/src/common/printer.h index 6863d4b..21dd906 100644 --- a/src/common/printer.h +++ b/src/common/printer.h @@ -11,6 +11,8 @@ typedef int STYLE; #include "../ppc/ppc.h" #elif ARCH_ARM #include "../arm/midr.h" +#elif ARCH_RISCV + #include "../riscv/riscv.h" #endif // +-----------------------------------+-----------------------+ diff --git a/src/riscv/riscv.c b/src/riscv/riscv.c new file mode 100644 index 0000000..d4859a9 --- /dev/null +++ b/src/riscv/riscv.c @@ -0,0 +1,12 @@ +#include +#include +#include +#include + +struct cpuInfo* get_cpu_info(void) { + return NULL; +} + +void print_debug(struct cpuInfo* cpu) { + printf("Unimplemented!\n"); +} diff --git a/src/riscv/riscv.h b/src/riscv/riscv.h new file mode 100644 index 0000000..25dd7a5 --- /dev/null +++ b/src/riscv/riscv.h @@ -0,0 +1,9 @@ +#ifndef __RISCV__ +#define __RISCV__ + +#include "../common/cpu.h" + +struct cpuInfo* get_cpu_info(void); +void print_debug(struct cpuInfo* cpu); + +#endif diff --git a/src/riscv/uarch.c b/src/riscv/uarch.c new file mode 100644 index 0000000..a7f579b --- /dev/null +++ b/src/riscv/uarch.c @@ -0,0 +1,11 @@ +#include + +struct uarch { + //MICROARCH uarch; + char* uarch_str; + int32_t process; // measured in nanometers +}; + +void free_uarch_struct(struct uarch* arch) { + +} diff --git a/src/riscv/uarch.h b/src/riscv/uarch.h new file mode 100644 index 0000000..7b37e26 --- /dev/null +++ b/src/riscv/uarch.h @@ -0,0 +1,11 @@ +#ifndef __UARCH__ +#define __UARCH__ + +#include +#include "riscv.h" + +struct uarch; + +void free_uarch_struct(struct uarch* arch); + +#endif