The less we have define for pm blocks the easier is to add more pm blocks.

Signed-off-by: Daniel Lezcano <daniel.lezc...@linaro.org>
---
 display.c    |   24 +++++++++++++++---------
 display.h    |    2 ++
 powerdebug.h |    4 ----
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/display.c b/display.c
index 5fad059..5fd14c7 100644
--- a/display.c
+++ b/display.c
@@ -21,8 +21,6 @@
 #include "regulator.h"
 #include "display.h"
 
-#define TOTAL_FEATURE_WINS 3  /* Regulator, Clock and Sensor (for now) */
-
 #define print(w, x, y, fmt, args...) do { mvwprintw(w, y, x, fmt, ##args); } 
while (0)
 
 enum { PT_COLOR_DEFAULT = 1,
@@ -63,10 +61,11 @@ struct windata {
        int cursor;
 };
 
+/* Warning this is linked with the enum { CLOCK, REGULATOR, ... } */
 struct windata windata[] = {
-       { .name = "Clocks"     },
-       { .name = "Regulators" },
-       { .name = "Sensors"    },
+       [CLOCK]     = { .name = "Clocks"     },
+       [REGULATOR] = { .name = "Regulators" },
+       [SENSOR]    = { .name = "Sensors"    },
 };
 
 static void display_fini(void)
@@ -78,6 +77,7 @@ static int show_header_footer(int win)
 {
        int i;
        int curr_pointer = 0;
+       size_t array_size = sizeof(windata) / sizeof(windata[0]);
 
        wattrset(header_win, COLOR_PAIR(PT_COLOR_HEADER_BAR));
        wbkgd(header_win, COLOR_PAIR(PT_COLOR_HEADER_BAR));
@@ -86,7 +86,7 @@ static int show_header_footer(int win)
        print(header_win, curr_pointer, 0, "PowerDebug %s", VERSION);
        curr_pointer += 20;
 
-       for (i = 0; i < TOTAL_FEATURE_WINS; i++) {
+       for (i = 0; i < array_size; i++) {
                if (win == i)
                        wattron(header_win, A_REVERSE);
                else
@@ -216,7 +216,9 @@ void print_sensor_header(void)
 
 int display_register(int win, struct display_ops *ops)
 {
-       if (win < 0 || win >= TOTAL_FEATURE_WINS)
+       size_t array_size = sizeof(windata) / sizeof(windata[0]);
+
+       if (win < 0 || win >= array_size)
                return -1;
 
        windata[win].ops = ops;
@@ -242,17 +244,21 @@ int display_select(void)
 
 int display_next_panel(void)
 {
+       size_t array_size = sizeof(windata) / sizeof(windata[0]);
+
        current_win++;
-       current_win %= TOTAL_FEATURE_WINS;
+       current_win %= array_size;
 
        return current_win;
 }
 
 int display_prev_panel(void)
 {
+       size_t array_size = sizeof(windata) / sizeof(windata[0]);
+
        current_win--;
        if (current_win < 0)
-               current_win = TOTAL_FEATURE_WINS - 1;
+               current_win = array_size - 1;
 
        return current_win;
 }
diff --git a/display.h b/display.h
index ebd501a..f354195 100644
--- a/display.h
+++ b/display.h
@@ -13,6 +13,8 @@
  *       - initial API and implementation
  
*******************************************************************************/
 
+enum { CLOCK, REGULATOR, SENSOR };
+
 struct display_ops {
        int (*display)(void);
        int (*select)(void);
diff --git a/powerdebug.h b/powerdebug.h
index fb066ce..73e3581 100644
--- a/powerdebug.h
+++ b/powerdebug.h
@@ -15,8 +15,4 @@
 
 #define VERSION "0.4.1"
 
-enum { CLOCK, REGULATOR, SENSOR };
-
-extern void find_parents_for_clock(char *clkname, int complete);
-
 
-- 
1.7.1


_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to