aboutsummaryrefslogtreecommitdiff
path: root/modules/devices.c
diff options
context:
space:
mode:
authorLeandro Pereira <leandro@hardinfo.org>2016-07-29 22:44:22 -0300
committerLeandro Pereira <leandro@hardinfo.org>2016-07-30 10:19:14 -0300
commit00951b7535e210bf5b90c53c85d728b074760123 (patch)
tree54874a9582d0b215f1c579437ff8ee93bc39daf5 /modules/devices.c
parente0204714d00fe00ce9fbcd69b67be01af0edfdc9 (diff)
If reading from /proc/{ioports,iomem,dma} requires root, warn
Diffstat (limited to 'modules/devices.c')
-rw-r--r--modules/devices.c51
1 files changed, 39 insertions, 12 deletions
diff --git a/modules/devices.c b/modules/devices.c
index 82484a23..c57fd433 100644
--- a/modules/devices.c
+++ b/modules/devices.c
@@ -68,23 +68,40 @@ void scan_spd(gboolean reload);
#endif
void scan_device_resources(gboolean reload);
+gboolean root_required_for_resources(void);
+
gchar *hi_more_info(gchar *entry);
+enum {
+ ENTRY_PROCESSOR,
+ ENTRY_MEMORY,
+ ENTRY_PCI,
+ ENTRY_USB,
+ ENTRY_PRINTERS,
+ ENTRY_BATTERY,
+ ENTRY_SENSORS,
+ ENTRY_INPUT,
+ ENTRY_STORAGE,
+ ENTRY_DMI,
+ ENTRY_SPD,
+ ENTRY_RESOURCES
+};
+
static ModuleEntry entries[] = {
- {N_("Processor"), "processor.png", callback_processors, scan_processors, MODULE_FLAG_NONE},
- {N_("Memory"), "memory.png", callback_memory, scan_memory, MODULE_FLAG_NONE},
- {N_("PCI Devices"), "devices.png", callback_pci, scan_pci, MODULE_FLAG_NONE},
- {N_("USB Devices"), "usb.png", callback_usb, scan_usb, MODULE_FLAG_NONE},
- {N_("Printers"), "printer.png", callback_printers, scan_printers, MODULE_FLAG_NONE},
- {N_("Battery"), "battery.png", callback_battery, scan_battery, MODULE_FLAG_NONE},
- {N_("Sensors"), "therm.png", callback_sensors, scan_sensors, MODULE_FLAG_NONE},
- {N_("Input Devices"), "inputdevices.png", callback_input, scan_input, MODULE_FLAG_NONE},
- {N_("Storage"), "hdd.png", callback_storage, scan_storage, MODULE_FLAG_NONE},
+ [ENTRY_PROCESSOR] = {N_("Processor"), "processor.png", callback_processors, scan_processors, MODULE_FLAG_NONE},
+ [ENTRY_MEMORY] = {N_("Memory"), "memory.png", callback_memory, scan_memory, 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_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},
+ [ENTRY_INPUT] = {N_("Input Devices"), "inputdevices.png", callback_input, scan_input, MODULE_FLAG_NONE},
+ [ENTRY_STORAGE] = {N_("Storage"), "hdd.png", callback_storage, scan_storage, MODULE_FLAG_NONE},
#if defined(ARCH_x86) || defined(ARCH_x86_64)
- {N_("DMI"), "computer.png", callback_dmi, scan_dmi, MODULE_FLAG_NONE},
- {N_("Memory SPD"), "memory.png", callback_spd, scan_spd, MODULE_FLAG_NONE},
+ [ENTRY_DMI] = {N_("DMI"), "computer.png", callback_dmi, scan_dmi, MODULE_FLAG_NONE},
+ [ENTRY_SPD] = {N_("Memory SPD"), "memory.png", callback_spd, scan_spd, MODULE_FLAG_NONE},
#endif /* x86 or x86_64 */
- {N_("Resources"), "resources.png", callback_device_resources, scan_device_resources, MODULE_FLAG_NONE},
+ [ENTRY_RESOURCES] = {N_("Resources"), "resources.png", callback_device_resources, scan_device_resources, MODULE_FLAG_NONE},
{NULL}
};
@@ -475,3 +492,13 @@ gchar **hi_module_get_dependencies(void)
return deps;
}
+
+const gchar *hi_note_func(gint entry)
+{
+ if (entry == ENTRY_RESOURCES) {
+ if (root_required_for_resources()) {
+ return "Resource information requires superuser privileges";
+ }
+ }
+ return NULL;
+}