| diff -purN busybox.ori/include/libbb.h busybox/include/libbb.h |
| --- busybox.ori/include/libbb.h 2004-03-21 14:39:35.000000000 +0100 |
| +++ busybox-1.0/include/libbb.h 2004-03-21 14:45:35.000000000 +0100 |
| @@ -447,6 +447,7 @@ typedef struct { |
| int ppid; |
| #ifdef FEATURE_CPU_USAGE_PERCENTAGE |
| unsigned pcpu; |
| + unsigned pscpu; |
| unsigned long stime, utime; |
| #endif |
| char *cmd; |
| diff -purN busybox.ori/procps/top.c busybox/procps/top.c |
| --- busybox.ori/procps/top.c 2004-03-21 14:40:09.000000000 +0100 |
| +++ busybox-1.0/procps/top.c 2004-03-21 17:27:52.961951448 +0100 |
| @@ -289,6 +289,15 @@ static void do_stats(void) |
| i = 999; |
| cur->pcpu = i; |
| |
| + /* |
| + * Calculate percent of system time from cpu time |
| + */ |
| + if (systime != 0) { |
| + cur->pscpu = 100 * total_time / systime; |
| + } else { |
| + cur->pscpu = 0; |
| + } |
| + |
| } |
| |
| /* |
| @@ -393,7 +402,7 @@ static void display_status(int count, in |
| |
| #ifdef FEATURE_CPU_USAGE_PERCENTAGE |
| /* what info of the processes is shown */ |
| - printf("\n\e[7m PID USER STATUS RSS PPID %%CPU %%MEM COMMAND\e[0m\n"); |
| + printf("\n\e[7m PID USER STATUS RSS PPID %%CPU %%SCPU %%MEM COMMAND\e[0m\n"); |
| #else |
| printf("\n\e[7m PID USER STATUS RSS PPID %%MEM COMMAND\e[0m\n"); |
| #endif |
| @@ -410,9 +419,9 @@ static void display_status(int count, in |
| else |
| sprintf(rss_str_buf, "%7ld", s->rss); |
| #ifdef FEATURE_CPU_USAGE_PERCENTAGE |
| - printf("%5d %-8s %s %s %5d %2d.%d %2u.%u ", |
| + printf("%5d %-8s %s %s %5d %2d.%d %2d.%d %2u.%u ", |
| s->pid, s->user, s->state, rss_str_buf, s->ppid, |
| - s->pcpu/10, s->pcpu%10, pmem/10, pmem%10); |
| + s->pcpu/10, s->pcpu%10,s->pscpu/10, s->pscpu%10, pmem/10, pmem%10); |
| #else |
| printf("%5d %-8s %s %s %5d %2u.%u ", |
| s->pid, s->user, s->state, rss_str_buf, s->ppid, |