diff options
| author | Burt P <pburt0@gmail.com> | 2017-07-15 04:07:39 -0500 | 
|---|---|---|
| committer | Leandro Pereira <leandro@hardinfo.org> | 2017-07-19 07:20:40 -0700 | 
| commit | 138f93243f3bae748b4025dfdf53be55292002e0 (patch) | |
| tree | 0f966b12866ffa08a30062cba80122adf266ea97 /modules | |
| parent | 06f694b39e654262b3c32005c4dbfcd14e532ceb (diff) | |
Begin support for device tree
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/devices.c | 17 | ||||
| -rw-r--r-- | modules/devices/devicetree.c | 43 | 
2 files changed, 60 insertions, 0 deletions
| diff --git a/modules/devices.c b/modules/devices.c index 9bed002d..5966b07a 100644 --- a/modules/devices.c +++ b/modules/devices.c @@ -51,6 +51,7 @@ gchar *callback_usb();  gchar *callback_dmi();  gchar *callback_spd();  #endif +gchar *callback_dtree();  gchar *callback_device_resources();  void scan_processors(gboolean reload); @@ -66,6 +67,7 @@ void scan_usb(gboolean reload);  void scan_dmi(gboolean reload);  void scan_spd(gboolean reload);  #endif +void scan_dtree(gboolean reload);  void scan_device_resources(gboolean reload);  gboolean root_required_for_resources(void); @@ -82,6 +84,7 @@ enum {      ENTRY_SENSORS,      ENTRY_INPUT,      ENTRY_STORAGE, +    ENTRY_DTREE,      ENTRY_DMI,      ENTRY_SPD,      ENTRY_RESOURCES @@ -100,6 +103,8 @@ static ModuleEntry entries[] = {  #if defined(ARCH_x86) || defined(ARCH_x86_64)      [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}, +#else +    [ENTRY_DTREE] = {N_("Device Tree"), "devices.png", callback_dtree, scan_dtree, MODULE_FLAG_NONE},  #endif	/* x86 or x86_64 */      [ENTRY_RESOURCES] = {N_("Resources"), "resources.png", callback_device_resources, scan_device_resources, MODULE_FLAG_NONE},      {NULL} @@ -377,6 +382,13 @@ void scan_spd(gboolean reload)  }  #endif +void scan_dtree(gboolean reload) +{ +    SCAN_START(); +    __scan_dtree(); +    SCAN_END(); +} +  void scan_processors(gboolean reload)  {      SCAN_START(); @@ -462,6 +474,11 @@ gchar *callback_spd()  }  #endif +gchar *callback_dtree() +{ +    return g_strdup(dtree_info); +} +  gchar *callback_memory()  {      return g_strdup_printf("[Memory]\n" diff --git a/modules/devices/devicetree.c b/modules/devices/devicetree.c new file mode 100644 index 00000000..77b2e359 --- /dev/null +++ b/modules/devices/devicetree.c @@ -0,0 +1,43 @@ +/* + *    HardInfo - Displays System Information + *    Copyright (C) 2003-2007 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 + */ +/* + * Device Tree support + */ +#include <unistd.h> +#include <sys/types.h> +#include "devices.h" + +gchar *dtree_info = NULL; + +static void add_to_moreinfo(const char *group, const char *key, char *value) +{ +    char *new_key = g_strconcat("DTREE:", group, ":", key, NULL); +    moreinfo_add_with_prefix("DEV", new_key, g_strdup(g_strstrip(value))); +} + +void __scan_dtree() +{ +    char *model = NULL; +    g_file_get_contents("/proc/device-tree/model", &model, NULL, NULL); + +    dtree_info = g_strdup_printf( +            "[%s]\n" +            "%s=%s\n", +            _("Device Tree"), +            _("Model"), model); +} | 
