1*9c5db199SXin Li /* 2*9c5db199SXin Li * Copyright 2007, Intel Corporation 3*9c5db199SXin Li * 4*9c5db199SXin Li * This file is part of PowerTOP 5*9c5db199SXin Li * 6*9c5db199SXin Li * This program file is free software; you can redistribute it and/or modify it 7*9c5db199SXin Li * under the terms of the GNU General Public License as published by the 8*9c5db199SXin Li * Free Software Foundation; version 2 of the License. 9*9c5db199SXin Li * 10*9c5db199SXin Li * This program is distributed in the hope that it will be useful, but WITHOUT 11*9c5db199SXin Li * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12*9c5db199SXin Li * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13*9c5db199SXin Li * for more details. 14*9c5db199SXin Li * 15*9c5db199SXin Li * You should have received a copy of the GNU General Public License 16*9c5db199SXin Li * along with this program in a file named COPYING; if not, write to the 17*9c5db199SXin Li * Free Software Foundation, Inc., 18*9c5db199SXin Li * 51 Franklin Street, Fifth Floor, 19*9c5db199SXin Li * Boston, MA 02110-1301 USA 20*9c5db199SXin Li * 21*9c5db199SXin Li * Authors: 22*9c5db199SXin Li * Arjan van de Ven <[email protected]> 23*9c5db199SXin Li */ 24*9c5db199SXin Li 25*9c5db199SXin Li 26*9c5db199SXin Li #ifndef __INCLUDE_GUARD_POWERTOP_H_ 27*9c5db199SXin Li #define __INCLUDE_GUARD_POWERTOP_H_ 28*9c5db199SXin Li 29*9c5db199SXin Li #include <libintl.h> 30*9c5db199SXin Li 31*9c5db199SXin Li struct line { 32*9c5db199SXin Li char *string; 33*9c5db199SXin Li int count; 34*9c5db199SXin Li char pid[12]; 35*9c5db199SXin Li }; 36*9c5db199SXin Li 37*9c5db199SXin Li typedef void (suggestion_func)(void); 38*9c5db199SXin Li 39*9c5db199SXin Li extern struct line *lines; 40*9c5db199SXin Li extern int linehead; 41*9c5db199SXin Li extern int linesize; 42*9c5db199SXin Li extern int linectotal; 43*9c5db199SXin Li 44*9c5db199SXin Li extern double displaytime; 45*9c5db199SXin Li 46*9c5db199SXin Li void suggest_process_death(char *process_match, char *process_name, struct line *slines, int linecount, double minwakeups, char *comment, int weight); 47*9c5db199SXin Li void suggest_kernel_config(char *string, int onoff, char *comment, int weight); 48*9c5db199SXin Li void suggest_laptop_mode(void); 49*9c5db199SXin Li void suggest_bluetooth_off(void); 50*9c5db199SXin Li void suggest_nmi_watchdog(void); 51*9c5db199SXin Li void suggest_hpet(void); 52*9c5db199SXin Li void suggest_ac97_powersave(void); 53*9c5db199SXin Li void suggest_wireless_powersave(void); 54*9c5db199SXin Li void suggest_ondemand_governor(void); 55*9c5db199SXin Li void suggest_noatime(void); 56*9c5db199SXin Li void suggest_sata_alpm(void); 57*9c5db199SXin Li void suggest_powersched(void); 58*9c5db199SXin Li void suggest_xrandr_TV_off(void); 59*9c5db199SXin Li void suggest_WOL_off(void); 60*9c5db199SXin Li void suggest_writeback_time(void); 61*9c5db199SXin Li void suggest_usb_autosuspend(void); 62*9c5db199SXin Li void usb_activity_hint(void); 63*9c5db199SXin Li 64*9c5db199SXin Li 65*9c5db199SXin Li 66*9c5db199SXin Li 67*9c5db199SXin Li extern char cstate_lines[12][200]; 68*9c5db199SXin Li extern char cpufreqstrings[6][80]; 69*9c5db199SXin Li 70*9c5db199SXin Li extern int topcstate; 71*9c5db199SXin Li extern int topfreq; 72*9c5db199SXin Li extern int dump; 73*9c5db199SXin Li 74*9c5db199SXin Li extern int showpids; 75*9c5db199SXin Li 76*9c5db199SXin Li extern char status_bar_slots[10][40]; 77*9c5db199SXin Li extern char suggestion_key; 78*9c5db199SXin Li extern suggestion_func *suggestion_activate; 79*9c5db199SXin Li 80*9c5db199SXin Li 81*9c5db199SXin Li /* min definition borrowed from the Linux kernel */ 82*9c5db199SXin Li #define min(x,y) ({ \ 83*9c5db199SXin Li typeof(x) _x = (x); \ 84*9c5db199SXin Li typeof(y) _y = (y); \ 85*9c5db199SXin Li (void) (&_x == &_y); \ 86*9c5db199SXin Li _x < _y ? _x : _y; }) 87*9c5db199SXin Li 88*9c5db199SXin Li 89*9c5db199SXin Li #define _(STRING) gettext(STRING) 90*9c5db199SXin Li 91*9c5db199SXin Li 92*9c5db199SXin Li #define PT_COLOR_DEFAULT 1 93*9c5db199SXin Li #define PT_COLOR_HEADER_BAR 2 94*9c5db199SXin Li #define PT_COLOR_ERROR 3 95*9c5db199SXin Li #define PT_COLOR_RED 4 96*9c5db199SXin Li #define PT_COLOR_YELLOW 5 97*9c5db199SXin Li #define PT_COLOR_GREEN 6 98*9c5db199SXin Li #define PT_COLOR_BRIGHT 7 99*9c5db199SXin Li #define PT_COLOR_BLUE 8 100*9c5db199SXin Li extern int maxwidth; 101*9c5db199SXin Li 102*9c5db199SXin Li void show_title_bar(void); 103*9c5db199SXin Li void setup_windows(void); 104*9c5db199SXin Li void initialize_curses(void); 105*9c5db199SXin Li void show_acpi_power_line(double rate, double cap, double capdelta, time_t time); 106*9c5db199SXin Li void show_pmu_power_line(unsigned sum_voltage_mV, 107*9c5db199SXin Li unsigned sum_charge_mAh, unsigned sum_max_charge_mAh, 108*9c5db199SXin Li int sum_discharge_mA); 109*9c5db199SXin Li void show_cstates(void); 110*9c5db199SXin Li void show_wakeups(double d, double interval, double c0time); 111*9c5db199SXin Li void show_timerstats(int nostats, int ticktime); 112*9c5db199SXin Li void show_suggestion(char *sug); 113*9c5db199SXin Li 114*9c5db199SXin Li void pick_suggestion(void); 115*9c5db199SXin Li void add_suggestion(char *text, int weight, char key, char *keystring, suggestion_func *func); 116*9c5db199SXin Li void reset_suggestions(void); 117*9c5db199SXin Li void print_all_suggestions(void); 118*9c5db199SXin Li void push_line(char *string, int count); 119*9c5db199SXin Li 120*9c5db199SXin Li void do_cpufreq_stats(void); 121*9c5db199SXin Li void count_usb_urbs(void); 122*9c5db199SXin Li 123*9c5db199SXin Li void display_usb_activity(void); 124*9c5db199SXin Li void activate_usb_autosuspend(void); 125*9c5db199SXin Li void print_intel_cstates(void); 126*9c5db199SXin Li 127*9c5db199SXin Li 128*9c5db199SXin Li #endif 129