aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeandro A. F. Pereira <leandro@hardinfo.org>2006-01-31 23:35:06 +0000
committerLeandro A. F. Pereira <leandro@hardinfo.org>2006-01-31 23:35:06 +0000
commit6ad1c1c257c74c82179a0eb62277ceef1cc4e9e0 (patch)
tree73a0657cad8a96c0d0611ec900b95adc4a264be0
parente9906f6d9335ae96cd6afac714646b97edc469a5 (diff)
Sync with internal subversion
-rw-r--r--hardinfo2/Makefile.in16
-rw-r--r--hardinfo2/arch/common/languages.h2
-rw-r--r--hardinfo2/arch/common/zlib.h8
-rw-r--r--hardinfo2/arch/linux/common/net.h1
-rw-r--r--hardinfo2/arch/linux/common/os.h31
-rw-r--r--hardinfo2/arch/linux/common/pci.h3
l---------hardinfo2/arch/linux/m68k/alsa.h1
l---------hardinfo2/arch/linux/m68k/filesystem.h1
l---------hardinfo2/arch/linux/m68k/inputdevices.h1
l---------hardinfo2/arch/linux/m68k/loadavg.h1
l---------hardinfo2/arch/linux/m68k/memory.h1
l---------hardinfo2/arch/linux/m68k/modules.h1
l---------hardinfo2/arch/linux/m68k/net.h1
l---------hardinfo2/arch/linux/m68k/os.h1
l---------hardinfo2/arch/linux/m68k/pci.h1
-rw-r--r--hardinfo2/arch/linux/m68k/processor.h74
l---------hardinfo2/arch/linux/m68k/samba.h1
l---------hardinfo2/arch/linux/m68k/sensors.h1
l---------hardinfo2/arch/linux/m68k/storage.h1
l---------hardinfo2/arch/linux/m68k/uptime.h1
l---------hardinfo2/arch/linux/m68k/usb.h1
l---------hardinfo2/arch/linux/mips/alsa.h1
l---------hardinfo2/arch/linux/mips/filesystem.h1
l---------hardinfo2/arch/linux/mips/inputdevices.h1
l---------hardinfo2/arch/linux/mips/loadavg.h1
l---------hardinfo2/arch/linux/mips/memory.h1
l---------hardinfo2/arch/linux/mips/modules.h1
l---------hardinfo2/arch/linux/mips/net.h1
l---------hardinfo2/arch/linux/mips/os.h1
l---------hardinfo2/arch/linux/mips/pci.h1
-rw-r--r--hardinfo2/arch/linux/mips/processor.h70
l---------hardinfo2/arch/linux/mips/samba.h1
l---------hardinfo2/arch/linux/mips/sensors.h1
l---------hardinfo2/arch/linux/mips/storage.h1
l---------hardinfo2/arch/linux/mips/uptime.h1
l---------hardinfo2/arch/linux/mips/usb.h1
l---------hardinfo2/arch/linux/parisc/alsa.h1
l---------hardinfo2/arch/linux/parisc/filesystem.h1
l---------hardinfo2/arch/linux/parisc/inputdevices.h1
l---------hardinfo2/arch/linux/parisc/loadavg.h1
l---------hardinfo2/arch/linux/parisc/memory.h1
l---------hardinfo2/arch/linux/parisc/modules.h1
l---------hardinfo2/arch/linux/parisc/net.h1
l---------hardinfo2/arch/linux/parisc/os.h1
l---------hardinfo2/arch/linux/parisc/pci.h1
-rw-r--r--hardinfo2/arch/linux/parisc/processor.h82
l---------hardinfo2/arch/linux/parisc/samba.h1
l---------hardinfo2/arch/linux/parisc/sensors.h1
l---------hardinfo2/arch/linux/parisc/storage.h1
l---------hardinfo2/arch/linux/parisc/uptime.h1
l---------hardinfo2/arch/linux/parisc/usb.h1
l---------hardinfo2/arch/linux/ppc/alsa.h1
l---------hardinfo2/arch/linux/ppc/filesystem.h1
l---------hardinfo2/arch/linux/ppc/inputdevices.h1
l---------hardinfo2/arch/linux/ppc/loadavg.h1
l---------hardinfo2/arch/linux/ppc/memory.h1
l---------hardinfo2/arch/linux/ppc/modules.h1
l---------hardinfo2/arch/linux/ppc/net.h1
l---------hardinfo2/arch/linux/ppc/os.h1
l---------hardinfo2/arch/linux/ppc/pci.h1
-rw-r--r--hardinfo2/arch/linux/ppc/processor.h78
l---------hardinfo2/arch/linux/ppc/samba.h1
l---------hardinfo2/arch/linux/ppc/sensors.h1
l---------hardinfo2/arch/linux/ppc/storage.h1
l---------hardinfo2/arch/linux/ppc/uptime.h1
l---------hardinfo2/arch/linux/ppc/usb.h1
l---------hardinfo2/arch/linux/sparc/alsa.h1
l---------hardinfo2/arch/linux/sparc/filesystem.h1
l---------hardinfo2/arch/linux/sparc/inputdevices.h1
l---------hardinfo2/arch/linux/sparc/loadavg.h1
l---------hardinfo2/arch/linux/sparc/memory.h1
l---------hardinfo2/arch/linux/sparc/modules.h1
l---------hardinfo2/arch/linux/sparc/net.h1
l---------hardinfo2/arch/linux/sparc/os.h1
l---------hardinfo2/arch/linux/sparc/pci.h1
-rw-r--r--hardinfo2/arch/linux/sparc/processor.h59
l---------hardinfo2/arch/linux/sparc/samba.h1
l---------hardinfo2/arch/linux/sparc/sensors.h1
l---------hardinfo2/arch/linux/sparc/storage.h1
l---------hardinfo2/arch/linux/sparc/uptime.h1
l---------hardinfo2/arch/linux/sparc/usb.h1
-rw-r--r--hardinfo2/arch/linux/x86/processor.h46
-rw-r--r--hardinfo2/benchmark.c25
-rw-r--r--hardinfo2/benchmark.conf9
-rw-r--r--hardinfo2/blowfish.c451
-rw-r--r--hardinfo2/blowfish.h33
-rw-r--r--hardinfo2/callbacks.c6
-rw-r--r--hardinfo2/computer.c57
-rw-r--r--hardinfo2/computer.h83
-rwxr-xr-xhardinfo2/configure8
-rw-r--r--hardinfo2/expr.c7
-rw-r--r--hardinfo2/md5.c5
-rw-r--r--hardinfo2/menu.c6
-rw-r--r--hardinfo2/menu.h1
-rw-r--r--hardinfo2/report.c42
-rw-r--r--hardinfo2/sha1.c4
-rw-r--r--hardinfo2/shell.c114
-rw-r--r--hardinfo2/stock.h1
98 files changed, 1171 insertions, 221 deletions
diff --git a/hardinfo2/Makefile.in b/hardinfo2/Makefile.in
index 8b367267..a2496199 100644
--- a/hardinfo2/Makefile.in
+++ b/hardinfo2/Makefile.in
@@ -1,20 +1,26 @@
-CC = gcc -fPIC
+CC = gcc -fPIC -pipe -O3 $(ARCHOPTS)
+CCSLOW = gcc -fPIC -pipe -O0
CFLAGS = -Wall -g $(GTK_CFLAGS) $(GLADE_CFLAGS) -I.
# ----------------------------------------------------------------------------
OBJECTS = hardinfo.o shell.o util.o iconcache.o loadgraph.o sha1.o md5.o \
- menu.o stock.o callbacks.o expr.o report.o
+ menu.o stock.o callbacks.o expr.o report.o blowfish.o
MODULES = computer.so devices.so benchmark.so
all: $(OBJECTS) $(MODULES)
$(CC) $(CFLAGS) -o hardinfo -Wl,-export-dynamic $(OBJECTS) $(GTK_LIBS) $(GTK_FLAGS) \
$(GLADE_LIBS) $(GLADE_FLAGS)
- # Creating FIXME file
- rm -fr FIXME && fgrep -nir "FIXME" * |grep -v Makefile |grep -v svn \
- > FIXME || true
+md5.o:
+ $(CCSLOW) $(CFLAGS) -c md5.c -o $@
+
+blowfish.o:
+ $(CCSLOW) $(CFLAGS) -c blowfish.c -o $@
+
+sha1.o:
+ $(CCSLOW) $(CFLAGS) -c sha1.c -o $@
%.so: %.c
@echo "--- Module: $< ($@)"
diff --git a/hardinfo2/arch/common/languages.h b/hardinfo2/arch/common/languages.h
index 12761976..3a31ef7f 100644
--- a/hardinfo2/arch/common/languages.h
+++ b/hardinfo2/arch/common/languages.h
@@ -63,7 +63,7 @@ scan_languages(OperatingSystem * os)
} else {
gchar *currlocale;
- retval = g_strdup_printf("%s$%s$%s=\n", retval, name, name);
+ retval = g_strdup_printf("%s$%s$%s=%s\n", retval, name, name, title);
currlocale = g_strdup_printf("[Locale Information]\n"
"Name=%s (%s)\n"
diff --git a/hardinfo2/arch/common/zlib.h b/hardinfo2/arch/common/zlib.h
index 74145cae..f68d60f4 100644
--- a/hardinfo2/arch/common/zlib.h
+++ b/hardinfo2/arch/common/zlib.h
@@ -27,8 +27,12 @@ benchmark_zlib(void)
if (!(compress && compressBound)) {
libz = g_module_open("libz", G_MODULE_BIND_LAZY);
if (!libz) {
- return g_strdup("[Error]\n"
- "ZLib not found=");
+ libz = g_module_open("/lib/libz.so", G_MODULE_BIND_LAZY);
+ if (!libz) {
+ g_print("%s\n", g_module_error());
+ return g_strdup("[Error]\n"
+ "ZLib not found=");
+ }
}
if (!g_module_symbol(libz, "compress", (gpointer) & compress)
diff --git a/hardinfo2/arch/linux/common/net.h b/hardinfo2/arch/linux/common/net.h
index d0738ce5..87e7e59b 100644
--- a/hardinfo2/arch/linux/common/net.h
+++ b/hardinfo2/arch/linux/common/net.h
@@ -42,7 +42,6 @@ void get_net_info(char *if_name, NetInfo *netinfo)
strcpy(ifr.ifr_name, if_name);
strcpy(netinfo->name, if_name);
- strcpy(ifr.ifr_name, if_name);
if (ioctl(fd, SIOCGIFMTU, &ifr) < 0) {
netinfo->mtu = 0;
} else {
diff --git a/hardinfo2/arch/linux/common/os.h b/hardinfo2/arch/linux/common/os.h
index c8204e92..0f7b59e3 100644
--- a/hardinfo2/arch/linux/common/os.h
+++ b/hardinfo2/arch/linux/common/os.h
@@ -58,6 +58,9 @@ get_os_compiled_date(void)
return g_strdup(buf);
}
+
+#include <gdk/gdkx.h>
+
void
detect_desktop_environment(OperatingSystem * os)
{
@@ -66,14 +69,15 @@ detect_desktop_environment(OperatingSystem * os)
int maj, min;
if (tmp) {
- /* FIXME: this might not be true, as the gnome-panel in path may not be the one that's running.
- see where the user's running panel is and run *that* to obtain the version.
-
- the same applies do kcontrol --version. */
+ /* FIXME: this might not be true, as the gnome-panel in path
+ may not be the one that's running.
+ see where the user's running panel is and run *that* to
+ obtain the version. */
version = popen("gnome-panel --version", "r");
if (version) {
fscanf(version, "Gnome gnome-panel %d.%d", &maj, &min);
- if (pclose(version)) goto unknown;
+ if (pclose(version))
+ goto unknown;
} else {
goto unknown;
}
@@ -89,7 +93,8 @@ detect_desktop_environment(OperatingSystem * os)
fgets(buf, 32, version);
fscanf(version, "KDE: %d.%d", &maj, &min);
- if (pclose(version)) goto unknown;
+ if (pclose(version))
+ goto unknown;
} else {
goto unknown;
}
@@ -100,7 +105,19 @@ detect_desktop_environment(OperatingSystem * os)
if (!g_getenv("DISPLAY")) {
os->desktop = g_strdup("Terminal");
} else {
- os->desktop = g_strdup("Unknown");
+ const gchar *windowman;
+ GdkScreen *screen = gdk_screen_get_default();
+
+ windowman = gdk_x11_screen_get_window_manager_name(screen);
+
+ if (g_str_equal(windowman, "Xfwm4")) {
+ /* FIXME: check if xprop -root | grep XFCE_DESKTOP_WINDOW
+ is defined */
+ os->desktop = g_strdup("XFCE 4");
+ } else {
+ os->desktop = g_strdup_printf("Unknown (Window Manager: %s)",
+ windowman);
+ }
}
}
}
diff --git a/hardinfo2/arch/linux/common/pci.h b/hardinfo2/arch/linux/common/pci.h
index 8f3216e2..f8c9d319 100644
--- a/hardinfo2/arch/linux/common/pci.h
+++ b/hardinfo2/arch/linux/common/pci.h
@@ -84,7 +84,8 @@ scan_pci(void)
strdevice =
g_strdup_printf("%sOEM Vendor=%s\n", strdevice, buf);
} else if (!strncmp(buf, "Capabilities", 12)
- && !strstr(buf, "only to root")) {
+ && !strstr(buf, "only to root") &&
+ !strstr(buf, "access denied")) {
WALK_UNTIL(' ');
WALK_UNTIL(']');
buf++;
diff --git a/hardinfo2/arch/linux/m68k/alsa.h b/hardinfo2/arch/linux/m68k/alsa.h
new file mode 120000
index 00000000..0216845a
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/alsa.h
@@ -0,0 +1 @@
+../../linux/common/alsa.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/filesystem.h b/hardinfo2/arch/linux/m68k/filesystem.h
new file mode 120000
index 00000000..6b325b40
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/filesystem.h
@@ -0,0 +1 @@
+../../linux/common/filesystem.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/inputdevices.h b/hardinfo2/arch/linux/m68k/inputdevices.h
new file mode 120000
index 00000000..b9226a29
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/inputdevices.h
@@ -0,0 +1 @@
+../../linux/common/inputdevices.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/loadavg.h b/hardinfo2/arch/linux/m68k/loadavg.h
new file mode 120000
index 00000000..daaed6d5
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/loadavg.h
@@ -0,0 +1 @@
+../../linux/common/loadavg.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/memory.h b/hardinfo2/arch/linux/m68k/memory.h
new file mode 120000
index 00000000..5ffc013e
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/memory.h
@@ -0,0 +1 @@
+../../linux/common/memory.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/modules.h b/hardinfo2/arch/linux/m68k/modules.h
new file mode 120000
index 00000000..8ce5a808
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/modules.h
@@ -0,0 +1 @@
+../../linux/common/modules.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/net.h b/hardinfo2/arch/linux/m68k/net.h
new file mode 120000
index 00000000..72d77b26
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/net.h
@@ -0,0 +1 @@
+../../linux/common/net.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/os.h b/hardinfo2/arch/linux/m68k/os.h
new file mode 120000
index 00000000..ef547be5
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/os.h
@@ -0,0 +1 @@
+../../linux/common/os.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/pci.h b/hardinfo2/arch/linux/m68k/pci.h
new file mode 120000
index 00000000..63760048
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/pci.h
@@ -0,0 +1 @@
+../../linux/common/pci.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/processor.h b/hardinfo2/arch/linux/m68k/processor.h
new file mode 100644
index 00000000..0a1bab62
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/processor.h
@@ -0,0 +1,74 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@linuxmag.com.br>
+ *
+ * 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
+ */
+
+static Processor *
+computer_get_processor(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("CPU", processor->model_name);
+ get_float("Clocking", processor->cpu_mhz);
+ get_float("bogomips", processor->bogomips);
+
+ get_str("FPU", processor->has_fpu);
+ }
+ g_strfreev(tmp);
+ }
+
+ gchar *tmp;
+ tmp = g_strconcat("Motorola ", processor->model_name, NULL);
+ g_free(processor->model_name);
+ processor->model_name = tmp;
+
+ fclose(cpuinfo);
+
+ return processor;
+}
+
+static gchar *
+processor_get_info(Processor *processor)
+{
+ return g_strdup_printf("[Processor]\n"
+ "Name=%s\n"
+ "Frequency=%.2fMHz\n"
+ "BogoMips=%.2f\n"
+ "Byte Order=%s\n",
+ processor->model_name,
+ processor->cpu_mhz,
+ processor->bogomips,
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ "Little Endian"
+#else
+ "Big Endian"
+#endif
+ );
+}
diff --git a/hardinfo2/arch/linux/m68k/samba.h b/hardinfo2/arch/linux/m68k/samba.h
new file mode 120000
index 00000000..9227f722
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/samba.h
@@ -0,0 +1 @@
+../../linux/common/samba.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/sensors.h b/hardinfo2/arch/linux/m68k/sensors.h
new file mode 120000
index 00000000..35e5f37a
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/sensors.h
@@ -0,0 +1 @@
+../../linux/common/sensors.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/storage.h b/hardinfo2/arch/linux/m68k/storage.h
new file mode 120000
index 00000000..55b68de3
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/storage.h
@@ -0,0 +1 @@
+../../linux/common/storage.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/uptime.h b/hardinfo2/arch/linux/m68k/uptime.h
new file mode 120000
index 00000000..78c026ff
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/uptime.h
@@ -0,0 +1 @@
+../../linux/common/uptime.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/m68k/usb.h b/hardinfo2/arch/linux/m68k/usb.h
new file mode 120000
index 00000000..8b8fbb5d
--- /dev/null
+++ b/hardinfo2/arch/linux/m68k/usb.h
@@ -0,0 +1 @@
+../../linux/common/usb.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/alsa.h b/hardinfo2/arch/linux/mips/alsa.h
new file mode 120000
index 00000000..0216845a
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/alsa.h
@@ -0,0 +1 @@
+../../linux/common/alsa.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/filesystem.h b/hardinfo2/arch/linux/mips/filesystem.h
new file mode 120000
index 00000000..6b325b40
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/filesystem.h
@@ -0,0 +1 @@
+../../linux/common/filesystem.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/inputdevices.h b/hardinfo2/arch/linux/mips/inputdevices.h
new file mode 120000
index 00000000..b9226a29
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/inputdevices.h
@@ -0,0 +1 @@
+../../linux/common/inputdevices.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/loadavg.h b/hardinfo2/arch/linux/mips/loadavg.h
new file mode 120000
index 00000000..daaed6d5
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/loadavg.h
@@ -0,0 +1 @@
+../../linux/common/loadavg.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/memory.h b/hardinfo2/arch/linux/mips/memory.h
new file mode 120000
index 00000000..5ffc013e
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/memory.h
@@ -0,0 +1 @@
+../../linux/common/memory.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/modules.h b/hardinfo2/arch/linux/mips/modules.h
new file mode 120000
index 00000000..8ce5a808
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/modules.h
@@ -0,0 +1 @@
+../../linux/common/modules.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/net.h b/hardinfo2/arch/linux/mips/net.h
new file mode 120000
index 00000000..72d77b26
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/net.h
@@ -0,0 +1 @@
+../../linux/common/net.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/os.h b/hardinfo2/arch/linux/mips/os.h
new file mode 120000
index 00000000..ef547be5
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/os.h
@@ -0,0 +1 @@
+../../linux/common/os.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/pci.h b/hardinfo2/arch/linux/mips/pci.h
new file mode 120000
index 00000000..63760048
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/pci.h
@@ -0,0 +1 @@
+../../linux/common/pci.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/processor.h b/hardinfo2/arch/linux/mips/processor.h
new file mode 100644
index 00000000..8be922f9
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/processor.h
@@ -0,0 +1,70 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@linuxmag.com.br>
+ *
+ * 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
+ */
+
+static Processor *
+computer_get_processor(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->model_name);
+ get_str("cpu model", processor->vendor_id);
+ get_float("cpu MHz", processor->cpu_mhz);
+ get_float("BogoMIPS", processor->bogomips);
+ }
+ g_strfreev(tmp);
+ }
+
+ fclose(cpuinfo);
+
+ return processor;
+}
+
+static gchar *
+processor_get_info(Processor *processor)
+{
+ return g_strdup_printf("[Processor]\n"
+ "System Type=%s\n"
+ "CPU Model=%s\n"
+ "Frequency=%.2fMHz\n"
+ "BogoMIPS=%.2f\n"
+ "Byte Order=%s\n",
+ processor->model_name,
+ processor->vendor_id,
+ processor->cpu_mhz,
+ processor->bogomips,
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ "Little Endian"
+#else
+ "Big Endian"
+#endif
+ );
+}
diff --git a/hardinfo2/arch/linux/mips/samba.h b/hardinfo2/arch/linux/mips/samba.h
new file mode 120000
index 00000000..9227f722
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/samba.h
@@ -0,0 +1 @@
+../../linux/common/samba.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/sensors.h b/hardinfo2/arch/linux/mips/sensors.h
new file mode 120000
index 00000000..35e5f37a
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/sensors.h
@@ -0,0 +1 @@
+../../linux/common/sensors.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/storage.h b/hardinfo2/arch/linux/mips/storage.h
new file mode 120000
index 00000000..55b68de3
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/storage.h
@@ -0,0 +1 @@
+../../linux/common/storage.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/uptime.h b/hardinfo2/arch/linux/mips/uptime.h
new file mode 120000
index 00000000..78c026ff
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/uptime.h
@@ -0,0 +1 @@
+../../linux/common/uptime.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/mips/usb.h b/hardinfo2/arch/linux/mips/usb.h
new file mode 120000
index 00000000..8b8fbb5d
--- /dev/null
+++ b/hardinfo2/arch/linux/mips/usb.h
@@ -0,0 +1 @@
+../../linux/common/usb.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/alsa.h b/hardinfo2/arch/linux/parisc/alsa.h
new file mode 120000
index 00000000..0216845a
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/alsa.h
@@ -0,0 +1 @@
+../../linux/common/alsa.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/filesystem.h b/hardinfo2/arch/linux/parisc/filesystem.h
new file mode 120000
index 00000000..6b325b40
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/filesystem.h
@@ -0,0 +1 @@
+../../linux/common/filesystem.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/inputdevices.h b/hardinfo2/arch/linux/parisc/inputdevices.h
new file mode 120000
index 00000000..b9226a29
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/inputdevices.h
@@ -0,0 +1 @@
+../../linux/common/inputdevices.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/loadavg.h b/hardinfo2/arch/linux/parisc/loadavg.h
new file mode 120000
index 00000000..daaed6d5
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/loadavg.h
@@ -0,0 +1 @@
+../../linux/common/loadavg.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/memory.h b/hardinfo2/arch/linux/parisc/memory.h
new file mode 120000
index 00000000..5ffc013e
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/memory.h
@@ -0,0 +1 @@
+../../linux/common/memory.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/modules.h b/hardinfo2/arch/linux/parisc/modules.h
new file mode 120000
index 00000000..8ce5a808
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/modules.h
@@ -0,0 +1 @@
+../../linux/common/modules.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/net.h b/hardinfo2/arch/linux/parisc/net.h
new file mode 120000
index 00000000..72d77b26
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/net.h
@@ -0,0 +1 @@
+../../linux/common/net.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/os.h b/hardinfo2/arch/linux/parisc/os.h
new file mode 120000
index 00000000..ef547be5
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/os.h
@@ -0,0 +1 @@
+../../linux/common/os.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/pci.h b/hardinfo2/arch/linux/parisc/pci.h
new file mode 120000
index 00000000..63760048
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/pci.h
@@ -0,0 +1 @@
+../../linux/common/pci.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/processor.h b/hardinfo2/arch/linux/parisc/processor.h
new file mode 100644
index 00000000..41b628f4
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/processor.h
@@ -0,0 +1,82 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@linuxmag.com.br>
+ *
+ * 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
+ */
+
+static Processor *
+computer_get_processor(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("cpu family", processor->model_name);
+ get_str("cpu", processor->vendor_id);
+ get_float("cpu MHz", processor->cpu_mhz);
+ get_float("bogomips", processor->bogomips);
+
+ get_str("model name", processor->strmodel);
+
+ get_int("I-cache", processor->has_fpu);
+ get_int("D-cache", processor->flags);
+
+ }
+ g_strfreev(tmp);
+ }
+
+ fclose(cpuinfo);
+
+ return processor;
+}
+
+static gchar *
+processor_get_info(Processor *processor)
+{
+ return g_strdup_printf("[Processor]\n"
+ "CPU Family=%s\n"
+ "CPU=%s\n"
+ "Frequency=%.2fMHz\n"
+ "Bogomips=%.2f\n"
+ "Model Name=%s\n"
+ "Byte Order=%s\n"
+ "[Cache]\n"
+ "I-Cache=%s\n"
+ "D-Cache=%s\n",
+ processor->model_name,
+ processor->vendor_id,
+ processor->cpu_mhz,
+ processor->bogomips,
+ processor->strmodel,
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ "Little Endian",
+#else
+ "Big Endian",
+#endif
+ processor->has_fpu,
+ processor->flags);
+}
diff --git a/hardinfo2/arch/linux/parisc/samba.h b/hardinfo2/arch/linux/parisc/samba.h
new file mode 120000
index 00000000..9227f722
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/samba.h
@@ -0,0 +1 @@
+../../linux/common/samba.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/sensors.h b/hardinfo2/arch/linux/parisc/sensors.h
new file mode 120000
index 00000000..35e5f37a
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/sensors.h
@@ -0,0 +1 @@
+../../linux/common/sensors.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/storage.h b/hardinfo2/arch/linux/parisc/storage.h
new file mode 120000
index 00000000..55b68de3
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/storage.h
@@ -0,0 +1 @@
+../../linux/common/storage.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/uptime.h b/hardinfo2/arch/linux/parisc/uptime.h
new file mode 120000
index 00000000..78c026ff
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/uptime.h
@@ -0,0 +1 @@
+../../linux/common/uptime.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/parisc/usb.h b/hardinfo2/arch/linux/parisc/usb.h
new file mode 120000
index 00000000..8b8fbb5d
--- /dev/null
+++ b/hardinfo2/arch/linux/parisc/usb.h
@@ -0,0 +1 @@
+../../linux/common/usb.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/alsa.h b/hardinfo2/arch/linux/ppc/alsa.h
new file mode 120000
index 00000000..0216845a
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/alsa.h
@@ -0,0 +1 @@
+../../linux/common/alsa.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/filesystem.h b/hardinfo2/arch/linux/ppc/filesystem.h
new file mode 120000
index 00000000..6b325b40
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/filesystem.h
@@ -0,0 +1 @@
+../../linux/common/filesystem.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/inputdevices.h b/hardinfo2/arch/linux/ppc/inputdevices.h
new file mode 120000
index 00000000..b9226a29
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/inputdevices.h
@@ -0,0 +1 @@
+../../linux/common/inputdevices.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/loadavg.h b/hardinfo2/arch/linux/ppc/loadavg.h
new file mode 120000
index 00000000..daaed6d5
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/loadavg.h
@@ -0,0 +1 @@
+../../linux/common/loadavg.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/memory.h b/hardinfo2/arch/linux/ppc/memory.h
new file mode 120000
index 00000000..5ffc013e
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/memory.h
@@ -0,0 +1 @@
+../../linux/common/memory.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/modules.h b/hardinfo2/arch/linux/ppc/modules.h
new file mode 120000
index 00000000..8ce5a808
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/modules.h
@@ -0,0 +1 @@
+../../linux/common/modules.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/net.h b/hardinfo2/arch/linux/ppc/net.h
new file mode 120000
index 00000000..72d77b26
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/net.h
@@ -0,0 +1 @@
+../../linux/common/net.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/os.h b/hardinfo2/arch/linux/ppc/os.h
new file mode 120000
index 00000000..ef547be5
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/os.h
@@ -0,0 +1 @@
+../../linux/common/os.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/pci.h b/hardinfo2/arch/linux/ppc/pci.h
new file mode 120000
index 00000000..63760048
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/pci.h
@@ -0,0 +1 @@
+../../linux/common/pci.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/processor.h b/hardinfo2/arch/linux/ppc/processor.h
new file mode 100644
index 00000000..f4ff5b0e
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/processor.h
@@ -0,0 +1,78 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@linuxmag.com.br>
+ *
+ * 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
+ */
+
+static Processor *
+computer_get_processor(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("cpu", processor->model_name);
+ get_str("machine", processor->vendor_id);
+ get_int("L2 cache", processor->cache_size);
+ get_float("clock", processor->cpu_mhz);
+ get_float("bogomips", processor->bogomips);
+
+ }
+ g_strfreev(tmp);
+ }
+
+ gchar *tmp = g_strconcat("PowerPC ", processor->model_name, NULL);
+ g_free(processor->model_name);
+ processor->model_name = tmp;
+
+ fclose(cpuinfo);
+
+ return processor;
+}
+
+static gchar *
+processor_get_info(Processor *processor)
+{
+ return g_strdup_printf("[Processor]\n"
+ "Machine=%s\n"
+ "CPU=%s\n"
+ "L2 Cache=%.2f\n"
+ "Frequency=%.2fMHz\n"
+ "BogoMips=%.2f"
+ "Byte Order=%s\n",
+ processor->vendor_id,
+ processor->model_name,
+ processor->cache_size,
+ processor->cpu_mhz,
+ processor->bogomips,
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ "Little Endian"
+#else
+ "Big Endian"
+#endif
+ );
+}
diff --git a/hardinfo2/arch/linux/ppc/samba.h b/hardinfo2/arch/linux/ppc/samba.h
new file mode 120000
index 00000000..9227f722
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/samba.h
@@ -0,0 +1 @@
+../../linux/common/samba.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/sensors.h b/hardinfo2/arch/linux/ppc/sensors.h
new file mode 120000
index 00000000..35e5f37a
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/sensors.h
@@ -0,0 +1 @@
+../../linux/common/sensors.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/storage.h b/hardinfo2/arch/linux/ppc/storage.h
new file mode 120000
index 00000000..55b68de3
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/storage.h
@@ -0,0 +1 @@
+../../linux/common/storage.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/uptime.h b/hardinfo2/arch/linux/ppc/uptime.h
new file mode 120000
index 00000000..78c026ff
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/uptime.h
@@ -0,0 +1 @@
+../../linux/common/uptime.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/ppc/usb.h b/hardinfo2/arch/linux/ppc/usb.h
new file mode 120000
index 00000000..8b8fbb5d
--- /dev/null
+++ b/hardinfo2/arch/linux/ppc/usb.h
@@ -0,0 +1 @@
+../../linux/common/usb.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/alsa.h b/hardinfo2/arch/linux/sparc/alsa.h
new file mode 120000
index 00000000..0216845a
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/alsa.h
@@ -0,0 +1 @@
+../../linux/common/alsa.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/filesystem.h b/hardinfo2/arch/linux/sparc/filesystem.h
new file mode 120000
index 00000000..6b325b40
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/filesystem.h
@@ -0,0 +1 @@
+../../linux/common/filesystem.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/inputdevices.h b/hardinfo2/arch/linux/sparc/inputdevices.h
new file mode 120000
index 00000000..b9226a29
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/inputdevices.h
@@ -0,0 +1 @@
+../../linux/common/inputdevices.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/loadavg.h b/hardinfo2/arch/linux/sparc/loadavg.h
new file mode 120000
index 00000000..daaed6d5
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/loadavg.h
@@ -0,0 +1 @@
+../../linux/common/loadavg.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/memory.h b/hardinfo2/arch/linux/sparc/memory.h
new file mode 120000
index 00000000..5ffc013e
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/memory.h
@@ -0,0 +1 @@
+../../linux/common/memory.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/modules.h b/hardinfo2/arch/linux/sparc/modules.h
new file mode 120000
index 00000000..8ce5a808
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/modules.h
@@ -0,0 +1 @@
+../../linux/common/modules.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/net.h b/hardinfo2/arch/linux/sparc/net.h
new file mode 120000
index 00000000..72d77b26
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/net.h
@@ -0,0 +1 @@
+../../linux/common/net.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/os.h b/hardinfo2/arch/linux/sparc/os.h
new file mode 120000
index 00000000..ef547be5
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/os.h
@@ -0,0 +1 @@
+../../linux/common/os.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/pci.h b/hardinfo2/arch/linux/sparc/pci.h
new file mode 120000
index 00000000..63760048
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/pci.h
@@ -0,0 +1 @@
+../../linux/common/pci.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/processor.h b/hardinfo2/arch/linux/sparc/processor.h
new file mode 100644
index 00000000..211ea56b
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/processor.h
@@ -0,0 +1,59 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@linuxmag.com.br>
+ *
+ * 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
+ */
+
+static Processor *
+computer_get_processor(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("cpu", processor->model_name);
+ get_str("fpu", processor->has_fpu);
+ }
+ g_strfreev(tmp);
+ }
+
+ get_processor_strfamily(processor);
+
+ fclose(cpuinfo);
+
+ return processor;
+}
+
+static gchar *
+processor_get_info(Processor *processor)
+{
+ return g_strdup_printf("[Processor]\n"
+ "CPU=%s\n"
+ "FPU=%s\n",
+ processor->model_name,
+ processor->has_fpu);
+}
diff --git a/hardinfo2/arch/linux/sparc/samba.h b/hardinfo2/arch/linux/sparc/samba.h
new file mode 120000
index 00000000..9227f722
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/samba.h
@@ -0,0 +1 @@
+../../linux/common/samba.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/sensors.h b/hardinfo2/arch/linux/sparc/sensors.h
new file mode 120000
index 00000000..35e5f37a
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/sensors.h
@@ -0,0 +1 @@
+../../linux/common/sensors.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/storage.h b/hardinfo2/arch/linux/sparc/storage.h
new file mode 120000
index 00000000..55b68de3
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/storage.h
@@ -0,0 +1 @@
+../../linux/common/storage.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/uptime.h b/hardinfo2/arch/linux/sparc/uptime.h
new file mode 120000
index 00000000..78c026ff
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/uptime.h
@@ -0,0 +1 @@
+../../linux/common/uptime.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/sparc/usb.h b/hardinfo2/arch/linux/sparc/usb.h
new file mode 120000
index 00000000..8b8fbb5d
--- /dev/null
+++ b/hardinfo2/arch/linux/sparc/usb.h
@@ -0,0 +1 @@
+../../linux/common/usb.h \ No newline at end of file
diff --git a/hardinfo2/arch/linux/x86/processor.h b/hardinfo2/arch/linux/x86/processor.h
index 395b6aa3..571943f6 100644
--- a/hardinfo2/arch/linux/x86/processor.h
+++ b/hardinfo2/arch/linux/x86/processor.h
@@ -224,6 +224,7 @@ static struct {
{ "dts", "Debug Store" },
{ "ss", "Self Snoop" },
{ "tm", "Thermal Monitor" },
+ { "pbe", "Pending Break Enable" },
{ "pb", "Pending Break Enable" },
{ NULL, NULL}
};
@@ -255,3 +256,48 @@ processor_get_capabilities_from_flags(gchar * strflags)
g_strfreev(old);
return tmp;
}
+
+static gchar *
+processor_get_info(Processor *processor)
+{
+ gchar *tmp = processor_get_capabilities_from_flags(processor->
+ flags);
+ gchar *ret = g_strdup_printf("[Processor]\n"
+ "Name=%s\n"
+ "Specification=%s\n"
+ "Family, model, stepping=%d, %d, %d\n"
+ "Vendor=%s\n"
+ "Cache Size=%dkb\n"
+ "Frequency=%.2fMHz\n"
+ "BogoMips=%.2f\n"
+ "Byte Order=%s\n"
+ "[Features]\n"
+ "FDIV Bug=%s\n"
+ "HLT Bug=%s\n"
+ "F00F Bug=%s\n"
+ "Coma Bug=%s\n"
+ "Has FPU=%s\n"
+ "[Capabilities]\n" "%s",
+ processor->strmodel,
+ processor->model_name,
+ processor->family,
+ processor->model,
+ processor->stepping,
+ processor->vendor_id,
+ processor->cache_size,
+ processor->cpu_mhz,
+ processor->bogomips,
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ "Little Endian",
+#else
+ "Big Endian",
+#endif
+ processor->bug_fdiv,
+ processor->bug_hlt,
+ processor->bug_f00f,
+ processor->bug_coma,
+ processor->has_fpu,
+ tmp);
+ g_free(tmp);
+ return ret;
+}
diff --git a/hardinfo2/benchmark.c b/hardinfo2/benchmark.c
index e15c0dfe..f4cb904c 100644
--- a/hardinfo2/benchmark.c
+++ b/hardinfo2/benchmark.c
@@ -26,13 +26,15 @@ enum {
BENCHMARK_FIB,
BENCHMARK_MD5,
BENCHMARK_SHA1,
+ BENCHMARK_BLOWFISH
} Entries;
static ModuleEntry hi_entries[] = {
{"CPU ZLib", "compress.png"},
{"CPU Fibonacci", "module.png"},
{"CPU MD5", "module.png"},
- {"CPU SHA1", "module.png"}
+ {"CPU SHA1", "module.png"},
+ {"CPU Blowfish", "blowfish.png"}
};
static gchar *
@@ -52,24 +54,24 @@ benchmark_include_results(gchar *results, const gchar *benchmark)
g_free(value);
}
- results = g_strconcat(results, "[$ShellParam$]\n"
- "Zebra=1\n", NULL);
-
g_strfreev(machines);
g_key_file_free(conf);
- return results;
+ return g_strconcat(results, "[$ShellParam$]\n"
+ "Zebra=1\n", NULL);
}
#include <arch/common/fib.h>
#include <arch/common/zlib.h>
#include <arch/common/md5.h>
#include <arch/common/sha1.h>
+#include <arch/common/blowfish.h>
static gchar *bench_zlib = NULL,
*bench_fib = NULL,
*bench_md5 = NULL,
- *bench_sha1 = NULL;
+ *bench_sha1 = NULL,
+ *bench_fish = NULL;
gchar *
hi_info(gint entry)
@@ -82,6 +84,13 @@ hi_info(gint entry)
bench_zlib = benchmark_zlib();
return g_strdup(bench_zlib);
+ case BENCHMARK_BLOWFISH:
+ if (bench_fish)
+ return g_strdup(bench_fish);
+
+ bench_fish = benchmark_fish();
+ return g_strdup(bench_fish);
+
case BENCHMARK_MD5:
if (bench_md5)
return g_strdup(bench_md5);
@@ -116,6 +125,10 @@ hi_reload(gint entry)
if (bench_zlib) g_free(bench_zlib);
bench_zlib = benchmark_zlib();
break;
+ case BENCHMARK_BLOWFISH:
+ if (bench_fish) g_free(bench_fish);
+ bench_fish = benchmark_fish();
+ break;
case BENCHMARK_MD5:
if (bench_md5) g_free(bench_md5);
bench_md5 = benchmark_md5();
diff --git a/hardinfo2/benchmark.conf b/hardinfo2/benchmark.conf
index 0deda857..2db3f3b8 100644
--- a/hardinfo2/benchmark.conf
+++ b/hardinfo2/benchmark.conf
@@ -1,6 +1,8 @@
[ZLib]
# RAM:1024,Board:GA-7NNXP,OS:Linux 2.6.15
AMD Athlon XP 3200+=4.33
+# RAM:512,Board:Toshiba M45-S165,OS:Linux 2.6.15,Compiler:GCC 3.3.5
+Intel Celeron M 1.5GHz=5.63
AMD Athlon XP 2200+=7.38
# RAM:128,Board:XingLing,OS:Linux 2.4.20
Intel Pentium 200MHz=117.79
@@ -13,6 +15,8 @@ Intel Pentium 75MHz=173.06
# RAM:1024,Board:GA-7NNXP,OS:Linux 2.6.15
AMD Athlon XP 3200+=6.64
#AMD Athlon XP 2200+=3.54
+# RAM:512,Board:Toshiba M45-S165,OS:Linux 2.6.15,Compiler:GCC 3.3.5
+Intel Celeron M 1.5GHz=11.10
# RAM:128,Board:XingLing,OS:Linux 2.4.20
#Intel Pentium 200MHz=35.02
# RAM:32,Board:Toshiba Libretto 50CT,OS:Linux 2.4.20
@@ -20,10 +24,15 @@ AMD Athlon XP 3200+=6.64
# RAM:1024,Board:GA-7NNXP,OS:Linux 2.6.15
#Valgrind/AMD Athlon XP 3200+=164.92
+
[MD5]
+# RAM:512,Board:Toshiba M45-S165,OS:Linux 2.6.15,Compiler:GCC 3.3.5
+Intel Celeron M 1.5GHz=3.42
# RAM:1024,Board:GA-7NNXP,OS:Linux 2.6.15
AMD Athlon XP 3200+=5.04
[SHA1]
# RAM:1024,Board:GA-7NNXP,OS:Linux 2.6.15
AMD Athlon XP 3200+=4.88
+# RAM:512,Board:Toshiba M45-S165,OS:Linux 2.6.15,Compiler:GCC 3.3.5
+Intel Celeron M 1.5GHz=5.50
diff --git a/hardinfo2/blowfish.c b/hardinfo2/blowfish.c
new file mode 100644
index 00000000..929bfb14
--- /dev/null
+++ b/hardinfo2/blowfish.c
@@ -0,0 +1,451 @@
+/*
+blowfish.c: C implementation of the Blowfish algorithm.
+
+Copyright (C) 1997 by Paul Kocher
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+This library 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
+Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+
+
+COMMENTS ON USING THIS CODE:
+
+Normal usage is as follows:
+ [1] Allocate a BLOWFISH_CTX. (It may be too big for the stack.)
+ [2] Call Blowfish_Init with a pointer to your BLOWFISH_CTX, a pointer to
+ the key, and the number of bytes in the key.
+ [3] To encrypt a 64-bit block, call Blowfish_Encrypt with a pointer to
+ BLOWFISH_CTX, a pointer to the 32-bit left half of the plaintext
+ and a pointer to the 32-bit right half. The plaintext will be
+ overwritten with the ciphertext.
+ [4] Decryption is the same as encryption except that the plaintext and
+ ciphertext are reversed.
+
+Warning #1: The code does not check key lengths. (Caveat encryptor.)
+Warning #2: Beware that Blowfish keys repeat such that "ab" = "abab".
+Warning #3: It is normally a good idea to zeroize the BLOWFISH_CTX before
+ freeing it.
+Warning #4: Endianness conversions are the responsibility of the caller.
+ (To encrypt bytes on a little-endian platforms, you'll probably want
+ to swap bytes around instead of just casting.)
+Warning #5: Make sure to use a reasonable mode of operation for your
+ application. (If you don't know what CBC mode is, see Warning #7.)
+Warning #6: This code is susceptible to timing attacks.
+Warning #7: Security engineering is risky and non-intuitive. Have someone
+ check your work. If you don't know what you are doing, get help.
+
+
+This is code is fast enough for most applications, but is not optimized for
+speed.
+
+If you require this code under a license other than LGPL, please ask. (I
+can be located using your favorite search engine.) Unfortunately, I do not
+have time to provide unpaid support for everyone who uses this code.
+
+ -- Paul Kocher
+*/
+
+
+#include "blowfish.h"
+
+#define N 16
+
+static const unsigned long ORIG_P[16 + 2] = {
+ 0x243F6A88L, 0x85A308D3L, 0x13198A2EL, 0x03707344L,
+ 0xA4093822L, 0x299F31D0L, 0x082EFA98L, 0xEC4E6C89L,
+ 0x452821E6L, 0x38D01377L, 0xBE5466CFL, 0x34E90C6CL,
+ 0xC0AC29B7L, 0xC97C50DDL, 0x3F84D5B5L, 0xB5470917L,
+ 0x9216D5D9L, 0x8979FB1BL
+};
+
+static const unsigned long ORIG_S[4][256] = {
+ { 0xD1310BA6L, 0x98DFB5ACL, 0x2FFD72DBL, 0xD01ADFB7L,
+ 0xB8E1AFEDL, 0x6A267E96L, 0xBA7C9045L, 0xF12C7F99L,
+ 0x24A19947L, 0xB3916CF7L, 0x0801F2E2L, 0x858EFC16L,
+ 0x636920D8L, 0x71574E69L, 0xA458FEA3L, 0xF4933D7EL,
+ 0x0D95748FL, 0x728EB658L, 0x718BCD58L, 0x82154AEEL,
+ 0x7B54A41DL, 0xC25A59B5L, 0x9C30D539L, 0x2AF26013L,
+ 0xC5D1B023L, 0x286085F0L, 0xCA417918L, 0xB8DB38EFL,
+ 0x8E79DCB0L, 0x603A180EL, 0x6C9E0E8BL, 0xB01E8A3EL,
+ 0xD71577C1L, 0xBD314B27L, 0x78AF2FDAL, 0x55605C60L,
+ 0xE65525F3L, 0xAA55AB94L, 0x57489862L, 0x63E81440L,
+ 0x55CA396AL, 0x2AAB10B6L, 0xB4CC5C34L, 0x1141E8CEL,
+ 0xA15486AFL, 0x7C72E993L, 0xB3EE1411L, 0x636FBC2AL,
+ 0x2BA9C55DL, 0x741831F6L, 0xCE5C3E16L, 0x9B87931EL,
+ 0xAFD6BA33L, 0x6C24CF5CL, 0x7A325381L, 0x28958677L,
+ 0x3B8F4898L, 0x6B4BB9AFL, 0xC4BFE81BL, 0x66282193L,
+ 0x61D809CCL, 0xFB21A991L, 0x487CAC60L, 0x5DEC8032L,
+ 0xEF845D5DL, 0xE98575B1L, 0xDC262302L, 0xEB651B88L,
+ 0x23893E81L, 0xD396ACC5L, 0x0F6D6FF3L, 0x83F44239L,
+ 0x2E0B4482L, 0xA4842004L, 0x69C8F04AL, 0x9E1F9B5EL,
+ 0x21C66842L, 0xF6E96C9AL, 0x670C9C61L, 0xABD388F0L,
+ 0x6A51A0D2L, 0xD8542F68L, 0x960FA728L, 0xAB5133A3L,
+ 0x6EEF0B6CL, 0x137A3BE4L, 0xBA3BF050L, 0x7EFB2A98L,
+ 0xA1F1651DL, 0x39AF0176L, 0x66CA593EL, 0x82430E88L,
+ 0x8CEE8619L, 0x456F9FB4L, 0x7D84A5C3L, 0x3B8B5EBEL,
+ 0xE06F75D8L, 0x85C12073L, 0x401A449FL, 0x56C16AA6L,
+ 0x4ED3AA62L, 0x363F7706L, 0x1BFEDF72L, 0x429B023DL,
+ 0x37D0D724L, 0xD00A1248L, 0xDB0FEAD3L, 0x49F1C09BL,
+ 0x075372C9L, 0x80991B7BL, 0x25D479D8L, 0xF6E8DEF7L,
+ 0xE3FE501AL, 0xB6794C3BL, 0x976CE0BDL, 0x04C006BAL,
+ 0xC1A94FB6L, 0x409F60C4L, 0x5E5C9EC2L, 0x196A2463L,
+ 0x68FB6FAFL, 0x3E6C53B5L, 0x1339B2EBL, 0x3B52EC6FL,
+ 0x6DFC511FL, 0x9B30952CL, 0xCC814544L, 0xAF5EBD09L,
+ 0xBEE3D004L, 0xDE334AFDL, 0x660F2807L, 0x192E4BB3L,
+ 0xC0CBA857L, 0x45C8740FL, 0xD20B5F39L, 0xB9D3FBDBL,
+ 0x5579C0BDL, 0x1A60320AL, 0xD6A100C6L, 0x402C7279L,
+ 0x679F25FEL, 0xFB1FA3CCL, 0x8EA5E9F8L, 0xDB3222F8L,
+ 0x3C7516DFL, 0xFD616B15L, 0x2F501EC8L, 0xAD0552ABL,
+ 0x323DB5FAL, 0xFD238760L, 0x53317B48L, 0x3E00DF82L,
+ 0x9E5C57BBL, 0xCA6F8CA0L, 0x1A87562EL, 0xDF1769DBL,
+ 0xD542A8F6L, 0x287EFFC3L, 0xAC6732C6L, 0x8C4F5573L,
+ 0x695B27B0L, 0xBBCA58C8L, 0xE1FFA35DL, 0xB8F011A0L,
+ 0x10FA3D98L, 0xFD2183B8L, 0x4AFCB56CL, 0x2DD1D35BL,
+ 0x9A53E479L, 0xB6F84565L, 0xD28E49BCL, 0x4BFB9790L,
+ 0xE1DDF2DAL, 0xA4CB7E33L, 0x62FB1341L, 0xCEE4C6E8L,
+ 0xEF20CADAL, 0x36774C01L, 0xD07E9EFEL, 0x2BF11FB4L,
+ 0x95DBDA4DL, 0xAE909198L, 0xEAAD8E71L, 0x6B93D5A0L,
+ 0xD08ED1D0L, 0xAFC725E0L, 0x8E3C5B2FL, 0x8E7594B7L,
+ 0x8FF6E2FBL, 0xF2122B64L, 0x8888B812L, 0x900DF01CL,
+ 0x4FAD5EA0L, 0x688FC31CL, 0xD1CFF191L, 0xB3A8C1ADL,
+ 0x2F2F2218L, 0xBE0E1777L, 0xEA752DFEL, 0x8B021FA1L,
+ 0xE5A0CC0FL, 0xB56F74E8L, 0x18ACF3D6L, 0xCE89E299L,
+ 0xB4A84FE0L, 0xFD13E0B7L, 0x7CC43B81L, 0xD2ADA8D9L,
+ 0x165FA266L, 0x80957705L, 0x93CC7314L, 0x211A1477L,
+ 0xE6AD2065L, 0x77B5FA86L, 0xC75442F5L, 0xFB9D35CFL,
+ 0xEBCDAF0CL, 0x7B3E89A0L, 0xD6411BD3L, 0xAE1E7E49L,
+ 0x00250E2DL, 0x2071B35EL, 0x226800BBL, 0x57B8E0AFL,
+ 0x2464369BL, 0xF009B91EL, 0x5563911DL, 0x59DFA6AAL,
+ 0x78C14389L, 0xD95A537FL, 0x207D5BA2L, 0x02E5B9C5L,
+ 0x83260376L, 0x6295CFA9L, 0x11C81968L, 0x4E734A41L,
+ 0xB3472DCAL, 0x7B14A94AL, 0x1B510052L, 0x9A532915L,
+ 0xD60F573FL, 0xBC9BC6E4L, 0x2B60A476L, 0x81E67400L,
+ 0x08BA6FB5L, 0x571BE91FL, 0xF296EC6BL, 0x2A0DD915L,
+ 0xB6636521L, 0xE7B9F9B6L, 0xFF34052EL, 0xC5855664L,
+ 0x53B02D5DL, 0xA99F8FA1L, 0x08BA4799L, 0x6E85076AL },
+ { 0x4B7A70E9L, 0xB5B32944L, 0xDB75092EL, 0xC4192623L,
+ 0xAD6EA6B0L, 0x49A7DF7DL, 0x9CEE60B8L, 0x8FEDB266L,
+ 0xECAA8C71L, 0x699A17FFL, 0x5664526CL, 0xC2B19EE1L,
+ 0x193602A5L, 0x75094C29L, 0xA0591340L, 0xE4183A3EL,
+ 0x3F54989AL, 0x5B429D65L, 0x6B8FE4D6L, 0x99F73FD6L,
+ 0xA1D29C07L, 0xEFE830F5L, 0x4D2D38E6L, 0xF0255DC1L,
+ 0x4CDD2086L, 0x8470EB26L, 0x6382E9C6L, 0x021ECC5EL,
+ 0x09686B3FL, 0x3EBAEFC9L, 0x3C971814L, 0x6B6A70A1L,
+ 0x687F3584L, 0x52A0E286L, 0xB79C5305L, 0xAA500737L,
+ 0x3E07841CL, 0x7FDEAE5CL, 0x8E7D44ECL, 0x5716F2B8L,
+ 0xB03ADA37L, 0xF0500C0DL, 0xF01C1F04L, 0x0200B3FFL,
+ 0xAE0CF51AL, 0x3CB574B2L, 0x25837A58L, 0xDC0921BDL,
+ 0xD19113F9L, 0x7CA92FF6L, 0x94324773L, 0x22F54701L,
+ 0x3AE5E581L, 0x37C2DADCL, 0xC8B57634L, 0x9AF3DDA7L,
+ 0xA9446146L, 0x0FD0030EL, 0xECC8C73EL, 0xA4751E41L,
+ 0xE238CD99L, 0x3BEA0E2FL, 0x3280BBA1L, 0x183EB331L,
+ 0x4E548B38L, 0x4F6DB908L, 0x6F420D03L, 0xF60A04BFL,
+ 0x2CB81290L, 0x24977C79L, 0x5679B072L, 0xBCAF89AFL,
+ 0xDE9A771FL, 0xD9930810L, 0xB38BAE12L, 0xDCCF3F2EL,
+ 0x5512721FL, 0x2E6B7124L, 0x501ADDE6L, 0x9F84CD87L,
+ 0x7A584718L, 0x7408DA17L, 0xBC9F9ABCL, 0xE94B7D8CL,
+ 0xEC7AEC3AL, 0xDB851DFAL, 0x63094366L, 0xC464C3D2L,
+ 0xEF1C1847L, 0x3215D908L, 0xDD433B37L, 0x24C2BA16L,
+ 0x12A14D43L, 0x2A65C451L, 0x50940002L, 0x133AE4DDL,
+ 0x71DFF89EL, 0x10314E55L, 0x81AC77D6L, 0x5F11199BL,
+ 0x043556F1L, 0xD7A3C76BL, 0x3C11183BL, 0x5924A509L,
+ 0xF28FE6EDL, 0x97F1FBFAL, 0x9EBABF2CL, 0x1E153C6EL,
+ 0x86E34570L, 0xEAE96FB1L, 0x860E5E0AL, 0x5A3E2AB3L,
+ 0x771FE71CL, 0x4E3D06FAL, 0x2965DCB9L, 0x99E71D0FL,
+ 0x803E89D6L, 0x5266C825L, 0x2E4CC978L, 0x9C10B36AL,
+ 0xC6150EBAL, 0x94E2EA78L, 0xA5FC3C53L, 0x1E0A2DF4L,
+ 0xF2F74EA7L, 0x361D2B3DL, 0x1939260FL, 0x19C27960L,
+ 0x5223A708L, 0xF71312B6L, 0xEBADFE6EL, 0xEAC31F66L,
+ 0xE3BC4595L, 0xA67BC883L, 0xB17F37D1L, 0x018CFF28L,
+ 0xC332DDEFL, 0xBE6C5AA5L, 0x65582185L, 0x68AB9802L,
+ 0xEECEA50FL, 0xDB2F953BL, 0x2AEF7DADL, 0x5B6E2F84L,
+ 0x1521B628L, 0x29076170L, 0xECDD4775L, 0x619F1510L,
+ 0x13CCA830L, 0xEB61BD96L, 0x0334FE1EL, 0xAA0363CFL,
+ 0xB5735C90L, 0x4C70A239L, 0xD59E9E0BL, 0xCBAADE14L,
+ 0xEECC86BCL, 0x60622CA7L, 0x9CAB5CABL, 0xB2F3846EL,
+ 0x648B1EAFL, 0x19BDF0CAL, 0xA02369B9L, 0x655ABB50L,
+ 0x40685A32L, 0x3C2AB4B3L, 0x319EE9D5L, 0xC021B8F7L,
+ 0x9B540B19L, 0x875FA099L, 0x95F7997EL, 0x623D7DA8L,
+ 0xF837889AL, 0x97E32D77L, 0x11ED935FL, 0x16681281L,
+ 0x0E358829L, 0xC7E61FD6L, 0x96DEDFA1L, 0x7858BA99L,
+ 0x57F584A5L, 0x1B227263L, 0x9B83C3FFL, 0x1AC24696L,
+ 0xCDB30AEBL, 0x532E3054L, 0x8FD948E4L, 0x6DBC3128L,
+ 0x58EBF2EFL, 0x34C6FFEAL, 0xFE28ED61L, 0xEE7C3C73L,
+ 0x5D4A14D9L, 0xE864B7E3L, 0x42105D14L, 0x203E13E0L,
+ 0x45EEE2B6L, 0xA3AAABEAL, 0xDB6C4F15L, 0xFACB4FD0L,
+ 0xC742F442L, 0xEF6ABBB5L, 0x654F3B1DL, 0x41CD2105L,
+ 0xD81E799EL, 0x86854DC7L, 0xE44B476AL, 0x3D816250L,
+ 0xCF62A1F2L, 0x5B8D2646L, 0xFC8883A0L, 0xC1C7B6A3L,
+ 0x7F1524C3L, 0x69CB7492L, 0x47848A0BL, 0x5692B285L,
+ 0x095BBF00L, 0xAD19489DL, 0x1462B174L, 0x23820E00L,
+ 0x58428D2AL, 0x0C55F5EAL, 0x1DADF43EL, 0x233F7061L,
+ 0x3372F092L, 0x8D937E41L, 0xD65FECF1L, 0x6C223BDBL,
+ 0x7CDE3759L, 0xCBEE7460L, 0x4085F2A7L, 0xCE77326EL,
+ 0xA6078084L, 0x19F8509EL, 0xE8EFD855L, 0x61D99735L,
+ 0xA969A7AAL, 0xC50C06C2L, 0x5A04ABFCL, 0x800BCADCL,
+ 0x9E447A2EL, 0xC3453484L, 0xFDD56705L, 0x0E1E9EC9L,
+ 0xDB73DBD3L, 0x105588CDL, 0x675FDA79L, 0xE3674340L,
+ 0xC5C43465L, 0x713E38D8L, 0x3D28F89EL, 0xF16DFF20L,
+ 0x153E21E7L, 0x8FB03D4AL, 0xE6E39F2BL, 0xDB83ADF7L },
+ { 0xE93D5A68L, 0x948140F7L, 0xF64C261CL, 0x94692934L,
+ 0x411520F7L, 0x7602D4F7L, 0xBCF46B2EL, 0xD4A20068L,
+ 0xD4082471L, 0x3320F46AL, 0x43B7D4B7L, 0x500061AFL,
+ 0x1E39F62EL, 0x97244546L, 0x14214F74L, 0xBF8B8840L,
+ 0x4D95FC1DL, 0x96B591AFL, 0x70F4DDD3L, 0x66A02F45L,
+ 0xBFBC09ECL, 0x03BD9785L, 0x7FAC6DD0L, 0x31CB8504L,
+ 0x96EB27B3L, 0x55FD3941L, 0xDA2547E6L, 0xABCA0A9AL,
+ 0x28507825L, 0x530429F4L, 0x0A2C86DAL, 0xE9B66DFBL,
+ 0x68DC1462L, 0xD7486900L, 0x680EC0A4L, 0x27A18DEEL,
+ 0x4F3FFEA2L, 0xE887AD8CL, 0xB58CE006L, 0x7AF4D6B6L,
+ 0xAACE1E7CL, 0xD3375FECL, 0xCE78A399L, 0x406B2A42L,
+ 0x20FE9E35L, 0xD9F385B9L, 0xEE39D7ABL, 0x3B124E8BL,
+ 0x1DC9FAF7L, 0x4B6D1856L, 0x26A36631L, 0xEAE397B2L,
+ 0x3A6EFA74L, 0xDD5B4332L, 0x6841E7F7L, 0xCA7820FBL,
+ 0xFB0AF54EL, 0xD8FEB397L, 0x454056ACL, 0xBA489527L,
+ 0x55533A3AL, 0x20838D87L, 0xFE6BA9B7L, 0xD096954BL,
+ 0x55A867BCL, 0xA1159A58L, 0xCCA92963L, 0x99E1DB33L,
+ 0xA62A4A56L, 0x3F3125F9L, 0x5EF47E1CL, 0x9029317CL,
+ 0xFDF8E802L, 0x04272F70L, 0x80BB155CL, 0x05282CE3L,
+ 0x95C11548L, 0xE4C66D22L, 0x48C1133FL, 0xC70F86DCL,
+ 0x07F9C9EEL, 0x41041F0FL, 0x404779A4L, 0x5D886E17L,
+ 0x325F51EBL, 0xD59BC0D1L, 0xF2BCC18FL, 0x41113564L,
+ 0x257B7834L, 0x602A9C60L, 0xDFF8E8A3L, 0x1F636C1BL,
+ 0x0E12B4C2L, 0x02E1329EL, 0xAF664FD1L, 0xCAD18115L,
+ 0x6B2395E0L, 0x333E92E1L, 0x3B240B62L, 0xEEBEB922L,
+ 0x85B2A20EL, 0xE6BA0D99L, 0xDE720C8CL, 0x2DA2F728L,
+ 0xD0127845L, 0x95B794FDL, 0x647D0862L, 0xE7CCF5F0L,
+ 0x5449A36FL, 0x877D48FAL, 0xC39DFD27L, 0xF33E8D1EL,
+ 0x0A476341L, 0x992EFF74L, 0x3A6F6EABL, 0xF4F8FD37L,
+ 0xA812DC60L, 0xA1EBDDF8L, 0x991BE14CL, 0xDB6E6B0DL,
+ 0xC67B5510L, 0x6D672C37L, 0x2765D43BL, 0xDCD0E804L,
+ 0xF1290DC7L, 0xCC00FFA3L, 0xB5390F92L, 0x690FED0BL,
+ 0x667B9FFBL, 0xCEDB7D9CL, 0xA091CF0BL, 0xD9155EA3L,
+ 0xBB132F88L, 0x515BAD24L, 0x7B9479BFL, 0x763BD6EBL,
+ 0x37392EB3L, 0xCC115979L, 0x8026E297L, 0xF42E312DL,
+ 0x6842ADA7L, 0xC66A2B3BL, 0x12754CCCL, 0x782EF11CL,
+ 0x6A124237L, 0xB79251E7L, 0x06A1BBE6L, 0x4BFB6350L,
+ 0x1A6B1018L, 0x11CAEDFAL, 0x3D25BDD8L, 0xE2E1C3C9L,
+ 0x44421659L, 0x0A121386L, 0xD90CEC6EL, 0xD5ABEA2AL,
+ 0x64AF674EL, 0xDA86A85FL, 0xBEBFE988L, 0x64E4C3FEL,
+ 0x9DBC8057L, 0xF0F7C086L, 0x60787BF8L, 0x6003604DL,
+ 0xD1FD8346L, 0xF6381FB0L, 0x7745AE04L, 0xD736FCCCL,
+ 0x83426B33L, 0xF01EAB71L, 0xB0804187L, 0x3C005E5FL,
+ 0x77A057BEL, 0xBDE8AE24L, 0x55464299L, 0xBF582E61L,
+ 0x4E58F48FL, 0xF2DDFDA2L, 0xF474EF38L, 0x8789BDC2L,
+ 0x5366F9C3L, 0xC8B38E74L, 0xB475F255L, 0x46FCD9B9L,
+ 0x7AEB2661L, 0x8B1DDF84L, 0x846A0E79L, 0x915F95E2L,
+ 0x466E598EL, 0x20B45770L, 0x8CD55591L, 0xC902DE4CL,
+ 0xB90BACE1L, 0xBB8205D0L, 0x11A86248L, 0x7574A99EL,
+ 0xB77F19B6L, 0xE0A9DC09L, 0x662D09A1L, 0xC4324633L,
+ 0xE85A1F02L, 0x09F0BE8CL, 0x4A99A025L, 0x1D6EFE10L,
+ 0x1AB93D1DL, 0x0BA5A4DFL, 0xA186F20FL, 0x2868F169L,
+ 0xDCB7DA83L, 0x573906FEL, 0xA1E2CE9BL, 0x4FCD7F52L,
+ 0x50115E01L, 0xA70683FAL, 0xA002B5C4L, 0x0DE6D027L,
+ 0x9AF88C27L, 0x773F8641L, 0xC3604C06L, 0x61A806B5L,
+ 0xF0177A28L, 0xC0F586E0L, 0x006058AAL, 0x30DC7D62L,
+ 0x11E69ED7L, 0x2338EA63L, 0x53C2DD94L, 0xC2C21634L,
+ 0xBBCBEE56L, 0x90BCB6DEL, 0xEBFC7DA1L, 0xCE591D76L,
+ 0x6F05E409L, 0x4B7C0188L, 0x39720A3DL, 0x7C927C24L,
+ 0x86E3725FL, 0x724D9DB9L, 0x1AC15BB4L, 0xD39EB8FCL,
+ 0xED545578L, 0x08FCA5B5L, 0xD83D7CD3L, 0x4DAD0FC4L,
+ 0x1E50EF5EL, 0xB161E6F8L, 0xA28514D9L, 0x6C51133CL,
+ 0x6FD5C7E7L, 0x56E14EC4L, 0x362ABFCEL, 0xDDC6C837L,
+ 0xD79A3234L, 0x92638212L, 0x670EFA8EL, 0x406000E0L },
+ { 0x3A39CE37L, 0xD3FAF5CFL, 0xABC27737L, 0x5AC52D1BL,
+ 0x5CB0679EL, 0x4FA33742L, 0xD3822740L, 0x99BC9BBEL,
+ 0xD5118E9DL, 0xBF0F7315L, 0xD62D1C7EL, 0xC700C47BL,
+ 0xB78C1B6BL, 0x21A19045L, 0xB26EB1BEL, 0x6A366EB4L,
+ 0x5748AB2FL, 0xBC946E79L, 0xC6A376D2L, 0x6549C2C8L,
+ 0x530FF8EEL, 0x468DDE7DL, 0xD5730A1DL, 0x4CD04DC6L,
+ 0x2939BBDBL, 0xA9BA4650L, 0xAC9526E8L, 0xBE5EE304L,
+ 0xA1FAD5F0L, 0x6A2D519AL, 0x63EF8CE2L, 0x9A86EE22L,
+ 0xC089C2B8L, 0x43242EF6L, 0xA51E03AAL, 0x9CF2D0A4L,
+ 0x83C061BAL, 0x9BE96A4DL, 0x8FE51550L, 0xBA645BD6L,
+ 0x2826A2F9L, 0xA73A3AE1L, 0x4BA99586L, 0xEF5562E9L,
+ 0xC72FEFD3L, 0xF752F7DAL, 0x3F046F69L, 0x77FA0A59L,
+ 0x80E4A915L, 0x87B08601L, 0x9B09E6ADL, 0x3B3EE593L,
+ 0xE990FD5AL, 0x9E34D797L, 0x2CF0B7D9L, 0x022B8B51L,
+ 0x96D5AC3AL, 0x017DA67DL, 0xD1CF3ED6L, 0x7C7D2D28L,
+ 0x1F9F25CFL, 0xADF2B89BL, 0x5AD6B472L, 0x5A88F54CL,
+ 0xE029AC71L, 0xE019A5E6L, 0x47B0ACFDL, 0xED93FA9BL,
+ 0xE8D3C48DL, 0x283B57CCL, 0xF8D56629L, 0x79132E28L,
+ 0x785F0191L, 0xED756055L, 0xF7960E44L, 0xE3D35E8CL,
+ 0x15056DD4L, 0x88F46DBAL, 0x03A16125L, 0x0564F0BDL,
+ 0xC3EB9E15L, 0x3C9057A2L, 0x97271AECL, 0xA93A072AL,
+ 0x1B3F6D9BL, 0x1E6321F5L, 0xF59C66FBL, 0x26DCF319L,
+ 0x7533D928L, 0xB155FDF5L, 0x03563482L, 0x8ABA3CBBL,
+ 0x28517711L, 0xC20AD9F8L, 0xABCC5167L, 0xCCAD925FL,
+ 0x4DE81751L, 0x3830DC8EL, 0x379D5862L, 0x9320F991L,
+ 0xEA7A90C2L, 0xFB3E7BCEL, 0x5121CE64L, 0x774FBE32L,
+ 0xA8B6E37EL, 0xC3293D46L, 0x48DE5369L, 0x6413E680L,
+ 0xA2AE0810L, 0xDD6DB224L, 0x69852DFDL, 0x09072166L,
+ 0xB39A460AL, 0x6445C0DDL, 0x586CDECFL, 0x1C20C8AEL,
+ 0x5BBEF7DDL, 0x1B588D40L, 0xCCD2017FL, 0x6BB4E3BBL,
+ 0xDDA26A7EL, 0x3A59FF45L, 0x3E350A44L, 0xBCB4CDD5L,
+ 0x72EACEA8L, 0xFA6484BBL, 0x8D6612AEL, 0xBF3C6F47L,
+ 0xD29BE463L, 0x542F5D9EL, 0xAEC2771BL, 0xF64E6370L,
+ 0x740E0D8DL, 0xE75B1357L, 0xF8721671L, 0xAF537D5DL,
+ 0x4040CB08L, 0x4EB4E2CCL, 0x34D2466AL, 0x0115AF84L,
+ 0xE1B00428L, 0x95983A1DL, 0x06B89FB4L, 0xCE6EA048L,
+ 0x6F3F3B82L, 0x3520AB82L, 0x011A1D4BL, 0x277227F8L,
+ 0x611560B1L, 0xE7933FDCL, 0xBB3A792BL, 0x344525BDL,
+ 0xA08839E1L, 0x51CE794BL, 0x2F32C9B7L, 0xA01FBAC9L,
+ 0xE01CC87EL, 0xBCC7D1F6L, 0xCF0111C3L, 0xA1E8AAC7L,
+ 0x1A908749L, 0xD44FBD9AL, 0xD0DADECBL, 0xD50ADA38L,
+ 0x0339C32AL, 0xC6913667L, 0x8DF9317CL, 0xE0B12B4FL,
+ 0xF79E59B7L, 0x43F5BB3AL, 0xF2D519FFL, 0x27D9459CL,
+ 0xBF97222CL, 0x15E6FC2AL, 0x0F91FC71L, 0x9B941525L,
+ 0xFAE59361L, 0xCEB69CEBL, 0xC2A86459L, 0x12BAA8D1L,
+ 0xB6C1075EL, 0xE3056A0CL, 0x10D25065L, 0xCB03A442L,
+ 0xE0EC6E0EL, 0x1698DB3BL, 0x4C98A0BEL, 0x3278E964L,
+ 0x9F1F9532L, 0xE0D392DFL, 0xD3A0342BL, 0x8971F21EL,
+ 0x1B0A7441L, 0x4BA3348CL, 0xC5BE7120L, 0xC37632D8L,
+ 0xDF359F8DL, 0x9B992F2EL, 0xE60B6F47L, 0x0FE3F11DL,
+ 0xE54CDA54L, 0x1EDAD891L, 0xCE6279CFL, 0xCD3E7E6FL,
+ 0x1618B166L, 0xFD2C1D05L, 0x848FD2C5L, 0xF6FB2299L,
+ 0xF523F357L, 0xA6327623L, 0x93A83531L, 0x56CCCD02L,
+ 0xACF08162L, 0x5A75EBB5L, 0x6E163697L, 0x88D273CCL,
+ 0xDE966292L, 0x81B949D0L, 0x4C50901BL, 0x71C65614L,
+ 0xE6C6C7BDL, 0x327A140AL, 0x45E1D006L, 0xC3F27B9AL,
+ 0xC9AA53FDL, 0x62A80F00L, 0xBB25BFE2L, 0x35BDD2F6L,
+ 0x71126905L, 0xB2040222L, 0xB6CBCF7CL, 0xCD769C2BL,
+ 0x53113EC0L, 0x1640E3D3L, 0x38ABBD60L, 0x2547ADF0L,
+ 0xBA38209CL, 0xF746CE76L, 0x77AFA1C5L, 0x20756060L,
+ 0x85CBFE4EL, 0x8AE88DD8L, 0x7AAAF9B0L, 0x4CF9AA7EL,
+ 0x1948C25CL, 0x02FB8A8CL, 0x01C36AE4L, 0xD6EBE1F9L,
+ 0x90D4F869L, 0xA65CDEA0L, 0x3F09252DL, 0xC208E69FL,
+ 0xB74E6132L, 0xCE77E25BL, 0x578FDFE3L, 0x3AC372E6L }
+};
+
+
+static unsigned long F(BLOWFISH_CTX *ctx, unsigned long x) {
+ unsigned short a, b, c, d;
+ unsigned long y;
+
+ d = (unsigned short)(x & 0xFF);
+ x >>= 8;
+ c = (unsigned short)(x & 0xFF);
+ x >>= 8;
+ b = (unsigned short)(x & 0xFF);
+ x >>= 8;
+ a = (unsigned short)(x & 0xFF);
+ y = ctx->S[0][a] + ctx->S[1][b];
+ y = y ^ ctx->S[2][c];
+ y = y + ctx->S[3][d];
+
+ return y;
+}
+
+
+void Blowfish_Encrypt(BLOWFISH_CTX *ctx, unsigned long *xl, unsigned long *xr){
+ unsigned long Xl;
+ unsigned long Xr;
+ unsigned long temp;
+ short i;
+
+ Xl = *xl;
+ Xr = *xr;
+
+ for (i = 0; i < N; ++i) {
+ Xl = Xl ^ ctx->P[i];
+ Xr = F(ctx, Xl) ^ Xr;
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+ }
+
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+
+ Xr = Xr ^ ctx->P[N];
+ Xl = Xl ^ ctx->P[N + 1];
+
+ *xl = Xl;
+ *xr = Xr;
+}
+
+
+void Blowfish_Decrypt(BLOWFISH_CTX *ctx, unsigned long *xl, unsigned long *xr){
+ unsigned long Xl;
+ unsigned long Xr;
+ unsigned long temp;
+ short i;
+
+ Xl = *xl;
+ Xr = *xr;
+
+ for (i = N + 1; i > 1; --i) {
+ Xl = Xl ^ ctx->P[i];
+ Xr = F(ctx, Xl) ^ Xr;
+
+ /* Exchange Xl and Xr */
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+ }
+
+ /* Exchange Xl and Xr */
+ temp = Xl;
+ Xl = Xr;
+ Xr = temp;
+
+ Xr = Xr ^ ctx->P[1];
+ Xl = Xl ^ ctx->P[0];
+
+ *xl = Xl;
+ *xr = Xr;
+}
+
+
+void Blowfish_Init(BLOWFISH_CTX *ctx, unsigned char *key, int keyLen) {
+ int i, j, k;
+ unsigned long data, datal, datar;
+
+ for (i = 0; i < 4; i++) {
+ for (j = 0; j < 256; j++)
+ ctx->S[i][j] = ORIG_S[i][j];
+ }
+
+ j = 0;
+ for (i = 0; i < N + 2; ++i) {
+ data = 0x00000000;
+ for (k = 0; k < 4; ++k) {
+ data = (data << 8) | key[j];
+ j = j + 1;
+ if (j >= keyLen)
+ j = 0;
+ }
+ ctx->P[i] = ORIG_P[i] ^ data;
+ }
+
+ datal = 0x00000000;
+ datar = 0x00000000;
+
+ for (i = 0; i < N + 2; i += 2) {
+ Blowfish_Encrypt(ctx, &datal, &datar);
+ ctx->P[i] = datal;
+ ctx->P[i + 1] = datar;
+ }
+
+ for (i = 0; i < 4; ++i) {
+ for (j = 0; j < 256; j += 2) {
+ Blowfish_Encrypt(ctx, &datal, &datar);
+ ctx->S[i][j] = datal;
+ ctx->S[i][j + 1] = datar;
+ }
+ }
+}
+
+
diff --git a/hardinfo2/blowfish.h b/hardinfo2/blowfish.h
new file mode 100644
index 00000000..3f33e945
--- /dev/null
+++ b/hardinfo2/blowfish.h
@@ -0,0 +1,33 @@
+/*
+blowfish.h: Header file for blowfish.c
+
+Copyright (C) 1997 by Paul Kocher
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+This library 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
+Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+See blowfish.c for more information about this file.
+*/
+
+
+typedef struct {
+ unsigned long P[16 + 2];
+ unsigned long S[4][256];
+} BLOWFISH_CTX;
+
+void Blowfish_Init(BLOWFISH_CTX *ctx, unsigned char *key, int keyLen);
+void Blowfish_Encrypt(BLOWFISH_CTX *ctx, unsigned long *xl, unsigned long *xr);
+void Blowfish_Decrypt(BLOWFISH_CTX *ctx, unsigned long *xl, unsigned long *xr);
+
+
+
diff --git a/hardinfo2/callbacks.c b/hardinfo2/callbacks.c
index 4a3ed6a6..cfab4b2c 100644
--- a/hardinfo2/callbacks.c
+++ b/hardinfo2/callbacks.c
@@ -16,14 +16,17 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <stdlib.h>
#include <gtk/gtk.h>
+
#include <callbacks.h>
#include <iconcache.h>
-#include <config.h>
#include <shell.h>
#include <report.h>
+#include <config.h>
+
void cb_refresh()
{
shell_do_reload();
@@ -74,4 +77,5 @@ void cb_generate_report()
void cb_quit(void)
{
gtk_main_quit();
+ exit(0);
}
diff --git a/hardinfo2/computer.c b/hardinfo2/computer.c
index 36bba973..7ae9ee8d 100644
--- a/hardinfo2/computer.c
+++ b/hardinfo2/computer.c
@@ -41,7 +41,6 @@ enum {
COMPUTER_SHARES,
COMPUTER_DISPLAY,
COMPUTER_NETWORK,
-/* COMPUTER_LOADGRAPH,*/
} Entries;
static ModuleEntry hi_entries[] = {
@@ -54,7 +53,6 @@ static ModuleEntry hi_entries[] = {
{"Shared Directories", "shares.png"},
{"Display", "monitor.png"},
{"Network Interfaces", "network.png"},
-/* {"<s>LoadGraph</s>", "summary.png"}*/
};
#include "computer.h"
@@ -163,13 +161,6 @@ hi_get_field(gchar * field)
g_free(mi);
} else if (!strcmp(field, "Random")) {
return g_strdup_printf("%d", rand() % 200);
- /*} else if (!strcmp(field, "Used Memory")) {
- MemoryInfo *mi;
-
- mi = computer_get_memory();
- tmp = g_strdup_printf("%d", mi->used);
-
- g_free(mi);*/
} else if (!strcmp(field, "Uptime")) {
tmp = computer_get_formatted_uptime();
} else if (!strcmp(field, "Date/Time")) {
@@ -214,15 +205,6 @@ hi_info(gint entry)
case COMPUTER_SHARES:
return g_strdup_printf("[SAMBA]\n"
"%s", shares_list);
-/* case COMPUTER_LOADGRAPH:
- return g_strdup_printf("[$ShellParam$]\n"
- "ViewType=2\n"
- "UpdateInterval$Used Memory=500\n"
- "LoadGraphInterval$Used Memory=50\n"
- "LoadGraphInterval$Random=50\n"
- "[Doh]\n"
- "Used Memory=bleh\n"
- "Random=Select me! /o/");*/
case COMPUTER_FILESYSTEMS:
return g_strdup_printf("[$ShellParam$]\n"
"ViewType=1\n"
@@ -315,44 +297,7 @@ hi_info(gint entry)
"[Available Languages]\n"
"%s", computer->os->languages);
case COMPUTER_PROCESSORS:
- tmp = processor_get_capabilities_from_flags(computer->processor->
- flags);
- return g_strdup_printf("[Processor]\n"
- "Name=%s\n"
- "Specification=%s\n"
- "Family, model, stepping=%d, %d, %d\n"
- "Vendor=%s\n"
- "Cache Size=%dkb\n"
- "Frequency=%.2fMHz\n"
- "BogoMips=%.2f\n"
- "Byte Order=%s\n"
- "[Features]\n"
- "FDIV Bug=%s\n"
- "HLT Bug=%s\n"
- "F00F Bug=%s\n"
- "Coma Bug=%s\n"
- "Has FPU=%s\n"
- "[Capabilities]\n" "%s",
- computer->processor->strmodel,
- computer->processor->model_name,
- computer->processor->family,
- computer->processor->model,
- computer->processor->stepping,
- computer->processor->vendor_id,
- computer->processor->cache_size,
- computer->processor->cpu_mhz,
- computer->processor->bogomips,
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
- "Little Endian",
-#else
- "Big Endian",
-#endif
- computer->processor->bug_fdiv,
- computer->processor->bug_hlt,
- computer->processor->bug_f00f,
- computer->processor->bug_coma,
- computer->processor->has_fpu,
- tmp);
+ return processor_get_info(computer->processor);
default:
return g_strdup("[Empty]\nNo info available=");
}
diff --git a/hardinfo2/computer.h b/hardinfo2/computer.h
index 3cb3d9e9..d6244305 100644
--- a/hardinfo2/computer.h
+++ b/hardinfo2/computer.h
@@ -23,41 +23,38 @@
static struct {
gchar *file, *codename;
} distro_db[] = {
- {
- DB_PREFIX "debian_version", "deb"}, {
- DB_PREFIX "slackware-version", "slk"}, {
- DB_PREFIX "mandrake-release", "mdk"}, {
- DB_PREFIX "gentoo-release", "gnt"}, {
- DB_PREFIX "conectiva-release", "cnc"}, {
- DB_PREFIX "versão-conectiva", "cnc"}, {
- DB_PREFIX "turbolinux-release", "tl"}, {
- DB_PREFIX "yellowdog-release", "yd"}, {
- DB_PREFIX "SuSE-release", "suse"}, {
- DB_PREFIX "sun-release", "sun"},
- /*
- * RedHat must be the *last* one to be checked, since
- * some distros (like Mandrake) includes a redhat-relase
- * file too.
- */
- {
- DB_PREFIX "redhat-release", "rh"}, {
- NULL, NULL}
+ { DB_PREFIX "debian_version", "deb" },
+ { DB_PREFIX "slackware-version", "slk" },
+ { DB_PREFIX "mandrake-release", "mdk" },
+ { DB_PREFIX "gentoo-release", "gnt" },
+ { DB_PREFIX "conectiva-release", "cnc" },
+ { DB_PREFIX "versão-conectiva", "cnc" },
+ { DB_PREFIX "turbolinux-release", "tl" },
+ { DB_PREFIX "yellowdog-release", "yd" },
+ { DB_PREFIX "SuSE-release", "suse" },
+ { DB_PREFIX "sun-release", "sun" },
+ /*
+ * RedHat must be the *last* one to be checked, since
+ * some distros (like Mandrake) includes a redhat-relase
+ * file too.
+ */
+ { DB_PREFIX "redhat-release", "rh" },
+ { NULL, NULL }
};
+typedef struct _Computer Computer;
+typedef struct _Processor Processor;
+typedef struct _OperatingSystem OperatingSystem;
+typedef struct _MemoryInfo MemoryInfo;
+typedef struct _UptimeInfo UptimeInfo;
+typedef struct _LoadInfo LoadInfo;
+typedef struct _DisplayInfo DisplayInfo;
-typedef struct _Computer Computer;
-typedef struct _Processor Processor;
-typedef struct _OperatingSystem OperatingSystem;
-typedef struct _MemoryInfo MemoryInfo;
-typedef struct _UptimeInfo UptimeInfo;
-typedef struct _LoadInfo LoadInfo;
-typedef struct _DisplayInfo DisplayInfo;
+typedef struct _AlsaInfo AlsaInfo;
+typedef struct _AlsaCard AlsaCard;
-typedef struct _AlsaInfo AlsaInfo;
-typedef struct _AlsaCard AlsaCard;
-
-typedef struct _FileSystem FileSystem;
-typedef struct _FileSystemEntry FileSystemEntry;
+typedef struct _FileSystem FileSystem;
+typedef struct _FileSystemEntry FileSystemEntry;
struct _AlsaCard {
gchar *alsa_name;
@@ -143,23 +140,23 @@ struct _MemoryInfo {
gfloat ratio;
};
-#define get_str(field_name,ptr) \
+#define get_str(field_name,ptr) \
if (g_str_has_prefix(tmp[0], field_name)) { \
- ptr = g_strdup(tmp[1]); \
- g_strfreev(tmp); \
- continue; \
+ ptr = g_strdup(tmp[1]); \
+ g_strfreev(tmp); \
+ continue; \
}
-#define get_int(field_name,ptr) \
+#define get_int(field_name,ptr) \
if (g_str_has_prefix(tmp[0], field_name)) { \
- ptr = atoi(tmp[1]); \
- g_strfreev(tmp); \
- continue; \
+ ptr = atoi(tmp[1]); \
+ g_strfreev(tmp); \
+ continue; \
}
-#define get_float(field_name,ptr) \
+#define get_float(field_name,ptr) \
if (g_str_has_prefix(tmp[0], field_name)) { \
- ptr = atof(tmp[1]); \
- g_strfreev(tmp); \
- continue; \
+ ptr = atof(tmp[1]); \
+ g_strfreev(tmp); \
+ continue; \
}
#endif /* __COMPUTER_H__ */
diff --git a/hardinfo2/configure b/hardinfo2/configure
index 3d174597..58f791c5 100755
--- a/hardinfo2/configure
+++ b/hardinfo2/configure
@@ -57,9 +57,9 @@ case $PROC in
parisc*)
ln -sf linux/parisc arch/this
ARCH="ARCH_PARISC" ;;
- ia64)
- ln -sf linux/ia64 arch/this
- ARCH="ARCH_IA64" ;;
+ sparc*)
+ ln -sf linux/sparc arch/this
+ ARCH="ARCH_SPARC" ;;
*)
# uname -m on m68k doesn't return anything useful :/
grep "680?0" /proc/cpuinfo > /dev/null
@@ -91,6 +91,7 @@ if [ -e "$LSPCI" ]; then
echo $LSPCI
else
echo "lspci cannot be found"
+ exit
fi
# ---------------------------------------------------------------------------
@@ -153,6 +154,7 @@ echo "GTK_CFLAGS = ${GTK_FLAGS}" >> Makefile
echo "GLADE_LIBS = ${GLADE_LIBS}" >> Makefile
echo "GLADE_CFLAGS = ${GLADE_FLAGS}" >> Makefile
echo "PACKAGE = `basename ${PWD}`" >> Makefile
+echo "ARCHOPTS = " >> Makefile
cat Makefile.in >> Makefile
diff --git a/hardinfo2/expr.c b/hardinfo2/expr.c
index 2bdd5563..da7c01ad 100644
--- a/hardinfo2/expr.c
+++ b/hardinfo2/expr.c
@@ -133,8 +133,8 @@ gfloat math_postfix_eval(GSList *postfix, gfloat at_value)
gfloat stack[500];
gint sp = 0;
- stack[0] = 0.0;
-
+ memset(stack, 0, sizeof(gfloat) * 500);
+
for (p = postfix; p; p = p->next) {
MathToken *t = (MathToken *) p->data;
@@ -233,7 +233,8 @@ int main(void)
gchar *expr = "0.9*(@+(5.2*0.923+3*(2.0)))";
postfix = math_string_to_postfix(expr);
- g_print("%s = %f (must be 18.71964)\n", expr, math_postfix_eval(postfix, 10));
+ g_print("%s = %f (must be 18.71964)\n", expr,
+ math_postfix_eval(postfix, 10));
math_postfix_free(postfix, TRUE);
return 0;
diff --git a/hardinfo2/md5.c b/hardinfo2/md5.c
index 7acddee3..1047bf89 100644
--- a/hardinfo2/md5.c
+++ b/hardinfo2/md5.c
@@ -36,6 +36,10 @@
#include "md5.h"
+#if defined(__OPTIMIZE__)
+#error You must compile this program without "-O". (Or else the benchmark results may be different!)
+#endif
+
/* Little-endian byte-swapping routines. Note that these do not
depend on the size of datatypes such as uint32, nor do they require
us to detect the endianness of the machine we are running on. It
@@ -311,3 +315,4 @@ int main(int argc, char **argv)
return 0;
}
#endif /* TEST */
+ \ No newline at end of file
diff --git a/hardinfo2/menu.c b/hardinfo2/menu.c
index cc614ede..bc66189b 100644
--- a/hardinfo2/menu.c
+++ b/hardinfo2/menu.c
@@ -36,12 +36,12 @@ static GtkActionEntry entries[] =
{ "ReportAction", HI_STOCK_REPORT, /* name, stock id */
"Generate _Report", "<control>R", /* label, accelerator */
- "Report", /* tooltip */
+ "Creates a report in HTML", /* tooltip */
G_CALLBACK(cb_generate_report) },
{ "RefreshAction", GTK_STOCK_REFRESH,
"_Refresh", "F5",
- "Refresh",
+ NULL,
G_CALLBACK(cb_refresh) },
{ "AboutAction", GTK_STOCK_ABOUT,
@@ -51,7 +51,7 @@ static GtkActionEntry entries[] =
{ "QuitAction", GTK_STOCK_QUIT,
"_Quit", "<control>Q",
- "Quit",
+ NULL,
G_CALLBACK(cb_quit) }
};
diff --git a/hardinfo2/menu.h b/hardinfo2/menu.h
index 36aff3df..83cf086b 100644
--- a/hardinfo2/menu.h
+++ b/hardinfo2/menu.h
@@ -21,4 +21,5 @@
#include <shell.h>
void menu_init(Shell *shell);
+
#endif /* __MENU_H__ */
diff --git a/hardinfo2/report.c b/hardinfo2/report.c
index f3621276..990abd8b 100644
--- a/hardinfo2/report.c
+++ b/hardinfo2/report.c
@@ -33,6 +33,7 @@ report_html_header(ReportContext *ctx)
"<html><head>\n" \
"<title>HardInfo System Report</title>\n" \
"<style>\n" \
+ "body { background: #fff }\n" \
".title { font: bold 130%% serif; color: #0066FF; padding: 30px 0 10px 0 }\n" \
".stitle { font: bold 100%% sans-serif; color: #0044DD; padding: 30px 0 10px 0 }\n" \
".sstitle{ font: bold 80%% serif; color: #000000; background: #efefef }\n" \
@@ -219,10 +220,8 @@ report_generate(ReportDialog *rd)
if (!file)
return FALSE;
stream = fopen(file, "w+");
- if (!stream) {
- /* FIXME complain */
+ if (!stream)
return FALSE;
- }
model = rd->model;
ctx = g_new0(ReportContext, 1);
@@ -338,7 +337,7 @@ static ReportDialog
*report_dialog_new(GtkTreeModel *model, GtkWidget *parent)
{
ReportDialog *rd;
- GtkWidget *dlgReport;
+ GtkWidget *dialog;
GtkWidget *dialog1_vbox;
GtkWidget *scrolledwindow2;
GtkWidget *treeview2;
@@ -355,15 +354,16 @@ static ReportDialog
rd = g_new0(ReportDialog, 1);
- dlgReport = gtk_dialog_new();
- gtk_window_set_title(GTK_WINDOW(dlgReport), "Generate Report");
- gtk_window_set_default_size(GTK_WINDOW(dlgReport), 320, 260);
- gtk_window_set_transient_for(GTK_WINDOW(dlgReport), GTK_WINDOW(parent));
- gtk_window_set_position(GTK_WINDOW(dlgReport), GTK_WIN_POS_CENTER_ON_PARENT);
- gtk_window_set_type_hint(GTK_WINDOW(dlgReport),
+ dialog = gtk_dialog_new();
+ gtk_window_set_title(GTK_WINDOW(dialog), "Generate Report");
+ gtk_container_set_border_width(GTK_CONTAINER(dialog), 5);
+ gtk_window_set_default_size(GTK_WINDOW(dialog), 420, 260);
+ gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(parent));
+ gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ON_PARENT);
+ gtk_window_set_type_hint(GTK_WINDOW(dialog),
GDK_WINDOW_TYPE_HINT_DIALOG);
- dialog1_vbox = GTK_DIALOG(dlgReport)->vbox;
+ dialog1_vbox = GTK_DIALOG(dialog)->vbox;
gtk_box_set_spacing(GTK_BOX(dialog1_vbox), 5);
gtk_container_set_border_width(GTK_CONTAINER(dialog1_vbox), 4);
gtk_widget_show(dialog1_vbox);
@@ -381,10 +381,9 @@ static ReportDialog
gtk_widget_show(scrolledwindow2);
gtk_box_pack_start(GTK_BOX(dialog1_vbox), scrolledwindow2, TRUE, TRUE, 0);
gtk_widget_set_size_request(scrolledwindow2, -1, 200);
- GTK_WIDGET_UNSET_FLAGS(scrolledwindow2, GTK_CAN_FOCUS);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow2),
GTK_POLICY_AUTOMATIC,
- GTK_POLICY_ALWAYS);
+ GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW
(scrolledwindow2), GTK_SHADOW_IN);
@@ -392,7 +391,6 @@ static ReportDialog
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview2), FALSE);
gtk_widget_show(treeview2);
gtk_container_add(GTK_CONTAINER(scrolledwindow2), treeview2);
- GTK_WIDGET_UNSET_FLAGS(treeview2, GTK_CAN_FOCUS);
column = gtk_tree_view_column_new();
gtk_tree_view_append_column(GTK_TREE_VIEW(treeview2), column);
@@ -422,37 +420,33 @@ static ReportDialog
button3 = gtk_button_new_with_mnemonic("Select _None");
gtk_widget_show(button3);
gtk_container_add(GTK_CONTAINER(hbuttonbox3), button3);
- GTK_WIDGET_UNSET_FLAGS(button3, GTK_CAN_FOCUS);
GTK_WIDGET_SET_FLAGS(button3, GTK_CAN_DEFAULT);
g_signal_connect(button3, "clicked", G_CALLBACK(report_dialog_sel_none), rd);
button6 = gtk_button_new_with_mnemonic("Select _All");
gtk_widget_show(button6);
gtk_container_add(GTK_CONTAINER(hbuttonbox3), button6);
- GTK_WIDGET_UNSET_FLAGS(button6, GTK_CAN_FOCUS);
GTK_WIDGET_SET_FLAGS(button6, GTK_CAN_DEFAULT);
g_signal_connect(button6, "clicked", G_CALLBACK(report_dialog_sel_all), rd);
- dialog1_action_area = GTK_DIALOG(dlgReport)->action_area;
+ dialog1_action_area = GTK_DIALOG(dialog)->action_area;
gtk_widget_show(dialog1_action_area);
gtk_button_box_set_layout(GTK_BUTTON_BOX(dialog1_action_area),
GTK_BUTTONBOX_END);
- button8 = gtk_button_new_from_stock("gtk-cancel");
+ button8 = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
gtk_widget_show(button8);
- gtk_dialog_add_action_widget(GTK_DIALOG(dlgReport), button8,
+ gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button8,
GTK_RESPONSE_CANCEL);
- GTK_WIDGET_UNSET_FLAGS(button8, GTK_CAN_FOCUS);
GTK_WIDGET_SET_FLAGS(button8, GTK_CAN_DEFAULT);
- button7 = gtk_button_new_with_mnemonic("Generate _Report");
+ button7 = gtk_button_new_with_mnemonic("_Generate");
gtk_widget_show(button7);
- gtk_dialog_add_action_widget(GTK_DIALOG(dlgReport), button7,
+ gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button7,
GTK_RESPONSE_ACCEPT);
- GTK_WIDGET_UNSET_FLAGS(button7, GTK_CAN_FOCUS);
GTK_WIDGET_SET_FLAGS(button7, GTK_CAN_DEFAULT);
- rd->dialog = dlgReport;
+ rd->dialog = dialog;
rd->btn_cancel = button8;
rd->btn_generate = button7;
rd->btn_sel_all = button6;
diff --git a/hardinfo2/sha1.c b/hardinfo2/sha1.c
index 947a086c..0981a04b 100644
--- a/hardinfo2/sha1.c
+++ b/hardinfo2/sha1.c
@@ -24,6 +24,10 @@ A million repetitions of "a"
#define LITTLE_ENDIAN /* This should be #define'd if true. */
#endif
+#if defined(__OPTIMIZE__)
+#error You must compile this program without "-O".
+#endif
+
#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
diff --git a/hardinfo2/shell.c b/hardinfo2/shell.c
index 286c179b..e8ac1f5e 100644
--- a/hardinfo2/shell.c
+++ b/hardinfo2/shell.c
@@ -32,9 +32,9 @@
* Internal Prototypes ********************************************************
*/
-static void shell_create_window();
-static ShellTree *shell_tree_new(void);
-static ShellInfoTree *shell_info_tree_new(gboolean extra);
+static void create_window();
+static ShellTree *tree_new(void);
+static ShellInfoTree *info_tree_new(gboolean extra);
static void module_selected(GtkTreeSelection * ts, gpointer data);
static void module_selected_show_info(ShellModuleEntry * entry,
@@ -236,18 +236,18 @@ destroy_me(void)
}
static void
-shell_create_window(void)
+create_window(void)
{
GtkWidget *vbox, *hbox;
shell = g_new0(Shell, 1);
shell->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_icon(GTK_WINDOW(shell->window), icon_cache_get_pixbuf("logo.png"));
+ gtk_window_set_icon(GTK_WINDOW(shell->window),
+ icon_cache_get_pixbuf("logo.png"));
gtk_window_set_title(GTK_WINDOW(shell->window), "System Information");
gtk_widget_set_size_request(shell->window, 600, 400);
- g_signal_connect(G_OBJECT(shell->window), "destroy", destroy_me,
- NULL);
+ g_signal_connect(G_OBJECT(shell->window), "destroy", destroy_me, NULL);
vbox = gtk_vbox_new(FALSE, 0);
gtk_widget_show(vbox);
@@ -287,7 +287,6 @@ shell_create_window(void)
gtk_main_iteration();
}
-/* FIXME: nao usar o modules.conf, ler os .so de um diretorio */
static void
shell_tree_modules_load(ShellTree * shelltree)
{
@@ -321,14 +320,13 @@ shell_tree_modules_load(ShellTree * shelltree)
gint(*n_entries) (void);
gint i;
- if (!g_module_symbol
- (module->dll, "hi_n_entries", (gpointer) & n_entries))
+ if (!g_module_symbol(module->dll, "hi_n_entries", (gpointer) & n_entries))
continue;
gint j = n_entries();
for (i = 0; i <= j; i++) {
- GdkPixbuf *(*shell_icon) (gint);
- const gchar *(*shell_name) (gint);
+ GdkPixbuf *(*shell_icon) (gint);
+ const gchar *(*shell_name) (gint);
ShellModuleEntry *entry = g_new0(ShellModuleEntry, 1);
if (g_module_symbol(module->dll, "hi_icon", (gpointer)&(shell_icon))) {
@@ -484,11 +482,11 @@ shell_init(void)
return;
}
- shell_create_window();
+ create_window();
- shell->tree = shell_tree_new();
- shell->info = shell_info_tree_new(FALSE);
- shell->moreinfo = shell_info_tree_new(TRUE);
+ shell->tree = tree_new();
+ shell->info = info_tree_new(FALSE);
+ shell->moreinfo = info_tree_new(TRUE);
shell->loadgraph = load_graph_new(75);
gtk_paned_pack1(GTK_PANED(shell->hpaned), shell->tree->scroll,
@@ -554,9 +552,9 @@ update_field(gpointer data)
return TRUE;
}
- GtkTreeStore *store = GTK_TREE_STORE(shell->info->model);
-
if (iter) {
+ GtkTreeStore *store = GTK_TREE_STORE(shell->info->model);
+
gtk_tree_store_set(store, iter, INFO_TREE_COL_VALUE, value, -1);
g_free(value);
@@ -605,7 +603,7 @@ reload_section(gpointer data)
}
static void
-shell_set_view_type(ShellViewType viewtype)
+set_view_type(ShellViewType viewtype)
{
gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(shell->info->view), FALSE);
@@ -644,8 +642,10 @@ group_handle_special(GKeyFile * key_file, ShellModuleEntry * entry,
gchar * group, gchar ** keys)
{
if (g_str_equal(group, "$ShellParam$")) {
- while (*keys) {
- gchar *key = *keys;
+ gint i;
+
+ for (i = 0; keys[i]; i++) {
+ gchar *key = keys[i];
if (g_str_has_prefix(key, "UpdateInterval")) {
gint ms;
@@ -676,7 +676,7 @@ group_handle_special(GKeyFile * key_file, ShellModuleEntry * entry,
g_timeout_add(ms, reload_section, entry);
} else if (g_str_equal(key, "ViewType")) {
- shell_set_view_type(g_key_file_get_integer(key_file, group,
+ set_view_type(g_key_file_get_integer(key_file, group,
key, NULL));
} else if (g_str_has_prefix(key, "Icon")) {
GtkTreeIter *iter = g_hash_table_lookup(update_tbl,
@@ -696,8 +696,6 @@ group_handle_special(GKeyFile * key_file, ShellModuleEntry * entry,
group,
key, NULL));
}
-
- *keys++;
}
} else {
g_warning("Unknown parameter group '%s'", group);
@@ -711,6 +709,7 @@ group_handle_normal(GKeyFile * key_file, ShellModuleEntry * entry,
GtkTreeIter parent;
GtkTreeStore *store = GTK_TREE_STORE(shell->info->model);
gchar *tmp = g_strdup(group);
+ gint i;
gtk_tree_store_append(store, &parent, NULL);
@@ -718,8 +717,8 @@ group_handle_normal(GKeyFile * key_file, ShellModuleEntry * entry,
gtk_tree_store_set(store, &parent, INFO_TREE_COL_NAME, tmp, -1);
g_free(tmp);
- while (*keys) {
- gchar *key = *keys;
+ for (i = 0; keys[i]; i++) {
+ gchar *key = keys[i];
gchar *value;
GtkTreeIter child;
@@ -751,8 +750,6 @@ group_handle_normal(GKeyFile * key_file, ShellModuleEntry * entry,
}
g_free(value);
-
- *keys++;
}
}
@@ -761,12 +758,13 @@ moreinfo_handle_normal(GKeyFile * key_file, gchar * group, gchar ** keys)
{
GtkTreeIter parent;
GtkTreeStore *store = GTK_TREE_STORE(shell->moreinfo->model);
+ gint i;
gtk_tree_store_append(store, &parent, NULL);
gtk_tree_store_set(store, &parent, INFO_TREE_COL_NAME, group, -1);
- while (*keys) {
- gchar *key = *keys;
+ for (i = 0; keys[i]; i++) {
+ gchar *key = keys[i];
GtkTreeIter child;
gchar *value;
@@ -781,8 +779,6 @@ moreinfo_handle_normal(GKeyFile * key_file, gchar * group, gchar ** keys)
}
g_free(value);
-
- *keys++;
}
}
@@ -797,8 +793,9 @@ module_selected_show_info(ShellModuleEntry * entry, gboolean reload)
{
GKeyFile *key_file = g_key_file_new();
gchar *key_data;
- gchar **groups, **tmpgroups;
+ gchar **groups;
GtkTreeStore *store;
+ gint i;
if (entry->func) {
key_data = entry->func(entry->number);
@@ -808,7 +805,7 @@ module_selected_show_info(ShellModuleEntry * entry, gboolean reload)
}
/* reset the view type to normal */
- shell_set_view_type(SHELL_VIEW_NORMAL);
+ set_view_type(SHELL_VIEW_NORMAL);
/* recreate the iter hash table only if we're not reloading the module section */
if (!reload) {
@@ -824,28 +821,20 @@ module_selected_show_info(ShellModuleEntry * entry, gboolean reload)
g_key_file_load_from_data(key_file, key_data, strlen(key_data), 0, NULL);
groups = g_key_file_get_groups(key_file, NULL);
- tmpgroups = groups;
-
- while (*groups) {
- gchar *group = *groups;
- gchar **keys =
- g_key_file_get_keys(key_file, group, NULL, NULL), **tmpkeys;
-
- tmpkeys = keys;
+ for (i = 0; groups[i]; i++) {
+ gchar *group = groups[i];
+ gchar **keys = g_key_file_get_keys(key_file, group, NULL, NULL);
if (*group == '$') {
group_handle_special(key_file, entry, group, keys);
} else {
group_handle_normal(key_file, entry, group, keys);
}
-
- g_strfreev(tmpkeys);
- *groups++;
}
gtk_tree_view_expand_all(GTK_TREE_VIEW(shell->info->view));
- g_strfreev(tmpgroups);
+ g_strfreev(groups);
g_key_file_free(key_file);
g_free(key_data);
}
@@ -864,32 +853,24 @@ info_selected_show_extra(gchar * data)
if (data) {
GKeyFile *key_file = g_key_file_new();
gchar *key_data = shell->selected->morefunc(data);
- gchar **groups, **tmpgroups;
+ gchar **groups;
+ gint i;
g_key_file_load_from_data(key_file, key_data, strlen(key_data), 0,
NULL);
groups = g_key_file_get_groups(key_file, NULL);
- tmpgroups = groups;
-
- while (*groups) {
- gchar *group = *groups;
- gchar **keys =
- g_key_file_get_keys(key_file, group, NULL, NULL),
- **tmpkeys;
-
- tmpkeys = keys;
+ for (i = 0; groups[i]; i++) {
+ gchar *group = groups[i];
+ gchar **keys = g_key_file_get_keys(key_file, group, NULL, NULL);
moreinfo_handle_normal(key_file, group, keys);
-
- g_strfreev(tmpkeys);
- *groups++;
}
gtk_tree_view_expand_all(GTK_TREE_VIEW
(shell->moreinfo->view));
- g_strfreev(tmpgroups);
+ g_strfreev(groups);
g_key_file_free(key_file);
g_free(key_data);
}
@@ -952,7 +933,7 @@ module_selected(GtkTreeSelection * ts, gpointer data)
shell_action_set_enabled("RefreshAction", FALSE);
gtk_tree_store_clear(GTK_TREE_STORE(shell->info->model));
- shell_set_view_type(SHELL_VIEW_NORMAL);
+ set_view_type(SHELL_VIEW_NORMAL);
}
current = entry;
@@ -977,7 +958,7 @@ info_selected(GtkTreeSelection * ts, gpointer data)
}
static ShellInfoTree *
-shell_info_tree_new(gboolean extra)
+info_tree_new(gboolean extra)
{
ShellInfoTree *info;
GtkWidget *treeview, *scroll;
@@ -989,6 +970,8 @@ shell_info_tree_new(gboolean extra)
info = g_new0(ShellInfoTree, 1);
scroll = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW
+ (scroll), GTK_SHADOW_IN);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
@@ -1011,7 +994,7 @@ shell_info_tree_new(gboolean extra)
gtk_tree_view_column_pack_start(column, cr_text, TRUE);
gtk_tree_view_column_add_attribute(column, cr_text, "markup",
INFO_TREE_COL_NAME);
-
+
column = gtk_tree_view_column_new();
gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
@@ -1040,7 +1023,7 @@ shell_info_tree_new(gboolean extra)
}
static ShellTree *
-shell_tree_new()
+tree_new()
{
ShellTree *shelltree;
GtkWidget *treeview, *scroll;
@@ -1053,6 +1036,8 @@ shell_tree_new()
shelltree = g_new0(ShellTree, 1);
scroll = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW
+ (scroll), GTK_SHADOW_IN);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
@@ -1075,6 +1060,7 @@ shell_tree_new()
TREE_COL_PBUF);
gtk_tree_view_column_add_attribute(column, cr_text, "markup",
TREE_COL_NAME);
+
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
g_signal_connect(G_OBJECT(sel), "changed", (GCallback) module_selected,
NULL);
diff --git a/hardinfo2/stock.h b/hardinfo2/stock.h
index e86ad94d..b40d48e1 100644
--- a/hardinfo2/stock.h
+++ b/hardinfo2/stock.h
@@ -20,7 +20,6 @@
#define __STOCK_H__
#define HI_STOCK_REPORT "hi-stock-report"
-#define HI_STOCK_MODULE "hi-stock-module"
void stock_icons_init(void);
void stock_icon_register(gchar *filename, gchar *stock_id);