Skip to content

Commit

Permalink
Add loongarch support.
Browse files Browse the repository at this point in the history
  • Loading branch information
liuxiang88 committed Nov 15, 2021
1 parent d29f7b4 commit 56e590d
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "aarch64.*")
set(HARDINFO_ARCH "arm")
elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "ia64")
set(HARDINFO_ARCH "ia64")
elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "loongarch64")
set(HARDINFO_ARCH "loongarch64")
elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "alpha")
set(HARDINFO_ARCH "alpha")
elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "s390.*")
Expand Down
28 changes: 28 additions & 0 deletions includes/loongarch64/processor-platform.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
* HardInfo - Displays System Information
* Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@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__ */
81 changes: 81 additions & 0 deletions modules/devices/loongarch64/processor.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/*
* HardInfo - Displays System Information
* Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@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()
);
}
1 change: 1 addition & 0 deletions modules/devices/usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

#include <string.h>

#include "cpu_util.h"
#include "hardinfo.h"
#include "devices.h"
#include "usb_util.h"
Expand Down

0 comments on commit 56e590d

Please sign in to comment.