diff options
author | Daniel Lezcano <daniel.lezcano@linaro.org> | 2011-06-08 23:30:00 +0200 |
---|---|---|
committer | Daniel Lezcano <daniel.lezcano@free.fr> | 2011-06-08 23:30:00 +0200 |
commit | 28b53cd37bfbf02e99b6c9d5c47b9c120a5d84a4 (patch) | |
tree | 7994690f88d4edc5ce7afab483a2aedfefbb7344 | |
parent | c45662bcfc89bd7f7ebaa9d325ce92ec83d39882 (diff) | |
download | powerdebugV2-28b53cd37bfbf02e99b6c9d5c47b9c120a5d84a4.tar.gz |
reorganize code to prevent forward declaration
That will cleanup the powerdebug header because these functions are
used in the clock code only.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-rw-r--r-- | clocks.c | 142 | ||||
-rw-r--r-- | powerdebug.h | 4 |
2 files changed, 71 insertions, 75 deletions
@@ -372,63 +372,28 @@ void print_clock_info(int verbose, int hrow, int selected) clock_line_no = 0; } -void read_and_dump_clock_info_one(char *clk, bool dump) -{ - printf("\nParents for \"%s\" Clock :\n\n", clk); - read_clock_info(clk_dir_path); - dump_all_parents(clk, dump); - printf("\n\n"); -} - -void read_and_dump_clock_info(int verbose) -{ - (void)verbose; - printf("\nClock Tree :\n"); - printf("**********\n"); - read_clock_info(clk_dir_path); - dump_clock_info(clocks_info, 1, 1); - printf("\n\n"); -} - -void read_clock_info(char *clkpath) +static void insert_children(struct clock_info **parent, struct clock_info *clk) { - DIR *dir; - struct dirent *item; - char filename[NAME_MAX], clockname[NAME_MAX]; - struct clock_info *child; - struct clock_info *cur; - - dir = opendir(clkpath); - if (!dir) - return; - - clocks_info = (struct clock_info *)malloc(sizeof(struct clock_info)); - memset(clocks_info, 0, sizeof(clocks_info)); - strcpy(clocks_info->name, "/"); - clocks_info->level = 0; - - while ((item = readdir(dir))) { - /* skip hidden dirs except ".." */ - if (item->d_name[0] == '.') - continue; - - strcpy(clockname, item->d_name); - sprintf(filename, "%s/%s", clkpath, item->d_name); - cur = (struct clock_info *)malloc(sizeof(struct clock_info)); - memset(cur, 0, sizeof(struct clock_info)); - strcpy(cur->name, clockname); - cur->parent = clocks_info; - cur->num_children = 0; - cur->expanded = 0; - cur->level = 1; - insert_children(&clocks_info, cur); - child = read_clock_info_recur(filename, 2, cur); - } - closedir(dir); + if (!(*parent)->num_children || (*parent)->children == NULL) { + (*parent)->children = (struct clock_info **) + malloc(sizeof(struct clock_info *)*2); + (*parent)->num_children = 0; + } else + (*parent)->children = (struct clock_info **) + realloc((*parent)->children, + sizeof(struct clock_info *) * + ((*parent)->num_children + 2)); + if ((*parent)->num_children > 0) + (*parent)->children[(*parent)->num_children - 1]->last_child + = 0; + clk->last_child = 1; + (*parent)->children[(*parent)->num_children] = clk; + (*parent)->children[(*parent)->num_children + 1] = NULL; + (*parent)->num_children++; } -struct clock_info *read_clock_info_recur(char *clkpath, int level, - struct clock_info *parent) +static struct clock_info *read_clock_info_recur(char *clkpath, int level, + struct clock_info *parent) { int ret = 0; DIR *dir; @@ -486,24 +451,49 @@ struct clock_info *read_clock_info_recur(char *clkpath, int level, return cur; } -void insert_children(struct clock_info **parent, struct clock_info *clk) +void read_clock_info(char *clkpath) { - if (!(*parent)->num_children || (*parent)->children == NULL) { - (*parent)->children = (struct clock_info **) - malloc(sizeof(struct clock_info *)*2); - (*parent)->num_children = 0; - } else - (*parent)->children = (struct clock_info **) - realloc((*parent)->children, - sizeof(struct clock_info *) * - ((*parent)->num_children + 2)); - if ((*parent)->num_children > 0) - (*parent)->children[(*parent)->num_children - 1]->last_child - = 0; - clk->last_child = 1; - (*parent)->children[(*parent)->num_children] = clk; - (*parent)->children[(*parent)->num_children + 1] = NULL; - (*parent)->num_children++; + DIR *dir; + struct dirent *item; + char filename[NAME_MAX], clockname[NAME_MAX]; + struct clock_info *child; + struct clock_info *cur; + + dir = opendir(clkpath); + if (!dir) + return; + + clocks_info = (struct clock_info *)malloc(sizeof(struct clock_info)); + memset(clocks_info, 0, sizeof(clocks_info)); + strcpy(clocks_info->name, "/"); + clocks_info->level = 0; + + while ((item = readdir(dir))) { + /* skip hidden dirs except ".." */ + if (item->d_name[0] == '.') + continue; + + strcpy(clockname, item->d_name); + sprintf(filename, "%s/%s", clkpath, item->d_name); + cur = (struct clock_info *)malloc(sizeof(struct clock_info)); + memset(cur, 0, sizeof(struct clock_info)); + strcpy(cur->name, clockname); + cur->parent = clocks_info; + cur->num_children = 0; + cur->expanded = 0; + cur->level = 1; + insert_children(&clocks_info, cur); + child = read_clock_info_recur(filename, 2, cur); + } + closedir(dir); +} + +void read_and_dump_clock_info_one(char *clk, bool dump) +{ + printf("\nParents for \"%s\" Clock :\n\n", clk); + read_clock_info(clk_dir_path); + dump_all_parents(clk, dump); + printf("\n\n"); } void dump_clock_info(struct clock_info *clk, int level, int bmp) @@ -560,3 +550,13 @@ void dump_clock_info(struct clock_info *clk, int level, int bmp) } } } + +void read_and_dump_clock_info(int verbose) +{ + (void)verbose; + printf("\nClock Tree :\n"); + printf("**********\n"); + read_clock_info(clk_dir_path); + dump_clock_info(clocks_info, 1, 1); + printf("\n\n"); +} diff --git a/powerdebug.h b/powerdebug.h index a122b7f..1018998 100644 --- a/powerdebug.h +++ b/powerdebug.h @@ -31,10 +31,6 @@ enum {CLOCK_SELECTED = 1, REFRESH_WINDOW}; extern void read_and_dump_clock_info(int verbose); extern void read_and_dump_clock_info_one(char *clk, bool dump); extern void read_clock_info(char *clkpath); -extern struct clock_info *read_clock_info_recur(char *clkpath, int level, - struct clock_info *parent); -extern void dump_clock_info(struct clock_info *clk, int level, int bmp); -extern void insert_children(struct clock_info **parent, struct clock_info *clk); extern void find_parents_for_clock(char *clkname, int complete); extern int read_and_print_clock_info(int verbose, int hrow, int selected); extern void print_clock_info(int verbose, int hrow, int selected); |