* Licensed under GPLv2, see file LICENSE in this source tree.
*/
-//applet:IF_POWERTOP(APPLET(powertop, _BB_DIR_BIN, _BB_SUID_DROP))
+//applet:IF_POWERTOP(APPLET(powertop, BB_DIR_USR_SBIN, BB_SUID_DROP))
//kbuild:lib-$(CONFIG_POWERTOP) += powertop.o
char buf[128];
char line[15 + 3 + 128];
int n;
- ullong totalticks;
FILE *fp;
buf[0] = '\0';
- totalticks = 0;
+ n = 0;
fp = NULL;
if (!G.cant_enable_timer_stats)
fp = fopen_for_read("/proc/timer_stats");
const char *count, *process, *func;
char *p;
int idx;
+ unsigned cnt;
count = skip_whitespace(buf);
- if (strcmp(strchrnul(count, ' '), " total events") == 0)
- break;
p = strchr(count, ',');
if (!p)
continue;
*p++ = '\0';
+ cnt = bb_strtou(count, NULL, 10);
+ if (strcmp(skip_non_whitespace(count), " total events") == 0) {
+#if ENABLE_FEATURE_POWERTOP_PROCIRQ
+ n = cnt / G.total_cpus;
+ if (n > 0 && n < G.interrupt_0) {
+ sprintf(line, " <interrupt> : %s", "extra timer interrupt");
+ save_line(line, G.interrupt_0 - n);
+ }
+#endif
+ break;
+ }
if (strchr(count, 'D'))
continue; /* deferred */
p = skip_whitespace(p); /* points to pid now */
sprintf(line, "%15.15s : %s", process, func);
//else
// sprintf(line, "%s", process);
- save_line(line, bb_strtoull(count, NULL, 10));
+ save_line(line, cnt);
}
fclose(fp);
}
- n = 0;
-#if ENABLE_FEATURE_POWERTOP_PROCIRQ
- if (strstr(buf, " total events")) {
- n = bb_strtoull(buf, NULL, 10) / G.total_cpus;
- if (n > 0 && n < G.interrupt_0) {
- sprintf(line, " <interrupt> : %s", "extra timer interrupt");
- save_line(line, G.interrupt_0 - n);
- }
- }
-#endif
return n;
}
* Get information about CPU using CPUID opcode.
*/
static void cpuid(unsigned int *eax, unsigned int *ebx, unsigned int *ecx,
- unsigned int *edx)
+ unsigned int *edx)
{
/* EAX value specifies what information to return */
__asm__(
int i, n = 0;
char strbuf6[6];
- strbuf6[5] = '\0';
puts("\nTop causes for wakeups:");
for (i = 0; i < G.lines_cnt; i++) {
if ((G.lines[i].count > 0 /*|| G.lines[i].disk_count > 0*/)
/*char c = ' ';
if (G.lines[i].disk_count)
c = 'D';*/
- smart_ulltoa5(G.lines[i].count, strbuf6, " KMGTPEZY");
+ smart_ulltoa5(G.lines[i].count, strbuf6, " KMGTPEZY")[0] = '\0';
printf(/*" %5.1f%% (%s)%c %s\n"*/
" %5.1f%% (%s) %s\n",
G.lines[i].count * 100.0 / G.lines_cumulative_count,
} else {
bb_putchar('\n');
bb_error_msg("no stats available; run as root or"
- " enable the cpufreq_stats module");
+ " enable the timer_stats module");
}
}