diff options
author | Leandro Pereira <leandro@hardinfo.org> | 2016-07-29 22:44:22 -0300 |
---|---|---|
committer | Leandro Pereira <leandro@hardinfo.org> | 2016-07-30 10:19:14 -0300 |
commit | 00951b7535e210bf5b90c53c85d728b074760123 (patch) | |
tree | 54874a9582d0b215f1c579437ff8ee93bc39daf5 /modules/devices.c | |
parent | e0204714d00fe00ce9fbcd69b67be01af0edfdc9 (diff) |
If reading from /proc/{ioports,iomem,dma} requires root, warn
Diffstat (limited to 'modules/devices.c')
-rw-r--r-- | modules/devices.c | 51 |
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; +} |