]> granicus.if.org Git - procps-ng/commitdiff
fix 4 GB wrap-around in top
authoralbert <>
Sat, 6 Sep 2003 05:11:04 +0000 (05:11 +0000)
committeralbert <>
Sat, 6 Sep 2003 05:11:04 +0000 (05:11 +0000)
NEWS
ps/ps.1
top.c
top.h
w.1

diff --git a/NEWS b/NEWS
index d364938a808e90e9a2db6ef87f2af29f88611eec..bbd9738c21114b90ed2c6c513ba4a83d83e7188f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
 procps-3.1.11 --> procps-3.1.12
 
+top: fixed 4 GB wrap-around
+ps: comes with tests
+man page: /var/run/utmp, not /etc/utmp           #206583
 required flags moved out of CFLAGS               #205429
 RPM generation handles /lib64
 WCHAN skips leading '.'
diff --git a/ps/ps.1 b/ps/ps.1
index 789a88670cb91a916d0054edcdd0cbcb76b19c67..b22288a6fce5b846d3d23bb2286a42430fd959c6 100644 (file)
--- a/ps/ps.1
+++ b/ps/ps.1
@@ -240,8 +240,7 @@ will be destroyed by init(8) if the parent process exits.
 PROCESS FLAGS
 
 FORKNOEXEC   1    forked but didn't exec
-SUPERPRIV    2    used super-user privileges
-DUMPCORE     4    dumped core
+SUPERPRIV    4    used super-user privileges
 
 
 PROCESS STATE CODES
diff --git a/top.c b/top.c
index 3e6fe2a8cd676d2ab1121c455567cc8ce698d355..3a48937b5e7bfc9c5a4d09ad50562e7ccc36b715 100644 (file)
--- a/top.c
+++ b/top.c
@@ -71,7 +71,8 @@ static char  Rc_name [OURPATHSZ];
 static RCF_t Rc = DEF_RCFILE;
 
         /* The run-time acquired page size */
-static int Page_size;
+static unsigned Page_size;
+static unsigned page_to_kb_shift;
 
         /* SMP, Irix/Solaris mode, Linux 2.5.xx support */
 static int  Cpu_tot,
@@ -1567,6 +1568,11 @@ static void before (char *me)
 
       /* get virtual page size -- nearing huge! */
    Page_size = getpagesize();
+   i = Page_size;
+   while(i>1024){
+     i >>= 1;
+     page_to_kb_shift++;
+   }
 }
 
 
@@ -2874,6 +2880,8 @@ static proc_t **summary_show (void)
 }
 
 
+#define PAGES_2K(n)  (unsigned)( (n) << page_to_kb_shift )
+
         /*
          * Display information for a single task row. */
 static void task_show (const WIN_t *q, const proc_t *p)
diff --git a/top.h b/top.h
index 4c8bde912a57f5bee958fa9b06c4fef9880be6d8..90f1a7ea7e3c2f4be102029b331d611295ba7480 100644 (file)
--- a/top.h
+++ b/top.h
         /* Yield table size as 'int' */
 #define MAXTBL(t)  (int)(sizeof(t) / sizeof(t[0]))
 
-        /* Convert some proc stuff into vaules we can actually use */
-#define BYTES_2K(n)  (unsigned)( (n) >> 10 )
-#define PAGES_2B(n)  (unsigned)( (n) * Page_size )
-#define PAGES_2K(n)  BYTES_2K(PAGES_2B(n))
-
         /* Used as return arguments in *some* of the sort callbacks */
 #define SORT_lt  ( Frame_srtflg > 0 ?  1 : -1 )
 #define SORT_gt  ( Frame_srtflg > 0 ? -1 :  1 )
diff --git a/w.1 b/w.1
index d8a32c01d11663f8df6edadc7f283c740ff8f1f8..d57a9b587b2d2ea20a7f77dfadb965bb2dadb5a5 100644 (file)
--- a/w.1
+++ b/w.1
@@ -60,7 +60,7 @@ Show information about the specified user only.
 
 .SH FILES
 .TP
-.I /etc/utmp
+.I /var/run/utmp
 information about who is currently logged on
 .TP
 .I /proc