blob: 4799118ab6d094bf792e34eefd13b557b8539d33 [file] [log] [blame]
/*******************************************************************************
* Copyright (C) 2010, Linaro
* Copyright (C) 2010, IBM Corporation
*
* This file is part of PowerDebug.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Amit Arora <amit.arora@linaro.org> (IBM Corporation)
* - initial API and implementation
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <dirent.h>
#include <getopt.h>
#include <errno.h>
#include <ncurses.h>
#define VERSION "1.0"
#define VALUE_MAX 16
#define TOTAL_FEATURE_WINS 3 /* Regulator, Clock and Sensor (for now) */
enum {REGULATOR, CLOCK, SENSOR};
struct regulator_info {
char name[NAME_MAX];
char state[VALUE_MAX];
char status[VALUE_MAX];
char type[VALUE_MAX];
char opmode[VALUE_MAX];
int microvolts;
int min_microvolts;
int max_microvolts;
int microamps;
int min_microamps;
int max_microamps;
int requested_microamps;
int num_users;
} *regulators_info;
extern char *win_names[TOTAL_FEATURE_WINS];
extern int selectedwindow;
extern int numregulators;
extern int dump;
extern double ticktime;
extern void usage(char **argv);
extern void version(void);
extern void print_regulator_info(int verbose);
extern void read_and_dump_clock_info(int verbose);
extern void read_and_dump_clock_info_one(char *clk);
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);
extern void get_sensor_info(char *path, char *name, char *sensor, int verbose);
extern void print_string_val(char *name, char *val);
extern int init_clock_details(void);
extern void print_clock_header(void);
extern void print_sensor_header(void);
extern void print_one_clock(int line, char *str, int bold, int highlight);
extern char *debugfs_locate_mpoint(void);
extern void init_curses(void);
extern void fini_curses(void);
extern void killall_windows(int all);
extern void show_header(void);
extern void create_windows(void);
extern void create_selectedwindow(void);
extern void show_regulator_info(int verbose);