aboutsummaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/alpha/processor-platform.h4
-rw-r--r--includes/arm/processor-platform.h4
-rw-r--r--includes/benchmark.h44
-rw-r--r--includes/callbacks.h5
-rw-r--r--includes/computer.h64
-rw-r--r--includes/cpu_util.h2
-rw-r--r--includes/devices.h32
-rw-r--r--includes/distro_flavors.h (renamed from includes/remote.h)28
-rw-r--r--includes/dmi_util.h44
-rw-r--r--includes/dt_util.h24
-rw-r--r--includes/e2k/processor-platform.h72
-rw-r--r--includes/egg-markdown.h2
-rw-r--r--includes/expr.h4
-rw-r--r--includes/gpu_util.h61
-rw-r--r--includes/guibench.h4
-rw-r--r--includes/hardinfo.h96
-rw-r--r--includes/help-viewer.h4
-rw-r--r--includes/ia64/processor-platform.h4
-rw-r--r--includes/iconcache.h4
-rw-r--r--includes/info.h57
-rw-r--r--includes/loadgraph.h5
-rw-r--r--includes/loongarch64/processor-platform.h (renamed from includes/xmlrpc-server.h)18
-rw-r--r--includes/m68k/processor-platform.h4
-rw-r--r--includes/markdown-text-view.h2
-rw-r--r--includes/menu.h4
-rw-r--r--includes/mips/processor-platform.h4
-rw-r--r--includes/network.h4
-rw-r--r--includes/parisc/processor-platform.h4
-rw-r--r--includes/pci_util.h78
-rw-r--r--includes/ppc/processor-platform.h4
-rw-r--r--includes/report.h32
-rw-r--r--includes/riscv/processor-platform.h4
-rw-r--r--includes/s390/processor-platform.h4
-rw-r--r--includes/sh/processor-platform.h4
-rw-r--r--includes/sha1.h2
-rw-r--r--includes/shell.h69
-rw-r--r--includes/socket.h4
-rw-r--r--includes/sparc/processor-platform.h4
-rw-r--r--includes/ssh-conn.h66
-rw-r--r--includes/stock.h6
-rw-r--r--includes/storage_util.h22
-rw-r--r--includes/syncmanager.h24
-rw-r--r--includes/udisks2_util.h69
-rw-r--r--includes/uidefs.h103
-rw-r--r--includes/usb_util.h78
-rw-r--r--includes/vendor.h64
-rw-r--r--includes/x86/processor-platform.h4
-rw-r--r--includes/x_util.h104
-rw-r--r--includes/xmlrpc-client.h43
49 files changed, 1049 insertions, 343 deletions
diff --git a/includes/alpha/processor-platform.h b/includes/alpha/processor-platform.h
index 778a1a88..7dfdd91c 100644
--- a/includes/alpha/processor-platform.h
+++ b/includes/alpha/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/arm/processor-platform.h b/includes/arm/processor-platform.h
index 0ffdac24..a168db68 100644
--- a/includes/arm/processor-platform.h
+++ b/includes/arm/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/benchmark.h b/includes/benchmark.h
index 277f0c07..08392ad2 100644
--- a/includes/benchmark.h
+++ b/includes/benchmark.h
@@ -2,22 +2,43 @@
#define __BENCHMARK_H__
#include "hardinfo.h"
+#include "util_sysobj.h" /* for SEQ() */
+
+#define BENCH_PTR_BITS ((unsigned int)sizeof(void*) * 8)
extern ProgramParameters params;
-enum {
- BENCHMARK_BLOWFISH,
+enum BenchmarkEntries {
+ BENCHMARK_BLOWFISH_SINGLE,
+ BENCHMARK_BLOWFISH_THREADS,
+ BENCHMARK_BLOWFISH_CORES,
+ BENCHMARK_ZLIB,
BENCHMARK_CRYPTOHASH,
BENCHMARK_FIB,
BENCHMARK_NQUEENS,
- BENCHMARK_ZLIB,
BENCHMARK_FFT,
BENCHMARK_RAYTRACE,
+ BENCHMARK_SBCPU_SINGLE,
+ BENCHMARK_SBCPU_ALL,
+ BENCHMARK_SBCPU_QUAD,
+ BENCHMARK_MEMORY_SINGLE,
+ BENCHMARK_MEMORY_DUAL,
+ BENCHMARK_MEMORY_QUAD,
+ BENCHMARK_MEMORY_ALL,
BENCHMARK_GUI,
BENCHMARK_N_ENTRIES
-} BenchmarkEntries;
+};
-void benchmark_bfish(void);
+void benchmark_bfish_single(void);
+void benchmark_bfish_threads(void);
+void benchmark_bfish_cores(void);
+void benchmark_memory_single(void);
+void benchmark_memory_dual(void);
+void benchmark_memory_quad(void);
+void benchmark_memory_all(void);
+void benchmark_sbcpu_single(void);
+void benchmark_sbcpu_all(void);
+void benchmark_sbcpu_quad(void);
void benchmark_cryptohash(void);
void benchmark_fft(void);
void benchmark_fib(void);
@@ -31,9 +52,12 @@ typedef struct {
double result;
double elapsed_time;
int threads_used;
+ int revision;
+ char extra[256]; /* no \n, ; or | */
+ char user_note[256]; /* no \n, ; or | */
} bench_value;
-#define EMPTY_BENCH_VALUE {-1.0f,0,0}
+#define EMPTY_BENCH_VALUE {-1.0f,0,0,-1,""}
char *bench_value_to_str(bench_value r);
bench_value bench_value_from_str(const char* str);
@@ -52,4 +76,12 @@ bench_value benchmark_crunch_for(float seconds, gint n_threads,
extern bench_value bench_results[BENCHMARK_N_ENTRIES];
+/* in bench_util.c */
+
+/* guarantee a minimum size of data
+ * or return null */
+gchar *get_test_data(gsize min_size);
+char *md5_digest_str(const char *data, unsigned int len);
+#define bench_msg(msg, ...) fprintf (stderr, "[%s] " msg "\n", __FUNCTION__, ##__VA_ARGS__)
+
#endif /* __BENCHMARK_H__ */
diff --git a/includes/callbacks.h b/includes/callbacks.h
index 392d5767..421cff5e 100644
--- a/includes/callbacks.h
+++ b/includes/callbacks.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -40,5 +40,6 @@ void cb_manage_hosts();
void cb_connect_host(GtkAction * action);
void cb_local_computer();
void cb_act_as_server();
+void cb_sync_on_startup();
#endif /* __CALLBACKS_H__ */
diff --git a/includes/computer.h b/includes/computer.h
index 5a69a171..f8589d77 100644
--- a/includes/computer.h
+++ b/includes/computer.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -19,6 +19,7 @@
#define __COMPUTER_H__
#include "hardinfo.h"
+#include "x_util.h"
typedef struct _Computer Computer;
typedef struct _OperatingSystem OperatingSystem;
@@ -26,6 +27,7 @@ typedef struct _MemoryInfo MemoryInfo;
typedef struct _UptimeInfo UptimeInfo;
typedef struct _LoadInfo LoadInfo;
typedef struct _DisplayInfo DisplayInfo;
+typedef struct _Distro Distro;
typedef struct _AlsaInfo AlsaInfo;
typedef struct _AlsaCard AlsaCard;
@@ -36,14 +38,14 @@ typedef struct _FileSystemEntry FileSystemEntry;
struct _AlsaCard {
gchar *alsa_name;
gchar *friendly_name;
-/*
+/*
gchar *board;
gchar revision, compat_class;
gint subsys_vendorid, subsys_id;
-
+
gint cap_dac_res, cap_adc_res;
gboolean cap_3d_enh;
-
+
gint curr_mic_gain;
gboolean curr_3d_enh,
curr_loudness,
@@ -57,14 +59,18 @@ struct _AlsaInfo {
};
struct _DisplayInfo {
- gchar *ogl_vendor, *ogl_renderer, *ogl_version;
- gboolean dri;
-
- gchar *display_name, *vendor, *version;
- gchar *extensions;
- gchar *monitors;
-
+ /* old stuff */
gint width, height;
+
+ /* new stuff */
+ xinfo *xi; /* x info */
+ wl_info *wl; /* wayland info */
+
+ gchar *display_server;
+
+ /* don't free */
+ const gchar *vendor; /* X vendor; points to xrr->xi->vendor */
+ const gchar *session_type; /* points to wl->xdg_session_type */
};
struct _LoadInfo {
@@ -84,10 +90,15 @@ struct _Computer {
gchar *date_time;
};
+#include "distro_flavors.h"
+
struct _OperatingSystem {
gchar *kernel;
+ gchar *kcmdline;
gchar *libc;
- gchar *distrocode, *distro;
+ gchar *distrocode;
+ gchar *distroid;
+ gchar *distro;
gchar *hostname;
gchar *language;
gchar *homedir;
@@ -97,10 +108,12 @@ struct _OperatingSystem {
gchar *desktop;
gchar *username;
-
+
gchar *boots;
gchar *entropy_avail;
+
+ const DistroFlavor* distro_flavor;
};
struct _MemoryInfo {
@@ -108,6 +121,12 @@ struct _MemoryInfo {
gfloat ratio;
};
+struct _Distro {
+ gchar *distro;
+ gchar *codename;
+ gchar *id;
+};
+
#define get_str(field_name,ptr) \
if (g_str_has_prefix(tmp[0], field_name)) { \
ptr = g_strdup(tmp[1]); \
@@ -137,16 +156,31 @@ extern gchar *module_list;
gchar *computer_get_formatted_loadavg();
gchar *computer_get_formatted_uptime();
gchar *computer_get_alsacards(Computer * computer);
-gchar *computer_get_entropy_avail();
+gchar *computer_get_entropy_avail(void);
+gchar *computer_get_aslr(void);
+gchar *computer_get_dmesg_status(void);
+const gchar *computer_get_selinux(void);
+gchar *computer_get_lsm(void);
OperatingSystem *computer_get_os(void);
AlsaInfo *computer_get_alsainfo(void);
MemoryInfo *computer_get_memory(void);
UptimeInfo *computer_get_uptime(void);
DisplayInfo *computer_get_display(void);
+void computer_free_display(DisplayInfo *di);
void scan_modules_do(void);
void scan_filesystems(void);
void scan_users_do(void);
+/* Memory Usage */
+extern GHashTable *memlabels;
+void init_memory_labels(void);
+void scan_memory_do(void);
+void scan_boots_real(void);
+void scan_languages(OperatingSystem *os);
+void scan_groups_do(void);
+
+void kernel_module_icon_init(void);
+
#endif /* __COMPUTER_H__ */
diff --git a/includes/cpu_util.h b/includes/cpu_util.h
index c11d3f69..1adbf491 100644
--- a/includes/cpu_util.h
+++ b/includes/cpu_util.h
@@ -47,4 +47,6 @@ void cputopo_free(cpu_topology_data *cputd);
gchar *cputopo_section_str(cpu_topology_data *cputd);
+int cpu_procs_cores_threads_nodes(int *p, int *c, int *t, int *n);
+
#endif
diff --git a/includes/devices.h b/includes/devices.h
index e18a3838..e2ab8f7f 100644
--- a/includes/devices.h
+++ b/includes/devices.h
@@ -48,10 +48,6 @@ gchar *processor_describe_default(GSList * processors);
gchar *processor_describe_by_counting_names(GSList * processors);
gchar *processor_frequency_desc(GSList *processors);
-/* Memory */
-void init_memory_labels(void);
-void scan_memory_do(void);
-
/* Printers */
void init_cups(void);
@@ -65,14 +61,19 @@ void scan_pci_do(void);
void scan_printers_do(void);
/* Sensors */
-void scan_sensors_do(void);
-void sensors_init(void);
-void sensors_shutdown(void);
+#define SENSORS_GROUP_BY_TYPE 1
-#if defined(ARCH_x86) || defined(ARCH_x86_64)
-/* SPD */
-void scan_spd_do(void);
-#endif /* ARCH_x86 */
+void scan_sensors_do(void);
+void sensor_init(void);
+void sensor_shutdown(void);
+void __scan_dtree(void);
+void scan_gpu_do(void);
+gboolean __scan_udisks2_devices(void);
+void __scan_ide_devices(void);
+void __scan_scsi_devices(void);
+void __scan_input_devices(void);
+void __scan_usb(void);
+void __scan_dmi(void);
extern gchar *battery_list;
extern gchar *input_icons;
@@ -83,20 +84,19 @@ extern gchar *pci_list;
extern gchar *printer_icons;
extern gchar *printer_list;
extern gchar *sensors;
+extern gchar *sensor_icons;
extern gchar *storage_icons;
extern gchar *storage_list;
extern gchar *usb_list;
-extern GHashTable *memlabels;
+extern gchar *usb_icons;
extern GHashTable *_pci_devices;
extern GHashTable *sensor_compute;
extern GHashTable *sensor_labels;
extern GModule *cups;
-#if defined(ARCH_x86) || defined(ARCH_x86_64)
-extern gchar *spd_info;
extern gchar *dmi_info;
-#endif
-
extern gchar *dtree_info;
+extern gchar *gpu_list;
+extern gchar *gpu_summary;
#endif /* __DEVICES_H__ */
diff --git a/includes/remote.h b/includes/distro_flavors.h
index 6a988a3b..c316eeb6 100644
--- a/includes/remote.h
+++ b/includes/distro_flavors.h
@@ -1,11 +1,11 @@
/*
- * Remote Client
* HardInfo - Displays System Information
- * Copyright (C) 2003-2009 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2019 L. A. F. Pereira <l@tia.mat.br>
+ * This file Burt P. <pburt0@gmail.com>
*
* 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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -17,13 +17,21 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef __REMOTE_H__
-#define __REMOTE_H__
+#ifndef __DISTRO_FLAVORS_H__
+#define __DISTRO_FLAVORS_H__
-void remote_disconnect_all(gboolean ssh);
-gboolean remote_connect_host(gchar * hostname);
-void connect_dialog_show(GtkWidget * parent);
-void host_manager_show(GtkWidget * parent);
+typedef struct {
+ const char *name;
+ const char *icon;
+ const char *url;
+} DistroFlavor;
-#endif /* __REMOTE_H__ */
+typedef struct UbuntuFlavor {
+ const DistroFlavor base;
+ const char *package;
+} UbuntuFlavor;
+/* items are const; free with g_slist_free() */
+GSList *ubuntu_flavors_scan(void);
+
+#endif
diff --git a/includes/dmi_util.h b/includes/dmi_util.h
index aecda739..2fec1a04 100644
--- a/includes/dmi_util.h
+++ b/includes/dmi_util.h
@@ -1,12 +1,12 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2017 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2017 L. A. F. Pereira <l@tia.mat.br>
* This file
* Copyright (C) 2017 Burt P. <pburt0@gmail.com>
*
* 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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,11 +21,49 @@
#ifndef __DMI_UTIL_H__
#define __DMI_UTIL_H__
-char *dmi_get_str(const char *id_str);
+#include <inttypes.h>
+
+typedef uint32_t dmi_handle;
+typedef uint32_t dmi_type;
+
+/* -1 = yes, but will be ignored
+ * 0 = no
+ * 1 = yes */
+int dmi_str_status(const char *id_str);
+char *dmi_get_str(const char *id_str); /* ignore nonsense */
+char *dmi_get_str_abs(const char *id_str); /* include nonsense */
/* if chassis_type is <=0 it will be fetched from DMI.
* with_val = true, will return a string like "[3] Desktop" instead of just
* "Desktop". */
char *dmi_chassis_type_str(int chassis_type, gboolean with_val);
+typedef struct {
+ dmi_handle id;
+ uint32_t size;
+ dmi_type type;
+ const char *type_str; /* untranslated, use _() for translation */
+} dmi_handle_ext;
+
+typedef struct {
+ uint32_t count;
+ dmi_handle *handles;
+ dmi_handle_ext *handles_ext;
+} dmi_handle_list;
+
+/* get a list of handles that match a dmi_type */
+dmi_handle_list *dmidecode_handles(const dmi_type *type);
+void dmi_handle_list_free(dmi_handle_list *hl);
+
+/* get a list of handles which have a name, and/or optional value, and/or limit to an optional dmi_type
+ * dmidecode_match_value("Name", NULL, NULL) : all dmi handles with an item called "Name"
+ * dmidecode_match_value("Name", "Value", NULL) : all dmi_handles with an item called "Name" that has a value of "Value"
+ * dmidecode_match_value("Name", "Value", &dt) : all dmi_handles with "Name: Value" that are of type stored in dt */
+dmi_handle_list *dmidecode_match_value(const char *name, const char *value, const dmi_type *type);
+
+/* get the first value for name, limiting to optional dmi_type and/or optional handle */
+char *dmidecode_match(const char *name, const dmi_type *type, const dmi_handle *handle);
+
+void dmidecode_cache_free();
+
#endif
diff --git a/includes/dt_util.h b/includes/dt_util.h
index 7ef6808b..bec9af1c 100644
--- a/includes/dt_util.h
+++ b/includes/dt_util.h
@@ -20,6 +20,7 @@ enum {
DTP_STR, /* null-delimited list of strings */
DTP_HEX, /* list of 32-bit values displayed in hex */
DTP_UINT, /* unsigned int list */
+ DTP_UINT64, /* unsigned int64 list */
DTP_INTRUPT, /* interrupt-specifier list */
DTP_INTRUPT_EX, /* extended interrupt-specifier list */
DTP_OVR, /* all in /__overrides__ */
@@ -29,6 +30,8 @@ enum {
DTP_CLOCKS, /* <phref, #clock-cells> */
DTP_GPIOS, /* <phref, #gpio-cells> */
DTP_DMAS, /* dma-specifier list */
+ DTP_OPP1, /* list of operating points, pairs of (kHz,uV) */
+ DTP_PH_REF_OPP2, /* phandle reference to opp-v2 table */
};
/* simplest, no aliases, doesn't require an existing dt.
@@ -36,6 +39,7 @@ enum {
char* dtr_get_string(const char *p, int decode);
typedef uint32_t dt_uint; /* big-endian */
+typedef uint64_t dt_uint64; /* big-endian */
typedef struct _dtr dtr;
typedef struct _dtr_obj dtr_obj;
@@ -53,18 +57,20 @@ char *dtr_obj_alias(dtr_obj *);
char *dtr_obj_symbol(dtr_obj *);
char *dtr_obj_path(dtr_obj *); /* device tree path */
char *dtr_obj_full_path(dtr_obj *); /* system path */
+dtr_obj *dtr_get_parent_obj(dtr_obj *);
/* find property/node 'name' relative to node
* if node is NULL, then from root */
dtr_obj *dtr_get_prop_obj(dtr *, dtr_obj *node, const char *name);
char *dtr_get_prop_str(dtr *, dtr_obj *node, const char *name);
uint32_t dtr_get_prop_u32(dtr *, dtr_obj *node, const char *name);
+uint64_t dtr_get_prop_u64(dtr *, dtr_obj *node, const char *name);
/* attempts to render the object as a string */
char* dtr_str(dtr_obj *obj);
int dtr_guess_type(dtr_obj *obj);
-char *dtr_elem_phref(dtr *, dt_uint e, int show_path);
+char *dtr_elem_phref(dtr *, dt_uint e, int show_path, const char *extra);
char *dtr_elem_hex(dt_uint e);
char *dtr_elem_byte(uint8_t e);
char *dtr_elem_uint(dt_uint e);
@@ -80,10 +86,16 @@ const char *dtr_find_device_tree_root(void);
/* write to the message log */
void dtr_msg(dtr *s, char *fmt, ...);
-#define sp_sep(STR) (strlen(STR) ? " " : "")
-/* appends an element to a string, adding a space if
- * the string is not empty.
- * ex: ret = appf(ret, "%s=%s\n", name, value); */
-char *appf(char *src, char *fmt, ...);
+/* operating-points v0,v1,v2 */
+typedef struct {
+ uint32_t version; /* opp version, 0 = clock-frequency only */
+ uint32_t phandle; /* v2 only */
+ uint32_t khz_min;
+ uint32_t khz_max;
+ uint32_t clock_latency_ns;
+} dt_opp_range;
+
+/* free result with g_free() */
+dt_opp_range *dtr_get_opp_range(dtr *, const char *name);
#endif
diff --git a/includes/e2k/processor-platform.h b/includes/e2k/processor-platform.h
new file mode 100644
index 00000000..c6361823
--- /dev/null
+++ b/includes/e2k/processor-platform.h
@@ -0,0 +1,72 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2020 EntityFX <artem.solopiy@gmail.com> and MCST Elbrus Team
+ *
+ * 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__
+
+#include "cpu_util.h"
+
+/*
+
+E2K /proc/cpuinfo:
+
+
+processor : 0
+vendor_id : E8C-SWTX
+cpu family : 4
+model : 7
+model name : E8C
+revision : 2
+cpu MHz : 1299.912740
+cache0 : level=1 type=Instruction scope=Private size=128K line_size=256 associativity=4
+cache1 : level=1 type=Data scope=Private size=64K line_size=32 associativity=4
+cache2 : level=2 type=Unified scope=Private size=512K line_size=64 associativity=4
+cache3 : level=3 type=Unified scope=Private size=16384K line_size=64 associativity=16
+bogomips : 2600.68
+
+*/
+
+
+typedef struct _ProcessorCache ProcessorCache;
+
+struct _ProcessorCache {
+ gint level;
+ gint number_of_sets;
+ gint physical_line_partition;
+ gint size;
+ gchar *type;
+ gint ways_of_associativity;
+ gint uid; /* uid is unique among caches with the same (type, level) */
+ gchar *shared_cpu_list; /* some kernel's don't give a uid, so try shared_cpu_list */
+ gint phy_sock;
+};
+
+//e2k processor structure
+struct _Processor {
+ gint id;
+ gfloat cpu_mhz;
+ gchar *model_name;
+ gchar *vendor_id;
+ gfloat bogomips;
+
+ gint model, family, revision;
+
+ GSList *cache;
+};
+
+#endif /* __PROCESSOR_PLATFORM_H__ */
diff --git a/includes/egg-markdown.h b/includes/egg-markdown.h
index 4475b9f0..1a2b03f4 100644
--- a/includes/egg-markdown.h
+++ b/includes/egg-markdown.h
@@ -1,7 +1,7 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
- * Copyright (C) 2009 Leandro Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2009 L.Pereira <l@tia.mat.br>
*
* Licensed under the GNU General Public License Version 2
*
diff --git a/includes/expr.h b/includes/expr.h
index 4bda6b72..18d0cc65 100644
--- a/includes/expr.h
+++ b/includes/expr.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/gpu_util.h b/includes/gpu_util.h
new file mode 100644
index 00000000..c0089ffb
--- /dev/null
+++ b/includes/gpu_util.h
@@ -0,0 +1,61 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2017 L. A. F. Pereira <l@tia.mat.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 or later.
+ *
+ * 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 __GPU_UTIL_H__
+#define __GPU_UTIL_H__
+
+#include <stdint.h>
+#include "pci_util.h"
+#include "dt_util.h"
+
+typedef struct nvgpu {
+ char *model;
+ char *bios_version;
+ char *uuid;
+} nvgpu;
+
+typedef struct gpud {
+ char *id; /* ours */
+ char *nice_name;
+ char *vendor_str;
+ char *device_str;
+ char *location;
+ uint32_t khz_min, khz_max; /* core */
+ uint32_t mem_khz_min, mem_khz_max; /* memory */
+
+ char *drm_dev;
+ char *sysfs_drm_path;
+ pcid *pci_dev;
+
+ char *dt_compat, *dt_status, *dt_name, *dt_path;
+ const char *dt_vendor, *dt_device;
+ dt_opp_range *dt_opp;
+
+ nvgpu *nv_info;
+ /* ... */
+
+ struct gpud *next; /* this is a linked list */
+} gpud;
+
+gpud *gpu_get_device_list();
+int gpud_list_count(gpud *);
+void gpud_list_free(gpud *);
+
+void gpud_free(gpud *);
+
+#endif
diff --git a/includes/guibench.h b/includes/guibench.h
index d24403bc..16f34218 100644
--- a/includes/guibench.h
+++ b/includes/guibench.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2009 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2009 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/hardinfo.h b/includes/hardinfo.h
index 637aa1fd..872a29fc 100644
--- a/includes/hardinfo.h
+++ b/includes/hardinfo.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -19,14 +19,19 @@
#ifndef __HARDINFO_H__
#define __HARDINFO_H__
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <unistd.h>
#include <gtk/gtk.h>
#include "config.h"
#include "shell.h"
#include "vendor.h"
#include "gettext.h"
#include "info.h"
+#include "format_early.h"
-#define HARDINFO_COPYRIGHT_LATEST_YEAR 2017
+#define HARDINFO2_COPYRIGHT_LATEST_YEAR 2024
#ifndef LOCALEDIR
#define LOCALEDIR "/usr/share/locale"
@@ -36,6 +41,7 @@ typedef enum {
MODULE_FLAG_NONE = 0,
MODULE_FLAG_NO_REMOTE = 1<<0,
MODULE_FLAG_HAS_HELP = 1<<1,
+ MODULE_FLAG_HIDE = 1<<2,
} ModuleEntryFlags;
typedef struct _ModuleEntry ModuleEntry;
@@ -45,16 +51,29 @@ typedef struct _ProgramParameters ProgramParameters;
struct _ProgramParameters {
gboolean create_report;
+ gboolean force_all_details; /* for create_report, include any "moreinfo" that exists for any item */
gboolean show_version;
gboolean gui_running;
gboolean list_modules;
gboolean autoload_deps;
- gboolean run_xmlrpc_server;
+ gboolean skip_benchmarks;
+ gboolean quiet;
+
+ /*
+ * OK to use the common parts of HTML(4.0) and Pango Markup
+ * in the value part of a key/value.
+ * Including the (b,big,i,s,sub,sup,small,tt,u) tags.
+ * https://developer.gnome.org/pango/stable/PangoMarkupFormat.html
+ */
+ gboolean markup_ok;
+ int fmt_opts;
gint report_format;
+ gint max_bench_results;
gchar **use_modules;
gchar *run_benchmark;
+ gchar *bench_user_note;
gchar *result_format;
gchar *path_lib;
gchar *path_data;
@@ -84,11 +103,11 @@ struct _ModuleAbout {
};
/* String utility functions */
-inline void remove_quotes(gchar *str);
-inline char *strend(gchar *str, gchar chr);
-inline void remove_linefeed(gchar *str);
-gchar *strreplacechr(gchar *string, gchar *replace, gchar new_char);
-gchar *strreplace(gchar *string, gchar *replace, gchar *replacement);
+void remove_quotes(gchar *str);
+char *strend(gchar *str, gchar chr);
+void remove_linefeed(gchar *str);
+gchar *strreplacechr(gchar *string, gchar *replace, gchar new_char);
+gchar *strreplace(gchar *string, gchar *replace, gchar *replacement);
/* Widget utility functions */
void widget_set_cursor(GtkWidget *widget, GdkCursorType cursor_type);
@@ -102,25 +121,24 @@ gchar *file_chooser_build_filename(GtkWidget *chooser, gchar *extension);
gpointer file_types_get_data_by_name(FileTypes *file_types, gchar *name);
/* Misc utility functions */
-#if RELEASE == 1
-gpointer idle_free(gpointer ptr);
-#else
-gpointer __idle_free(gpointer ptr, gchar *f, gint l);
-#define idle_free(p) __idle_free(p, __FILE__, __LINE__)
-#endif /* RELEASE == 1 */
+#if !(RELEASE == 1)
+#define DEBUG_AUTO_FREE 2
+#endif
+#include "auto_free.h"
+#define idle_free(ptr) auto_free(ptr)
gchar *find_program(gchar *program_name);
-inline gchar *size_human_readable(gfloat size);
+gchar *size_human_readable(gfloat size);
void nonblock_sleep(guint msec);
-void open_url(gchar *url);
GSList *modules_get_list(void);
GSList *modules_load_selected(void);
GSList *modules_load_all(void);
void module_unload_all(void);
-ModuleAbout *module_get_about(ShellModule *module);
+const ModuleAbout *module_get_about(ShellModule *module);
gchar *seconds_to_string(unsigned int seconds);
-gchar *h_strdup_cprintf(const gchar *format, gchar *source, ...);
+gchar *h_strdup_cprintf(const gchar *format, gchar *source, ...)
+ __attribute__((format(gnu_printf, 1, 3)));
gchar *h_strconcat(gchar *string1, ...);
void h_hash_table_remove_all (GHashTable *hash_table);
@@ -146,9 +164,10 @@ gchar *module_call_method(gchar *method);
gchar *module_call_method_param(gchar * method, gchar * parameter);
/* Sysfs stuff */
-gfloat h_sysfs_read_float(gchar *endpoint, gchar *entry);
-gint h_sysfs_read_int(gchar *endpoint, gchar *entry);
-gchar *h_sysfs_read_string(gchar *endpoint, gchar *entry);
+gfloat h_sysfs_read_float(const gchar *endpoint, const gchar *entry);
+gint h_sysfs_read_int(const gchar *endpoint, const gchar *entry);
+gint h_sysfs_read_hex(const gchar *endpoint, const gchar *entry);
+gchar *h_sysfs_read_string(const gchar *endpoint, const gchar *entry);
#define SCAN_START() static gboolean scanned = FALSE; if (reload) scanned = FALSE; if (scanned) return;
#define SCAN_END() scanned = TRUE;
@@ -171,6 +190,11 @@ gchar *moreinfo_lookup(gchar *key);
gboolean g_strv_contains(const gchar * const * strv, const gchar *str);
#endif
+/* in gg_key_file_parse_string_as_value.c */
+gchar *
+gg_key_file_parse_string_as_value (const gchar *string, const gchar list_separator);
+
+gchar *hardinfo_clean_grpname(const gchar *v, int replacing);
/* Hardinfo labels that have # are truncated and/or hidden.
* Labels can't have $ because that is the delimiter in
* moreinfo.
@@ -179,4 +203,32 @@ gchar *hardinfo_clean_label(const gchar *v, int replacing);
/* hardinfo uses the values as {ht,x}ml, apparently */
gchar *hardinfo_clean_value(const gchar *v, int replacing);
+/* Same as hardinfo_spawn_command_line_sync(), but calls shell_status_pulse()
+ * before. */
+gboolean hardinfo_spawn_command_line_sync(const gchar *command_line,
+ gchar **standard_output,
+ gchar **standard_error,
+ gint *exit_status,
+ GError **error);
+
+/* a marker in text to point out problems, using markup where possible */
+const char *problem_marker();
+
+/* a version of g_strescape() that allows escaping extra characters.
+ * use with g_strcompress() as normal. */
+gchar *
+gg_strescape (const gchar *source,
+ const gchar *exceptions,
+ const gchar *extra);
+
+/* hinote helpers */
+#define note_max_len 512
+#define note_printf(note_buff, fmt, ...) \
+ snprintf((note_buff) + strlen(note_buff), note_max_len - strlen(note_buff) - 1, \
+ fmt, ##__VA_ARGS__)
+#define note_print(note_buff, str) note_printf((note_buff), "%s", str)
+gboolean note_cond_bullet(gboolean cond, gchar *note_buff, const gchar *desc_str);
+gboolean note_require_tool(const gchar *tool, gchar *note_buff, const gchar *desc_str);
+int cpu_procs_cores_threads(int *p, int *c, int *t);
+
#endif /* __HARDINFO_H__ */
diff --git a/includes/help-viewer.h b/includes/help-viewer.h
index 688ff325..85c78edf 100644
--- a/includes/help-viewer.h
+++ b/includes/help-viewer.h
@@ -1,10 +1,10 @@
/*
* HelpViewer - Simple Help file browser
- * Copyright (C) 2009 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2009 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/ia64/processor-platform.h b/includes/ia64/processor-platform.h
index 5d525639..d118fe86 100644
--- a/includes/ia64/processor-platform.h
+++ b/includes/ia64/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/iconcache.h b/includes/iconcache.h
index 97f59a82..b71924c3 100644
--- a/includes/iconcache.h
+++ b/includes/iconcache.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/info.h b/includes/info.h
index 253c06e0..77894518 100644
--- a/includes/info.h
+++ b/includes/info.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2017 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2017 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,8 +18,20 @@
#pragma once
+#include <stdarg.h>
#include <glib.h>
+enum InfoGroupSort {
+ INFO_GROUP_SORT_NONE,
+ INFO_GROUP_SORT_NAME_ASCENDING,
+ INFO_GROUP_SORT_NAME_DESCENDING,
+ INFO_GROUP_SORT_VALUE_ASCENDING,
+ INFO_GROUP_SORT_VALUE_DESCENDING,
+ INFO_GROUP_SORT_TAG_ASCENDING,
+ INFO_GROUP_SORT_TAG_DESCENDING,
+ INFO_GROUP_SORT_MAX,
+};
+
struct Info {
GArray *groups;
@@ -36,32 +48,60 @@ struct Info {
struct InfoGroup {
const gchar *name;
+ enum InfoGroupSort sort;
GArray *fields;
- /* scaffolding fields */
+ /* scaffolding fields */
const gchar *computed;
};
struct InfoField {
const gchar *name;
- gchar *value;
+ const gchar *value;
+ const gchar *icon;
int update_interval;
+ gboolean highlight; /* select in GUI, highlight in report (flag:*) */
+ gboolean report_details; /* show moreinfo() in report (flag:!) */
+ gboolean value_has_vendor; /* (flag:^) */
+ gboolean label_is_escaped; /* if the label will need g_strcompress() before display use */
+ gboolean free_name_on_flatten;
gboolean free_value_on_flatten;
+
+ /* scaffolding fields */
+ gchar *tag; /* moreinfo() lookup tag */
};
struct Info *info_new(void);
-void info_add_group(struct Info *info, const gchar *group_name, ...);
+void info_remove_group(struct Info *info, guint index);
+struct InfoGroup *info_add_group(struct Info *info, const gchar *group_name, ...);
+void info_group_strip_extra(struct InfoGroup *group);
+
void info_add_computed_group(struct Info *info, const gchar *name, const gchar *value);
+void info_add_computed_group_wo_extra(struct Info *info, const gchar *name, const gchar *value);
+
+void info_group_add_field(struct InfoGroup *group, struct InfoField field);
+void info_group_add_fields(struct InfoGroup *group, ...);
+void info_group_add_fieldsv(struct InfoGroup *group, va_list ap);
-struct InfoField info_field(const gchar *name, gchar *value);
struct InfoField info_field_printf(const gchar *name, const gchar *format, ...)
__attribute__((format(printf, 2, 3)));
-struct InfoField info_field_update(const gchar *name, int update_interval);
-struct InfoField info_field_last(void);
+
+#define info_field_full(...) \
+ (struct InfoField) { __VA_ARGS__ }
+
+#define info_field(n, v, ...) \
+ info_field_full(.name = (n), .value = (v), __VA_ARGS__)
+
+#define info_field_update(n, ui, ...) \
+ info_field_full(.name = (n), .value = "...", .update_interval = (ui), \
+ __VA_ARGS__)
+
+#define info_field_last() \
+ (struct InfoField) {}
void info_set_column_title(struct Info *info, const gchar *column, const gchar *title);
void info_set_column_headers_visible(struct Info *info, gboolean setting);
@@ -71,3 +111,4 @@ void info_set_view_type(struct Info *info, ShellViewType setting);
void info_set_reload_interval(struct Info *info, int setting);
gchar *info_flatten(struct Info *info);
+struct Info *info_unflatten(const gchar *str);
diff --git a/includes/loadgraph.h b/includes/loadgraph.h
index d79ca39b..d176e816 100644
--- a/includes/loadgraph.h
+++ b/includes/loadgraph.h
@@ -1,6 +1,6 @@
/*
* Simple Load Graph
- * Copyright (C) 2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2006 L. A. F. Pereira <l@tia.mat.br>
*
* The Simple Load Graph is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -47,6 +47,9 @@ void load_graph_clear(LoadGraph *lg);
void load_graph_set_data_suffix(LoadGraph *lg, gchar *suffix);
gchar *load_graph_get_data_suffix(LoadGraph *lg);
+void load_graph_set_title(LoadGraph *lg, const gchar *title);
+const gchar *load_graph_get_title(LoadGraph *lg);
+
gint load_graph_get_height(LoadGraph *lg);
#endif /* __LOADGRAPH_H__ */
diff --git a/includes/xmlrpc-server.h b/includes/loongarch64/processor-platform.h
index e608b711..43ba0a26 100644
--- a/includes/xmlrpc-server.h
+++ b/includes/loongarch64/processor-platform.h
@@ -1,6 +1,6 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2009 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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
@@ -15,11 +15,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef __XMLRPC_SERVER_H__
-#define __XMLRPC_SERVER_H__
-void xmlrpc_server_start(GMainLoop *main_loop);
-void xmlrpc_server_init(void);
+#ifndef __PROCESSOR_PLATFORM_H__
+#define __PROCESSOR_PLATFORM_H__
-#endif /* __XMLRPC_SERVER_H__ */
+struct _Processor {
+ gchar *vendor_id;
+ gchar *family;
+ gchar *model_name;
+ gint revision;
+ gfloat cpu_mhz, bogomips;
+ gchar *features;
+};
+#endif /* __PROCESSOR_PLATFORM_H__ */
diff --git a/includes/m68k/processor-platform.h b/includes/m68k/processor-platform.h
index 9aea1dfe..5e38bc11 100644
--- a/includes/m68k/processor-platform.h
+++ b/includes/m68k/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/markdown-text-view.h b/includes/markdown-text-view.h
index 648ea39c..11d184a2 100644
--- a/includes/markdown-text-view.h
+++ b/includes/markdown-text-view.h
@@ -2,7 +2,7 @@
* Markdown Text View
* GtkTextView subclass that supports Markdown syntax
*
- * Copyright (C) 2009 Leandro Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2009 L.Pereira <l@tia.mat.br>
* Portions Copyright (C) 2007-2008 Richard Hughes <richard@hughsie.com>
* Portions Copyright (C) GTK+ Team (based on hypertext textview demo)
*
diff --git a/includes/menu.h b/includes/menu.h
index 3c804008..d5e8aeeb 100644
--- a/includes/menu.h
+++ b/includes/menu.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/mips/processor-platform.h b/includes/mips/processor-platform.h
index 9bdae18b..394ba99e 100644
--- a/includes/mips/processor-platform.h
+++ b/includes/mips/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/network.h b/includes/network.h
index 1e71126e..13d54872 100644
--- a/includes/network.h
+++ b/includes/network.h
@@ -9,5 +9,7 @@ extern gchar *network_interfaces;
extern gchar *network_icons;
void scan_net_interfaces(void);
+void scan_samba(void);
+void scan_nfs_shared_directories(void);
-#endif /* __NETWORK_H__ */ \ No newline at end of file
+#endif /* __NETWORK_H__ */
diff --git a/includes/parisc/processor-platform.h b/includes/parisc/processor-platform.h
index c55c69ec..b7485bda 100644
--- a/includes/parisc/processor-platform.h
+++ b/includes/parisc/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/pci_util.h b/includes/pci_util.h
new file mode 100644
index 00000000..f2d1d605
--- /dev/null
+++ b/includes/pci_util.h
@@ -0,0 +1,78 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2017 L. A. F. Pereira <l@tia.mat.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 or later.
+ *
+ * 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 __PCI_UTIL_H__
+#define __PCI_UTIL_H__
+
+#include <stdint.h>
+
+#define SYSFS_PCI_ROOT "/sys/bus/pci/devices"
+
+char *pci_address_str(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func);
+
+typedef struct pcid {
+ uint32_t domain;
+ uint32_t bus;
+ uint32_t device;
+ uint32_t function;
+ uint32_t class;
+ uint32_t vendor_id;
+ uint32_t device_id;
+ uint32_t sub_vendor_id;
+ uint32_t sub_device_id;
+ uint32_t revision;
+ char *slot_str;
+ char *class_str;
+ char *vendor_id_str;
+ char *device_id_str;
+ char *sub_vendor_id_str;
+ char *sub_device_id_str;
+
+ char *driver; /* Kernel driver in use */
+ char *driver_list; /* Kernel modules */
+
+ float pcie_speed_max; /* GT/s */
+ float pcie_speed_curr; /* GT/s */
+ uint32_t pcie_width_max;
+ uint32_t pcie_width_curr;
+
+ /* ... */
+
+} pcid;
+
+pcid *pci_get_device(uint32_t dom, uint32_t bus, uint32_t dev, uint32_t func);
+pcid *pci_get_device_str(const char *addy);
+#define pcid_new() g_new0(pcid, 1)
+gint pcid_cmp_by_addy(gconstpointer a, gconstpointer b);
+void pcid_free(pcid *);
+
+typedef GSList* pcid_list;
+/* examples:
+ * to get all pci devices:
+ * pcid_list list = pci_get_device_list(0, 0);
+ * to get all display controllers:
+ * pcid_list list = pci_get_device_list(0x300, 0x3ff);
+ */
+pcid_list pci_get_device_list(uint32_t class_min, uint32_t class_max);
+#define pcid_list_count(l) g_slist_length(l);
+#define pcid_list_free(l) g_slist_free_full(l, (GDestroyNotify)pcid_free)
+
+const gchar *find_pci_ids_file();
+char *pci_lookup_ids_vendor_str(uint32_t id);
+
+#endif
diff --git a/includes/ppc/processor-platform.h b/includes/ppc/processor-platform.h
index d3d1a568..df1fcbaa 100644
--- a/includes/ppc/processor-platform.h
+++ b/includes/ppc/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/report.h b/includes/report.h
index 782621cb..47b510c1 100644
--- a/includes/report.h
+++ b/includes/report.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,7 +15,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-
+
#ifndef __REPORT_H__
#define __REPORT_H__
#include <gtk/gtk.h>
@@ -24,6 +24,7 @@
typedef enum {
REPORT_FORMAT_HTML,
REPORT_FORMAT_TEXT,
+ REPORT_FORMAT_SHELL,
N_REPORT_FORMAT
} ReportFormat;
@@ -41,22 +42,29 @@ typedef struct _ReportContext ReportContext;
struct _ReportContext {
ShellModuleEntry *entry;
gchar *output;
-
+
void (*header) (ReportContext *ctx);
void (*footer) (ReportContext *ctx);
void (*title) (ReportContext *ctx, gchar *text);
void (*subtitle) (ReportContext *ctx, gchar *text);
void (*subsubtitle) (ReportContext *ctx, gchar *text);
- void (*keyvalue) (ReportContext *ctx, gchar *key, gchar *value);
-
+ void (*keyvalue) (ReportContext *ctx, gchar *key, gchar *value, gsize longest_key);
+
+ void (*details_start) (ReportContext *ctx, gchar *key, gchar *value, gsize longest_key);
+ void (*details_section) (ReportContext *ctx, gchar *name);
+ void (*details_keyvalue) (ReportContext *ctx, gchar *key, gchar *value, gsize longest_key);
+ void (*details_end) (ReportContext *ctx);
+
ReportFormat format;
-
- gboolean is_image_enabled;
+
gboolean first_table;
+ gboolean in_details;
gboolean show_column_headers;
- guint columns;
+ guint columns, parent_columns;
GHashTable *column_titles;
+ GHashTable *icon_refs;
+ GHashTable *icon_data;
};
struct _ReportDialog {
@@ -67,7 +75,7 @@ struct _ReportDialog {
GtkWidget *btn_sel_all;
GtkWidget *btn_sel_none;
GtkWidget *treeview;
-
+
GtkTreeModel *model;
};
@@ -75,14 +83,16 @@ void report_dialog_show();
ReportContext *report_context_html_new();
ReportContext *report_context_text_new();
+ReportContext *report_context_shell_new();
void report_header (ReportContext *ctx);
void report_footer (ReportContext *ctx);
void report_title (ReportContext *ctx, gchar *text);
void report_subtitle (ReportContext *ctx, gchar *text);
void report_subsubtitle (ReportContext *ctx, gchar *text);
-void report_key_value (ReportContext *ctx, gchar *key, gchar *value);
+void report_key_value (ReportContext *ctx, gchar *key, gchar *value, gsize longest_key);
void report_table (ReportContext *ctx, gchar *text);
+void report_details (ReportContext *ctx, gchar *key, gchar *value, gchar *details, gsize longest_key);
void report_create_from_module_list(ReportContext *ctx, GSList *modules);
gchar *report_create_from_module_list_format(GSList *modules, ReportFormat format);
diff --git a/includes/riscv/processor-platform.h b/includes/riscv/processor-platform.h
index 07cbf86e..b2c1c69c 100644
--- a/includes/riscv/processor-platform.h
+++ b/includes/riscv/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/s390/processor-platform.h b/includes/s390/processor-platform.h
index 9164a7f2..2edee105 100644
--- a/includes/s390/processor-platform.h
+++ b/includes/s390/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/sh/processor-platform.h b/includes/sh/processor-platform.h
index 26b58ec5..e8ba7686 100644
--- a/includes/sh/processor-platform.h
+++ b/includes/sh/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/sha1.h b/includes/sha1.h
index 573ff8ac..8b5c0b2f 100644
--- a/includes/sha1.h
+++ b/includes/sha1.h
@@ -17,7 +17,7 @@
typedef struct {
- guint32 state[5];
+ guint32 state[20];
guint32 count[2];
guchar buffer[64];
} SHA1_CTX;
diff --git a/includes/shell.h b/includes/shell.h
index 2eb9e6d2..ab39106c 100644
--- a/includes/shell.h
+++ b/includes/shell.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +27,7 @@ typedef struct _Shell Shell;
typedef struct _ShellTree ShellTree;
typedef struct _ShellInfoTree ShellInfoTree;
typedef struct _ShellNote ShellNote;
-typedef struct _ShellSummary ShellSummary;
+typedef struct _DetailView DetailView;
typedef struct _ShellModule ShellModule;
typedef struct _ShellModuleMethod ShellModuleMethod;
@@ -52,7 +52,7 @@ typedef enum {
SHELL_VIEW_LOAD_GRAPH,
SHELL_VIEW_PROGRESS,
SHELL_VIEW_PROGRESS_DUAL,
- SHELL_VIEW_SUMMARY,
+ SHELL_VIEW_DETAIL,
SHELL_VIEW_N_VIEWS
} ShellViewType;
@@ -81,14 +81,16 @@ struct _Shell {
GtkWidget *status, *progress;
GtkWidget *remote_label;
GtkWidget *notebook;
- GtkWidget *hpaned, *vpaned;
+ GtkWidget *hbox, *vpaned;
+
+ GtkWindow *transient_dialog;
ShellTree *tree;
- ShellInfoTree *info, *moreinfo;
+ ShellInfoTree *info_tree;
ShellModule *selected_module;
ShellModuleEntry *selected;
ShellNote *note;
- ShellSummary *summary;
+ DetailView *detail_view;
LoadGraph *loadgraph;
GtkActionGroup *action_group;
@@ -97,20 +99,18 @@ struct _Shell {
ShellViewType view_type;
gboolean normalize_percentage;
-
+
gint _pulses;
ShellOrderType _order_type;
-
+
GKeyFile *hosts;
HelpViewer *help_viewer;
};
-struct _ShellSummary {
- GtkWidget *header;
+struct _DetailView {
GtkWidget *scroll;
GtkWidget *view;
-
- GSList *items;
+ GtkWidget *detail_box;
};
struct _ShellTree {
@@ -127,7 +127,7 @@ struct _ShellInfoTree {
GtkWidget *view;
GtkTreeModel *model;
GtkTreeSelection *selection;
-
+
GtkTreeViewColumn *col_progress, *col_value, *col_extra1, *col_extra2, *col_textvalue;
};
@@ -141,10 +141,10 @@ struct _ShellModule {
GdkPixbuf *icon;
GModule *dll;
- gpointer (*aboutfunc) ();
+ gconstpointer (*aboutfunc)(void);
gchar *(*summaryfunc) ();
void (*deinit) ();
-
+
guchar weight;
GSList *entries;
@@ -162,7 +162,7 @@ struct _ShellModuleEntry {
gboolean selected;
gint number;
guint32 flags;
-
+
gchar *(*func) ();
void (*scan_func) ();
@@ -196,6 +196,8 @@ void shell_action_set_property(const gchar *action_name,
const gchar *property,
gboolean setting);
+void shell_set_transient_dialog(GtkWindow *dialog);
+
void shell_set_side_pane_visible(gboolean setting);
void shell_set_note_from_entry(ShellModuleEntry *entry);
void shell_ui_manager_set_visible(const gchar *path,
@@ -220,6 +222,39 @@ void shell_update_remote_menu(void);
void shell_set_remote_label(Shell *shell, gchar *label);
+/* decode special information in keys
+ *
+ * key syntax:
+ * [$[<flags>][<tag>]$]<name>[#[<dis>]]
+ * flags:
+ * [[!][*][^]]
+ * ! = show details (moreinfo) in reports
+ * * = highlight/select this row
+ * ^ = value is/has a vendor string
+ * @ = label is escaped with key_label_escape()
+ */
+gboolean key_is_flagged(const gchar *key); /* has $[<flags>][<tag>]$ at the start of the key */
+gboolean key_is_highlighted(const gchar *key); /* flag '*' = select/highlight */
+gboolean key_wants_details(const gchar *key); /* flag '!' = report should include the "moreinfo" */
+gboolean key_value_has_vendor_string(const gchar *key); /* flag '^' = try and match the value to a vendor */
+#define key_label_escape(LBL) (gg_strescape(LBL, NULL, "=$#"))
+gboolean key_label_is_escaped(const gchar *key); /* flag '@' = the label part is key_label_escape()-d and
+ * needs to be g_strcompress()-ed before use.
+ * key_get_components() will do this automatically for label. */
+gchar *key_mi_tag(const gchar *key); /* moreinfo lookup tag */
+const gchar *key_get_name(const gchar *key); /* get the key's name, flagged or not */
+/*
+ * example for key = "$*!Foo$Bar#7":
+ * flags = "$*!^Foo$" // key_is/wants_*() still works on flags
+ * tag = "Foo" // the moreinfo/icon tag
+ * name = "Bar#7" // the full unique name
+ * label = "Bar" // the label displayed
+ * dis = "7"
+ */
+void key_get_components(const gchar *key,
+ gchar **flags, gchar **tag, gchar **name, gchar **label, gchar **dis,
+ gboolean null_empty);
+
#endif /* __SHELL_H__ */
diff --git a/includes/socket.h b/includes/socket.h
index 7c44837e..8dd4d439 100644
--- a/includes/socket.h
+++ b/includes/socket.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/sparc/processor-platform.h b/includes/sparc/processor-platform.h
index 31748a5b..c0e6f5cc 100644
--- a/includes/sparc/processor-platform.h
+++ b/includes/sparc/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/ssh-conn.h b/includes/ssh-conn.h
deleted file mode 100644
index b1b0a9ca..00000000
--- a/includes/ssh-conn.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- Remote Client
- HardInfo - Displays System Information
- Copyright (C) 2003-2009 Leandro A. F. Pereira <leandro@hardinfo.org>
-
- Based on ssh-method.c from GnomeVFS
- Copyright (C) 1999 Free Software Foundation
- Original author: Ian McKellar <yakk@yakk.net>
-
- The Gnome Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-#ifndef __SSH_CONN_H__
-#define __SSH_CONN_H__
-
-#include "config.h"
-#ifdef HAS_LIBSOUP
-#include <libsoup/soup.h>
-
-typedef struct _SSHConn SSHConn;
-
-typedef enum {
- SSH_CONN_OK,
- SSH_CONN_NO_URI,
- SSH_CONN_UNKNOWN_PROTOCOL,
- SSH_CONN_UNKNOWN_ERROR,
- SSH_CONN_CANNOT_SPAWN_SSH,
- SSH_CONN_BAD_PARAMS,
- SSH_CONN_PERMISSION_DENIED,
- SSH_CONN_HOST_KEY_CHECK_FAIL,
- SSH_CONN_REFUSED,
- SSH_CONN_INVALID_USER_PASS,
-} SSHConnResponse;
-
-struct _SSHConn {
- SoupURI *uri;
- int fd_read, fd_write, fd_error;
- GPid pid;
- gchar *askpass_path;
-
- gint exit_status;
-};
-
-SSHConnResponse ssh_new(SoupURI * uri,
- SSHConn ** conn_return, gchar * command);
-void ssh_close(SSHConn * conn);
-
-int ssh_write(SSHConn * conn,
- gconstpointer buffer, gint num_bytes, gint * bytes_written);
-int ssh_read(gint fd, gpointer buffer, gint num_bytes, gint * bytes_read);
-
-const char *ssh_conn_errors[10];
-#endif /* HAS_LIBSOUP */
-#endif /* __SSH_CONN_H__ */
diff --git a/includes/stock.h b/includes/stock.h
index 706e5c51..d3efffdb 100644
--- a/includes/stock.h
+++ b/includes/stock.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -19,6 +19,8 @@
#ifndef __STOCK_H__
#define __STOCK_H__
+#define HI_STOCK_CLIPBOARD "hi-stock-clipboard"
+#define HI_STOCK_REFRESH "hi-stock-refresh"
#define HI_STOCK_REPORT "hi-stock-report"
#define HI_STOCK_INTERNET "hi-stock-internet"
#define HI_STOCK_MODULE "hi-stock-module"
diff --git a/includes/storage_util.h b/includes/storage_util.h
new file mode 100644
index 00000000..7774e71f
--- /dev/null
+++ b/includes/storage_util.h
@@ -0,0 +1,22 @@
+#include "vendor.h"
+#include "pci_util.h"
+
+// udisks2 drive info extended
+typedef struct u2driveext {
+ udiskd *d;
+ pcid *nvme_controller;
+ struct{
+ gchar *oui;
+ gchar *vendor;
+ } wwid_oui;
+ vendor_list vendors;
+} u2driveext;
+
+
+GSList *get_udisks2_drives_ext();
+
+u2driveext* u2drive_ext(udiskd * udisks_drive_data);
+void u2driveext_free(u2driveext *u);
+
+void udisks2_shutdown(void);
+void storage_shutdown(void);
diff --git a/includes/syncmanager.h b/includes/syncmanager.h
index ae0ed267..3b886b0f 100644
--- a/includes/syncmanager.h
+++ b/includes/syncmanager.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,17 +21,15 @@
#include <gtk/gtk.h>
-typedef struct _SyncEntry SyncEntry;
+typedef struct _SyncEntry SyncEntry;
struct _SyncEntry {
- gchar *name;
- gchar *fancy_name;
- gchar *save_to;
-
- gchar *(*get_data)(void);
- void (*callback)(SyncEntry *entry, const gchar *response);
-
- gboolean selected;
+ const gchar *name;
+ const gchar *file_name;
+
+ gchar *(*generate_contents_for_upload)(gsize *size);
+
+ gboolean selected;
};
void sync_manager_add_entry(SyncEntry *entry);
@@ -39,4 +37,6 @@ void sync_manager_clear_entries(void);
void sync_manager_show(GtkWidget *parent);
gint sync_manager_count_entries(void);
-#endif /* __SYNCMANAGER_H__ */
+void sync_manager_update_on_startup(void);
+
+#endif /* __SYNCMANAGER_H__ */
diff --git a/includes/udisks2_util.h b/includes/udisks2_util.h
new file mode 100644
index 00000000..9b26f6dd
--- /dev/null
+++ b/includes/udisks2_util.h
@@ -0,0 +1,69 @@
+#include "vendor.h"
+
+typedef struct udiskp {
+ gchar *block;
+ gchar *type;
+ gchar *version;
+ gchar *label;
+ guint64 size;
+ struct udiskp* next;
+} udiskp;
+
+enum{
+ UDSK_INTPVAL_SKIP = 0,
+ UDSK_INTPVAL_DIMENSIONLESS = 1,
+ UDSK_INTPVAL_MILISECONDS = 2,
+ UDSK_INTPVAL_HOURS = 3,
+ UDSK_INTPVAL_SECTORS = 4,
+ UDSK_INTPVAL_CELSIUS = 5,
+};
+
+typedef struct udisksa {
+ guint8 id;
+ gchar *identifier;
+ gint value;
+ gint worst;
+ gint threshold;
+ gint64 interpreted;
+ guint8 interpreted_unit; // enum
+ struct udisksa* next;
+} udisksa;
+
+typedef struct udiskd {
+ gchar *model;
+ gchar *vendor;
+ gchar *revision;
+ gchar *block_dev;
+ gchar *serial;
+ gchar *wwid;
+ gchar *connection_bus;
+ gchar *partition_table;
+ udiskp *partitions;
+ gboolean ejectable;
+ gboolean removable;
+ gint32 rotation_rate;
+ guint64 size;
+ gchar *media;
+ gchar **media_compatibility;
+ gboolean pm_supported;
+ gboolean aam_supported;
+ gboolean apm_supported;
+ gboolean smart_supported;
+ gboolean smart_enabled;
+ gboolean smart_failing;
+ guint64 smart_poweron;
+ gint64 smart_bad_sectors;
+ gint32 smart_temperature;
+ udisksa *smart_attributes;
+} udiskd;
+
+typedef struct udiskt {
+ gchar *drive;
+ gint32 temperature;
+} udiskt;
+void udisks2_init();
+void udisks2_shutdown();
+GSList *get_udisks2_temps();
+GSList *get_udisks2_all_drives_info();
+void udiskt_free(udiskt *u);
+void udiskd_free(udiskd *u);
diff --git a/includes/uidefs.h b/includes/uidefs.h
index 70d2de17..c3042492 100644
--- a/includes/uidefs.h
+++ b/includes/uidefs.h
@@ -5,55 +5,62 @@
#if RELEASE
#define DEBUG_TOOLBAR_ITEMS
-#else /* !RELEASE */
-#define DEBUG_TOOLBAR_ITEMS "<separator/>" \
- "<toolitem name=\"ReportBug\" action=\"ReportBugAction\" />"
-#endif /* !RELEASE */
+#else /* !RELEASE */
+#define DEBUG_TOOLBAR_ITEMS \
+ "<separator/>" \
+ "<toolitem name=\"ReportBug\" action=\"ReportBugAction\" />"
+#endif /* !RELEASE */
-#ifdef HAS_LIBSOUP
-#define SYNC_MANAGER_ITEMS " <separator/>" \
-" <menuitem name=\"SyncManager\" action=\"SyncManagerAction\" />"
+#define SYNC_MANAGER_MENU_ITEMS \
+ "<separator/>" \
+ "<menuitem name=\"SyncManager\" action=\"SyncManagerAction\" " \
+ "always-show-image=\"true\"/>" \
+ "<menuitem name=\"SyncOnStartup\" action=\"SyncOnStartupAction\"/>"
+#define SYNC_MANAGER_TOOL_ITEMS \
+ "<toolitem name=\"SyncManager\" action=\"SyncManagerAction\"/>"
-#else /* !HAS_LIBSOUP */
-#define SYNC_MANAGER_ITEMS
-#endif /* !HAS_LIBSOUP */
+char *uidefs_str =
+ "<ui>"
+ " <menubar>"
+ " <menu name=\"InformationMenu\" action=\"InformationMenuAction\">"
+ " <menuitem name=\"Report\" action=\"ReportAction\" />"
+ " <menuitem name=\"Copy\" action=\"CopyAction\" />"
+ SYNC_MANAGER_MENU_ITEMS \
+ " <separator/>"
+ " <menuitem name=\"Quit\" action=\"QuitAction\" />"
+ " </menu>"
+ " <menu name=\"ViewMenu\" action=\"ViewMenuAction\">"
+ " <menuitem name=\"SidePane\" action=\"SidePaneAction\"/>"
+ " <menuitem name=\"Toolbar\" action=\"ToolbarAction\"/>"
+ " <separator/>"
+ " <separator name=\"LastSep\"/>"
+ " <menuitem name=\"Refresh\" action=\"RefreshAction\"/>"
+ " </menu>"
+ " <menu name=\"HelpMenu\" action=\"HelpMenuAction\">"
+ " <menuitem name=\"WebPage\" action=\"HomePageAction\"/>"
+ " <menuitem name=\"ReportBug\" action=\"ReportBugAction\"/>"
+ " <menuitem name=\"About\" action=\"AboutAction\"/>"
+ " </menu>"
+ " </menubar>"
+ " <toolbar action=\"MainMenuBar\" action=\"MainMenuBarAction\">"
+ " <placeholder name=\"ToolItems\">"
+ " <toolitem name=\"Refresh\" action=\"RefreshAction\"/>"
+ " <separator/>"
+ " <toolitem name=\"Report\" action=\"ReportAction\"/>"
+ " <toolitem name=\"Copy\" action=\"CopyAction\"/>"
+ " <separator/>"
+ DEBUG_TOOLBAR_ITEMS \
+ SYNC_MANAGER_TOOL_ITEMS \
+ " </placeholder>"
+ " </toolbar>"
+ "</ui>";
-char *uidefs_str = "<ui>" \
-" <menubar>" \
-" <menu name=\"InformationMenu\" action=\"InformationMenuAction\">" \
-" <menuitem name=\"Report\" action=\"ReportAction\" />" \
-" <menuitem name=\"Copy\" action=\"CopyAction\" />" \
-SYNC_MANAGER_ITEMS
-" <separator/>" \
-" <menuitem name=\"Quit\" action=\"QuitAction\" />" \
-" </menu>" \
-" <menu name=\"ViewMenu\" action=\"ViewMenuAction\">" \
-" <menuitem name=\"SidePane\" action=\"SidePaneAction\"/>" \
-" <menuitem name=\"Toolbar\" action=\"ToolbarAction\"/>" \
-" <separator/>"\
-" <separator name=\"LastSep\"/>" \
-" <menuitem name=\"Refresh\" action=\"RefreshAction\"/>" \
-" </menu>" \
-" <menu name=\"HelpMenu\" action=\"HelpMenuAction\">" \
-" <menuitem name=\"WebPage\" action=\"HomePageAction\"/>" \
-" <menuitem name=\"ReportBug\" action=\"ReportBugAction\"/>" \
-" <separator/>" \
-" <menu name=\"HelpMenuModules\" action=\"HelpMenuModulesAction\">" \
-" <separator name=\"LastSep\"/>" \
-" </menu>" \
-" <menuitem name=\"About\" action=\"AboutAction\"/>" \
-" </menu>" \
-" </menubar>" \
-" <toolbar action=\"MainMenuBar\" action=\"MainMenuBarAction\">" \
-" <placeholder name=\"ToolItems\">" \
-" <toolitem name=\"Refresh\" action=\"RefreshAction\"/>" \
-" <separator/>" \
-" <toolitem name=\"Report\" action=\"ReportAction\"/>" \
-" <toolitem name=\"Copy\" action=\"CopyAction\"/>" \
-" <separator/>" \
-DEBUG_TOOLBAR_ITEMS \
-" </placeholder>" \
-" </toolbar>" \
-"</ui>";
+/*DISABLED
+ " <separator/>"
+ " <menu name=\"HelpMenuModules\" "
+ "action=\"HelpMenuModulesAction\">"
+ " <separator name=\"LastSep\"/>"
+ " </menu>"
+*/
-#endif /* __UIDEFS_H__ */
+#endif /* __UIDEFS_H__ */
diff --git a/includes/usb_util.h b/includes/usb_util.h
new file mode 100644
index 00000000..736a9237
--- /dev/null
+++ b/includes/usb_util.h
@@ -0,0 +1,78 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2017 L. A. F. Pereira <l@tia.mat.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 or later.
+ *
+ * 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 __USB_UTIL_H__
+#define __USB_UTIL_H__
+
+/* this is a linked list */
+typedef struct usbd {
+ int bus, dev;
+ int vendor_id, product_id;
+ char *vendor;
+ char *product;
+ char *manufacturer;
+ char *device;
+ char *serial;
+
+ int dev_class;
+ int dev_subclass;
+ int dev_protocol;
+ char *dev_class_str;
+ char *dev_subclass_str;
+ char *dev_protocol_str;
+
+ char *usb_version;
+ char *device_version; /* bcdDevice */
+
+ int max_curr_ma;
+
+ int speed_mbs;
+
+ vendor_list vendors;
+
+ gboolean user_scan; /* not scanned as root */
+ struct usbi *if_list;
+
+ struct usbd *next;
+} usbd;
+
+/* another linked list */
+typedef struct usbi {
+ int if_number;
+ int if_class;
+ int if_subclass;
+ int if_protocol;
+ char *if_label;
+ char *if_class_str;
+ char *if_subclass_str;
+ char *if_protocol_str;
+ char *driver;
+
+ struct usbi *next;
+} usbi;
+
+usbd *usb_get_device_list();
+int usbd_list_count(usbd *);
+void usbd_list_free(usbd *);
+void usb_lookup_ids_vendor_product_str(gint vendor_id, gint product_id,
+ gchar **vendor_str, gchar **product_str);
+
+usbd *usb_get_device(int bus, int dev, const gchar* sysfspath);
+void usbd_free(usbd *);
+
+#endif
diff --git a/includes/vendor.h b/includes/vendor.h
index 778e2ea3..213adaf8 100644
--- a/includes/vendor.h
+++ b/includes/vendor.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,16 +18,62 @@
#ifndef __VENDOR_H__
#define __VENDOR_H__
+#include "gg_slist.h"
-typedef struct _Vendor Vendor;
-struct _Vendor {
- char *id;
+typedef GSList* vendor_list;
+#define vendor_list_append(vl, v) g_slist_append(vl, (Vendor*)v)
+#define vendor_list_concat(vl, ext) g_slist_concat(vl, ext)
+vendor_list vendor_list_concat_va(int count, vendor_list vl, ...); /* count = -1 for NULL terminated list */
+#define vendor_list_free(vl) g_slist_free(vl)
+#define vendor_list_remove_duplicates(vl) gg_slist_remove_duplicates(vl)
+vendor_list vendor_list_remove_duplicates_deep(vendor_list vl);
+
+enum {
+ VENDOR_MATCH_RULE_WORD_IGNORE_CASE = 0,
+ VENDOR_MATCH_RULE_WORD_MATCH_CASE = 1,
+ VENDOR_MATCH_RULE_EXACT = 2,
+ VENDOR_MATCH_RULE_WORD_PREFIX_IGNORE_CASE = 3,
+ VENDOR_MATCH_RULE_WORD_PREFIX_MATCH_CASE = 4,
+ VENDOR_MATCH_RULE_WORD_SUFFIX_IGNORE_CASE = 5,
+ VENDOR_MATCH_RULE_WORD_SUFFIX_MATCH_CASE = 6,
+ /* "ST" hits for "ST3600A" but not "AST" or "STMicro" or "STEC" */
+ VENDOR_MATCH_RULE_NUM_PREFIX_IGNORE_CASE = 7,
+ VENDOR_MATCH_RULE_NUM_PREFIX_MATCH_CASE = 8,
+};
+
+typedef struct {
+ char *match_string;
+ int match_rule; /* VENDOR_MATCH_RULE_* enum */
char *name;
+ char *name_short;
char *url;
-};
+ char *url_support;
+ char *wikipedia; /* wikipedia page title (assumes en:, otherwise include langauge), usually more informative than the vendor's page */
+ char *note; /* a short stored comment */
+ char *ansi_color;
+
+ unsigned long file_line;
+ unsigned long ms_length;
+ unsigned long weight;
+ gboolean has_parens;
+} Vendor;
+
+void vendor_init(void);
+void vendor_cleanup(void);
+/* end list of strings with NULL */
+const Vendor *vendor_match(const gchar *id_str, ...)
+ __attribute__((sentinel));
+vendor_list vendors_match(const gchar *id_str, ...)
+ __attribute__((sentinel));
+const gchar *vendor_get_name(const gchar *id_str);
+const gchar *vendor_get_shortest_name(const gchar *id_str);
+const gchar *vendor_get_url(const gchar *id_str);
+gchar *vendor_get_link(const gchar *id_str);
+gchar *vendor_get_link_from_vendor(const Vendor *v);
+void vendor_free(Vendor *v);
+
+vendor_list vendors_match_core(const gchar *str, int limit);
-void vendor_init(void);
-const gchar *vendor_get_name(const gchar *id);
-const gchar *vendor_get_url(const gchar *id);
+extern gboolean vendor_die_on_error;
#endif /* __VENDOR_H__ */
diff --git a/includes/x86/processor-platform.h b/includes/x86/processor-platform.h
index a89a831f..0e9a276b 100644
--- a/includes/x86/processor-platform.h
+++ b/includes/x86/processor-platform.h
@@ -1,10 +1,10 @@
/*
* HardInfo - Displays System Information
- * Copyright (C) 2003-2006 Leandro A. F. Pereira <leandro@hardinfo.org>
+ * Copyright (C) 2003-2006 L. A. F. Pereira <l@tia.mat.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.
+ * the Free Software Foundation, version 2 or later.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/includes/x_util.h b/includes/x_util.h
new file mode 100644
index 00000000..4d398c94
--- /dev/null
+++ b/includes/x_util.h
@@ -0,0 +1,104 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2017 L. A. F. Pereira <l@tia.mat.br>
+ * This file
+ * Copyright (C) 2017 Burt P. <pburt0@gmail.com>
+ *
+ * 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 or later.
+ *
+ * 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 __X_UTIL_H__
+#define __X_UTIL_H__
+
+/* wayland information (lives here in x_util for now) */
+typedef struct {
+ char *xdg_session_type;
+ char *display_name;
+} wl_info;
+
+wl_info *get_walyand_info();
+void wl_free(wl_info *);
+
+typedef struct {
+ char *glx_version;
+ int direct_rendering;
+ char *ogl_vendor, *ogl_renderer;
+
+ char *ogl_core_version, *ogl_core_sl_version;
+ char *ogl_version, *ogl_sl_version; /* compat */
+ char *ogles_version, *ogles_sl_version;
+} glx_info;
+
+glx_info *glx_create();
+gboolean fill_glx_info(glx_info *glx);
+void glx_free(glx_info *glx);
+
+typedef struct {
+ int number;
+ int px_width;
+ int px_height;
+ int min_px_width;
+ int min_px_height;
+ int max_px_width;
+ int max_px_height;
+} x_screen;
+
+typedef struct {
+ /* I guess it is kindof like gpu? */
+ int reserved; /* TODO: */
+} x_provider;
+
+typedef struct {
+ char name[64];
+ int connected;
+ int screen; /* index into xrr_info.screens[], look there for x screen number */
+ int px_width;
+ int px_height;
+ int px_offset_x;
+ int px_offset_y;
+ int mm_width;
+ int mm_height;
+} x_output;
+
+typedef struct {
+ int reserved; /* TODO: */
+} x_monitor;
+
+typedef struct {
+ char *display_name;
+ int screen_count;
+ x_screen *screens;
+ int provider_count;
+ x_provider *providers;
+ int output_count;
+ x_output *outputs;
+ int monitor_count;
+ x_monitor *monitors;
+} xrr_info;
+
+xrr_info *xrr_create();
+gboolean fill_xrr_info(xrr_info *xrr);
+void xrr_free(xrr_info *xrr);
+
+typedef struct {
+ int nox; /* complete failure to find X */
+ char *display_name, *vendor, *version, *release_number;
+ xrr_info *xrr;
+ glx_info *glx;
+} xinfo;
+
+xinfo *xinfo_get_info();
+void xinfo_free(xinfo *xi);
+
+#endif
diff --git a/includes/xmlrpc-client.h b/includes/xmlrpc-client.h
deleted file mode 100644
index 32fad08c..00000000
--- a/includes/xmlrpc-client.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * XMLRPC Client
- * HardInfo - Displays System Information
- * Copyright (C) 2003-2009 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 __XMLRPC_CLIENT_H__
-#define __XMLRPC_CLIENT_H__
-
-#include "config.h"
-
-#ifdef HAS_LIBSOUP
-#include <libsoup/soup.h>
-
-void xmlrpc_init(void);
-gint xmlrpc_get_integer(gchar *addr,
- gchar *method,
- const gchar *param_types,
- ...);
-gchar *xmlrpc_get_string(gchar *addr,
- gchar *method,
- const gchar *param_types,
- ...);
-GValueArray *xmlrpc_get_array(gchar *addr,
- gchar *method,
- const gchar *param_types,
- ...);
-#endif /* HAS_LIBSOUP */
-
-#endif /* __XMLRPC_CLIENT_H__ */