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()
+                   );
+}

Reply via email to