Amit Arora | 39f2954 | 2010-09-14 12:03:22 +0530 | [diff] [blame] | 1 | /******************************************************************************* |
Amit Kucheria | c0e17fc | 2011-01-17 09:35:52 +0200 | [diff] [blame^] | 2 | * Copyright (C) 2010, Linaro Limited. |
Amit Arora | 39f2954 | 2010-09-14 12:03:22 +0530 | [diff] [blame] | 3 | * |
| 4 | * This file is part of PowerDebug. |
| 5 | * |
| 6 | * All rights reserved. This program and the accompanying materials |
| 7 | * are made available under the terms of the Eclipse Public License v1.0 |
| 8 | * which accompanies this distribution, and is available at |
| 9 | * http://www.eclipse.org/legal/epl-v10.html |
| 10 | * |
| 11 | * Contributors: |
| 12 | * Amit Arora <amit.arora@linaro.org> (IBM Corporation) |
| 13 | * - initial API and implementation |
| 14 | *******************************************************************************/ |
| 15 | |
Amit Arora | e9e16b0 | 2010-08-03 10:15:20 +0530 | [diff] [blame] | 16 | #include <stdio.h> |
| 17 | #include <stdlib.h> |
| 18 | #include <unistd.h> |
| 19 | #include <string.h> |
| 20 | #include <dirent.h> |
| 21 | #include <getopt.h> |
| 22 | #include <errno.h> |
Amit Arora | 47fd918 | 2010-08-24 13:26:06 +0530 | [diff] [blame] | 23 | #include <ncurses.h> |
Amit Arora | e9e16b0 | 2010-08-03 10:15:20 +0530 | [diff] [blame] | 24 | |
Amit Kucheria | 91b7a6b | 2011-01-12 17:31:13 -0600 | [diff] [blame] | 25 | #define VERSION "0.3" |
Amit Arora | fefe8bf | 2010-08-05 13:31:20 +0530 | [diff] [blame] | 26 | |
Amit Arora | c93e071 | 2010-10-07 13:51:53 +0530 | [diff] [blame] | 27 | #define TOTAL_FEATURE_WINS 3 /* Regulator, Clock and Sensor (for now) */ |
Amit Kucheria | ee851a1 | 2011-01-12 04:57:48 +0530 | [diff] [blame] | 28 | enum {CLOCK, REGULATOR, SENSOR}; |
Amit Arora | a06a730 | 2010-12-02 15:59:37 +0530 | [diff] [blame] | 29 | enum {CLOCK_SELECTED = 1, REFRESH_WINDOW}; |
Amit Arora | e9e16b0 | 2010-08-03 10:15:20 +0530 | [diff] [blame] | 30 | |
Amit Arora | 1755278 | 2010-12-02 12:23:14 +0530 | [diff] [blame] | 31 | extern struct regulator_info *regulators_info; |
Amit Arora | e9e16b0 | 2010-08-03 10:15:20 +0530 | [diff] [blame] | 32 | |
Amit Arora | ed3e565 | 2010-10-27 12:02:53 +0530 | [diff] [blame] | 33 | extern char *win_names[TOTAL_FEATURE_WINS]; |
| 34 | extern int selectedwindow; |
Amit Arora | 728e0c9 | 2010-09-14 12:06:09 +0530 | [diff] [blame] | 35 | |
Amit Arora | e9e16b0 | 2010-08-03 10:15:20 +0530 | [diff] [blame] | 36 | extern int numregulators; |
Amit Arora | 47fd918 | 2010-08-24 13:26:06 +0530 | [diff] [blame] | 37 | extern int dump; |
Amit Arora | 29cb757 | 2010-10-05 17:40:29 +0530 | [diff] [blame] | 38 | extern double ticktime; |
Amit Arora | e9e16b0 | 2010-08-03 10:15:20 +0530 | [diff] [blame] | 39 | |
Amit Arora | fefe8bf | 2010-08-05 13:31:20 +0530 | [diff] [blame] | 40 | extern void version(void); |
Amit Arora | 1755278 | 2010-12-02 12:23:14 +0530 | [diff] [blame] | 41 | |
Amit Arora | e9e16b0 | 2010-08-03 10:15:20 +0530 | [diff] [blame] | 42 | extern void print_regulator_info(int verbose); |
Amit Arora | 1755278 | 2010-12-02 12:23:14 +0530 | [diff] [blame] | 43 | extern void init_regulator_ds(void); |
| 44 | extern void read_regulator_info(void); |
| 45 | extern void print_regulator_info(int verbose); |
| 46 | |
Amit Arora | ac4e865 | 2010-11-09 11:16:53 +0530 | [diff] [blame] | 47 | extern void read_and_dump_clock_info(int verbose); |
Amit Arora | f4fb810 | 2010-11-30 13:55:50 +0530 | [diff] [blame] | 48 | extern void read_and_dump_clock_info_one(char *clk); |
Amit Arora | eb6cba9 | 2010-10-25 16:03:21 +0530 | [diff] [blame] | 49 | extern void read_clock_info(char *clkpath); |
Amit Arora | 6e774cd | 2010-10-28 11:31:24 +0530 | [diff] [blame] | 50 | extern struct clock_info *read_clock_info_recur(char *clkpath, int level, |
| 51 | struct clock_info *parent); |
Amit Arora | ac4e865 | 2010-11-09 11:16:53 +0530 | [diff] [blame] | 52 | extern void dump_clock_info(struct clock_info *clk, int level, int bmp); |
Amit Arora | eb6cba9 | 2010-10-25 16:03:21 +0530 | [diff] [blame] | 53 | extern void insert_children(struct clock_info **parent, struct clock_info *clk); |
Amit Arora | 3bd7916 | 2010-12-01 13:51:42 +0530 | [diff] [blame] | 54 | extern void find_parents_for_clock(char *clkname, int complete); |
Amit Arora | 24ed7d1 | 2010-09-14 12:12:58 +0530 | [diff] [blame] | 55 | extern int read_and_print_clock_info(int verbose, int hrow, int selected); |
Amit Arora | ac4e865 | 2010-11-09 11:16:53 +0530 | [diff] [blame] | 56 | extern void print_clock_info(int verbose, int hrow, int selected); |
Amit Arora | dca56d0 | 2010-08-05 14:57:22 +0530 | [diff] [blame] | 57 | extern void print_string_val(char *name, char *val); |
Amit Arora | 04f9774 | 2010-11-16 11:28:57 +0530 | [diff] [blame] | 58 | extern int init_clock_details(void); |
Amit Arora | ac4e865 | 2010-11-09 11:16:53 +0530 | [diff] [blame] | 59 | extern void print_clock_header(void); |
Amit Arora | ac4e865 | 2010-11-09 11:16:53 +0530 | [diff] [blame] | 60 | extern void print_one_clock(int line, char *str, int bold, int highlight); |
Amit Arora | ed3e565 | 2010-10-27 12:02:53 +0530 | [diff] [blame] | 61 | extern char *debugfs_locate_mpoint(void); |
Amit Arora | 47fd918 | 2010-08-24 13:26:06 +0530 | [diff] [blame] | 62 | |
Amit Arora | 1755278 | 2010-12-02 12:23:14 +0530 | [diff] [blame] | 63 | extern void get_sensor_info(char *path, char *name, char *sensor, int verbose); |
| 64 | extern int read_and_print_sensor_info(int verbose); |
| 65 | extern void print_sensor_header(void); |
| 66 | |
Amit Arora | 47fd918 | 2010-08-24 13:26:06 +0530 | [diff] [blame] | 67 | extern void init_curses(void); |
| 68 | extern void fini_curses(void); |
Amit Arora | c93e071 | 2010-10-07 13:51:53 +0530 | [diff] [blame] | 69 | extern void killall_windows(int all); |
Amit Arora | 47fd918 | 2010-08-24 13:26:06 +0530 | [diff] [blame] | 70 | extern void show_header(void); |
| 71 | extern void create_windows(void); |
Amit Arora | c93e071 | 2010-10-07 13:51:53 +0530 | [diff] [blame] | 72 | extern void create_selectedwindow(void); |
Amit Arora | 47fd918 | 2010-08-24 13:26:06 +0530 | [diff] [blame] | 73 | extern void show_regulator_info(int verbose); |