Package: hardinfo Version: 0.5.1+git20180227-2.1 Severity: wishlist Tags: patch User:debian-de...@lists.debian.org Usertags: loongarch64
Dear maintainers, When I compiled hardinfo for loongarch architecture, the unsupport arch happened. We have added loong64 check for hardinfo, the patch can be found in the attachment. or you can refer the patch https://github.com/lpereira/hardinfo/pull/631 If you have any questions, you can contact me at any time. Thanks!
Description: Add loongarch64 support Signed-off-by: liuxiang <liuxiangoongson.cn> Pull request link: https://github.com/lpereira/hardinfo/pull/631 Last-Update: 2023-09-12 --- hardinfo-0.5.1+git20180227.orig/CMakeLists.txt +++ hardinfo-0.5.1+git20180227/CMakeLists.txt @@ -50,6 +50,8 @@ elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MA set(HARDINFO_ARCH "sh") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "(riscv|riscv32|riscv64)") set(HARDINFO_ARCH "riscv") +elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "loongarch64") + set(HARDINFO_ARCH "loongarch64") else() message(FATAL_ERROR "Unsupported architecture: ${CMAKE_HOST_SYSTEM_PROCESSOR}") endif() --- /dev/null +++ hardinfo-0.5.1+git20180227/includes/loongarch64/processor-platform.h @@ -0,0 +1,28 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2006 Leandro A. F. Pereira <lean...@hardinfo.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __PROCESSOR_PLATFORM_H__ +#define __PROCESSOR_PLATFORM_H__ + +struct _Processor { + gchar *model_name; + gchar *vendor_id; + gfloat bogomips, cpu_mhz; +}; + +#endif /* __PROCESSOR_PLATFORM_H__ */ --- /dev/null +++ hardinfo-0.5.1+git20180227/modules/devices/loongarch64/processor.c @@ -0,0 +1,81 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2006 Leandro A. F. Pereira <lean...@hardinfo.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "hardinfo.h" +#include "devices.h" +#include "cpu_util.h" + +GSList * +processor_scan(void) +{ + Processor *processor; + FILE *cpuinfo; + gchar buffer[128]; + + cpuinfo = fopen(PROC_CPUINFO, "r"); + if (!cpuinfo) + return NULL; + + processor = g_new0(Processor, 1); + while (fgets(buffer, 128, cpuinfo)) { + gchar **tmp = g_strsplit(buffer, ":", 2); + + if (tmp[0] && tmp[1]) { + tmp[0] = g_strstrip(tmp[0]); + tmp[1] = g_strstrip(tmp[1]); + + get_str("system type", processor->vendor_id); + get_str("model name", processor->model_name); + get_float("CPU MHz", processor->cpu_mhz); + get_float("BogoMIPS", processor->bogomips); + } + g_strfreev(tmp); + } + + fclose(cpuinfo); + + return g_slist_append(NULL, processor); +} + +gchar *processor_name(GSList * processors) { + return processor_name_default(processors); +} + +gchar *processor_describe(GSList * processors) { + return processor_describe_default(processors); +} + +gchar * +processor_get_info(GSList *processors) +{ + Processor *processor = (Processor *)processors->data; + + return g_strdup_printf("[%s]\n" + "%s=%s\n" + "%s=%s\n" + "%s=%.2f %s\n" /* frequency */ + "%s=%.2f\n" /* bogoMIPS */ + "%s=%s\n", /* byte order */ + _("Processor"), + _("Model"), processor->model_name, + _("System Type"), processor->vendor_id, + _("Frequency"), processor->cpu_mhz, _("MHz"), + _("BogoMIPS"), processor->bogomips, + _("Byte Order"), byte_order_str() + ); +}