diff options
author | Sanjay Singh Rawat <sanjay.rawat@linaro.org> | 2014-05-26 11:35:02 +0530 |
---|---|---|
committer | Sanjay Singh Rawat <sanjay.rawat@linaro.org> | 2014-05-26 11:36:33 +0530 |
commit | 96f6e050107da5d258280b785e5ed410d534a775 (patch) | |
tree | bc7d7ee8c131fbf7b061a0eefb8324e4a77cbcca | |
parent | 1540b3c8a3ddfd0d2d592bfe47eae5024b3b9df3 (diff) | |
download | powerdebug-96f6e050107da5d258280b785e5ed410d534a775.tar.gz |
display error on module window
- Currently errors are displayed on stdout. This patch puts the
error on subscreens also.
- bug 1298171
Signed-off-by: Sanjay Singh Rawat <sanjay.rawat@linaro.org>
-rw-r--r-- | display.c | 9 | ||||
-rw-r--r-- | display.h | 1 | ||||
-rw-r--r-- | gpio.c | 17 | ||||
-rw-r--r-- | regulator.c | 18 | ||||
-rw-r--r-- | sensor.c | 18 |
5 files changed, 60 insertions, 3 deletions
@@ -270,6 +270,15 @@ int display_reset_cursor(int win) return wmove(windata[win].pad, 0, 0); } +void display_message(int win, char *buf) +{ + display_reset_cursor(win); + wattron(windata[win].pad, WA_BOLD); + wprintw(windata[win].pad, "%s\n", buf); + wattroff(windata[win].pad, WA_BOLD); + display_refresh_pad(win); +} + int display_print_line(int win, int line, char *str, int bold, void *data) { int attr = 0; @@ -25,6 +25,7 @@ struct display_ops { extern int display_print_line(int window, int line, char *str, int bold, void *data); +extern void display_message(int window, char *buf); extern int display_refresh_pad(int window); extern int display_reset_cursor(int window); @@ -45,6 +45,7 @@ struct gpio_info { } *gpios_info; static struct tree *gpio_tree = NULL; +static bool gpio_error = false; static struct gpio_info *gpio_alloc(void) { @@ -258,6 +259,11 @@ static int gpio_print_info(struct tree *tree) static int gpio_display(bool refresh) { + if (gpio_error) { + display_message(GPIO, "error: path " SYSFS_GPIO " not found"); + return -2; + } + if (refresh && read_gpio_info(gpio_tree)) return -1; @@ -355,6 +361,15 @@ out: */ int gpio_init(void) { + int ret = 0; + + ret = display_register(GPIO, &gpio_ops); + if (!ret) + printf("error: gpio display register failed"); + + if (access(SYSFS_GPIO, F_OK)) + gpio_error = true; /* set the flag */ + export_gpios(); gpio_tree = tree_load(SYSFS_GPIO, gpio_filter_cb, false); @@ -364,5 +379,5 @@ int gpio_init(void) if (fill_gpio_tree()) return -1; - return display_register(GPIO, &gpio_ops); + return ret; } diff --git a/regulator.c b/regulator.c index 9cd89fd..27d75b6 100644 --- a/regulator.c +++ b/regulator.c @@ -68,6 +68,7 @@ static struct regulator_data regdata[] = { }; static struct tree *reg_tree; +static bool regulator_error = false; static struct regulator_info *regulator_alloc(void) { @@ -220,6 +221,12 @@ static int regulator_print_info(struct tree *tree) static int regulator_display(bool refresh) { + if (regulator_error) { + display_message(REGULATOR, + "error: path " SYSFS_REGULATOR " not found"); + return -2; + } + if (refresh && read_regulator_info(reg_tree)) return -1; @@ -255,6 +262,15 @@ static struct display_ops regulator_ops = { int regulator_init(void) { + int ret = 0; + + ret = display_register(REGULATOR, ®ulator_ops); + if (!ret) + printf("error: regulator display register failed"); + + if (access(SYSFS_REGULATOR, F_OK)) + regulator_error = true; /* set the flag */ + reg_tree = tree_load(SYSFS_REGULATOR, regulator_filter_cb, false); if (!reg_tree) return -1; @@ -262,5 +278,5 @@ int regulator_init(void) if (fill_regulator_tree()) return -1; - return display_register(REGULATOR, ®ulator_ops); + return ret; } @@ -31,6 +31,7 @@ #define SYSFS_SENSOR "/sys/class/hwmon" static struct tree *sensor_tree; +static bool sensor_error = false; struct temp_info { char name[NAME_MAX]; @@ -272,6 +273,12 @@ static int sensor_print_info(struct tree *tree) static int sensor_display(bool refresh) { + if (sensor_error) { + display_message(SENSOR, + "error: path " SYSFS_SENSOR " not found"); + return -2; + } + if (refresh && read_sensor_info(sensor_tree)) return -1; @@ -284,6 +291,15 @@ static struct display_ops sensor_ops = { int sensor_init(void) { + int ret = 0; + + ret = display_register(SENSOR, &sensor_ops); + if (!ret) + printf("error: sensor display register failed"); + + if (access(SYSFS_SENSOR, F_OK)) + sensor_error = true; /* set the flag */ + sensor_tree = tree_load(SYSFS_SENSOR, sensor_filter_cb, false); if (!sensor_tree) return -1; @@ -291,5 +307,5 @@ int sensor_init(void) if (fill_sensor_tree()) return -1; - return display_register(SENSOR, &sensor_ops); + return ret; } |