ethr-wake: can use ether_hostton on uclibc >= 0.9.30
[oweals/busybox.git] / procps / top.c
index 8c58b909d7cfd93b16b09cd7884eeedb42b14188..62b9c1e1b4c717c2d182b528def310e94421fe2d 100644 (file)
@@ -50,7 +50,9 @@ typedef struct top_status_t {
 } top_status_t;
 
 typedef struct jiffy_counts_t {
-       unsigned long long usr,nic,sys,idle,iowait,irq,softirq,steal;
+       /* Linux 2.4.x has only first four */
+       unsigned long long usr, nic, sys, idle;
+       unsigned long long iowait, irq, softirq, steal;
        unsigned long long total;
        unsigned long long busy;
 } jiffy_counts_t;
@@ -179,15 +181,12 @@ static int mult_lvl_cmp(void* a, void* b)
        return 0;
 }
 
-/* NOINLINE so that complier doesn't unfold the call
- * causing multiple copies of the arithmatic instrns
- */
 static NOINLINE int read_cpu_jiffy(FILE *fp, jiffy_counts_t *p_jif)
 {
 #if !ENABLE_FEATURE_TOP_SMP_CPU
-       static const char fmt[] = "cpu %lld %lld %lld %lld %lld %lld %lld %lld";
+       static const char fmt[] = "cpu %llu %llu %llu %llu %llu %llu %llu %llu";
 #else
-       static const char fmt[] = "cp%*s %lld %lld %lld %lld %lld %lld %lld %lld";
+       static const char fmt[] = "cp%*s %llu %llu %llu %llu %llu %llu %llu %llu";
 #endif
        int ret;
 
@@ -197,7 +196,7 @@ static NOINLINE int read_cpu_jiffy(FILE *fp, jiffy_counts_t *p_jif)
                        &p_jif->usr, &p_jif->nic, &p_jif->sys, &p_jif->idle,
                        &p_jif->iowait, &p_jif->irq, &p_jif->softirq,
                        &p_jif->steal);
-       if (ret > 4) {
+       if (ret >= 4) {
                p_jif->total = p_jif->usr + p_jif->nic + p_jif->sys + p_jif->idle
                        + p_jif->iowait + p_jif->irq + p_jif->softirq + p_jif->steal;
                /* procps 2.x does not count iowait as busy time */
@@ -872,9 +871,7 @@ enum {
                | PSSCAN_UTIME
                | PSSCAN_STATE
                | PSSCAN_COMM
-#if ENABLE_FEATURE_TOP_SMP_PROCESS
                | PSSCAN_CPU
-#endif
                | PSSCAN_UIDGID,
        TOPMEM_MASK = 0
                | PSSCAN_PID
@@ -890,7 +887,7 @@ int top_main(int argc UNUSED_PARAM, char **argv)
        int lines_rem;
        unsigned interval;
        char *str_interval, *str_iterations;
-       SKIP_FEATURE_TOPMEM(const) unsigned scan_mask = TOP_MASK;
+       IF_NOT_FEATURE_TOPMEM(const) unsigned scan_mask = TOP_MASK;
 #if ENABLE_FEATURE_USE_TERMIOS
        struct termios new_settings;
        struct pollfd pfd[1];
@@ -1055,11 +1052,11 @@ int top_main(int argc UNUSED_PARAM, char **argv)
                        if (c == 'q')
                                break;
                        if (c == 'n') {
-                               USE_FEATURE_TOPMEM(scan_mask = TOP_MASK;)
+                               IF_FEATURE_TOPMEM(scan_mask = TOP_MASK;)
                                sort_function[0] = pid_sort;
                        }
                        if (c == 'm') {
-                               USE_FEATURE_TOPMEM(scan_mask = TOP_MASK;)
+                               IF_FEATURE_TOPMEM(scan_mask = TOP_MASK;)
                                sort_function[0] = mem_sort;
 #if ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE
                                sort_function[1] = pcpu_sort;
@@ -1068,13 +1065,13 @@ int top_main(int argc UNUSED_PARAM, char **argv)
                        }
 #if ENABLE_FEATURE_TOP_CPU_USAGE_PERCENTAGE
                        if (c == 'p') {
-                               USE_FEATURE_TOPMEM(scan_mask = TOP_MASK;)
+                               IF_FEATURE_TOPMEM(scan_mask = TOP_MASK;)
                                sort_function[0] = pcpu_sort;
                                sort_function[1] = mem_sort;
                                sort_function[2] = time_sort;
                        }
                        if (c == 't') {
-                               USE_FEATURE_TOPMEM(scan_mask = TOP_MASK;)
+                               IF_FEATURE_TOPMEM(scan_mask = TOP_MASK;)
                                sort_function[0] = time_sort;
                                sort_function[1] = mem_sort;
                                sort_function[2] = pcpu_sort;