aboutsummaryrefslogtreecommitdiff
path: root/modules/devices.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/devices.c')
-rw-r--r--modules/devices.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/modules/devices.c b/modules/devices.c
index f4a716a1..02597e65 100644
--- a/modules/devices.c
+++ b/modules/devices.c
@@ -51,6 +51,7 @@ gchar *callback_input();
gchar *callback_usb();
gchar *callback_dmi();
gchar *callback_dmi_mem();
+gchar *callback_firmware();
gchar *callback_dtree();
gchar *callback_device_resources();
@@ -65,6 +66,7 @@ void scan_input(gboolean reload);
void scan_usb(gboolean reload);
void scan_dmi(gboolean reload);
void scan_dmi_mem(gboolean reload);
+void scan_firmware(gboolean reload);
void scan_dtree(gboolean reload);
void scan_device_resources(gboolean reload);
@@ -81,6 +83,7 @@ enum {
ENTRY_DMI_MEM,
ENTRY_PCI,
ENTRY_USB,
+ ENTRY_FW,
ENTRY_PRINTERS,
ENTRY_BATTERY,
ENTRY_SENSORS,
@@ -94,6 +97,7 @@ static ModuleEntry entries[] = {
[ENTRY_GPU] = {N_("Graphics Processors"), "devices.png", callback_gpu, scan_gpu, MODULE_FLAG_NONE},
[ENTRY_PCI] = {N_("PCI Devices"), "devices.png", callback_pci, scan_pci, MODULE_FLAG_NONE},
[ENTRY_USB] = {N_("USB Devices"), "usb.png", callback_usb, scan_usb, MODULE_FLAG_NONE},
+ [ENTRY_FW] = {N_("Firmware"), "processor.png", callback_firmware, scan_firmware, MODULE_FLAG_NONE},
[ENTRY_PRINTERS] = {N_("Printers"), "printer.png", callback_printers, scan_printers, MODULE_FLAG_NONE},
[ENTRY_BATTERY] = {N_("Battery"), "battery.png", callback_battery, scan_battery, MODULE_FLAG_NONE},
[ENTRY_SENSORS] = {N_("Sensors"), "therm.png", callback_sensors, scan_sensors, MODULE_FLAG_NONE},
@@ -125,6 +129,11 @@ gchar *memory_devices_get_info();
gboolean memory_devices_hinote(const char **msg);
gchar *memory_devices_info = NULL;
+/* in firmware.c */
+gchar *firmware_get_info();
+gboolean firmware_hinote(const char **msg);
+gchar *firmware_info = NULL;
+
#include <vendor.h>
extern gchar *gpu_summary;
@@ -542,6 +551,15 @@ void scan_dmi_mem(gboolean reload)
SCAN_END();
}
+void scan_firmware(gboolean reload)
+{
+ SCAN_START();
+ if (firmware_info)
+ g_free(firmware_info);
+ firmware_info = firmware_get_info();
+ SCAN_END();
+}
+
void scan_dtree(gboolean reload)
{
SCAN_START();
@@ -638,6 +656,11 @@ gchar *callback_dmi_mem()
return g_strdup(memory_devices_info);
}
+gchar *callback_firmware()
+{
+ return g_strdup(firmware_info);
+}
+
gchar *callback_dtree()
{
return g_strdup_printf("%s"
@@ -811,5 +834,11 @@ const gchar *hi_note_func(gint entry)
return msg;
}
}
+ else if (entry == ENTRY_FW) {
+ const char *msg;
+ if (firmware_hinote(&msg)) {
+ return msg;
+ }
+ }
return NULL;
}