vsz and rss are unsigned longs (ulong ~= width of void* =>
authorDenis Vlasenko <vda.linux@googlemail.com>
Wed, 29 Aug 2007 18:23:36 +0000 (18:23 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Wed, 29 Aug 2007 18:23:36 +0000 (18:23 -0000)
suitable for expressing total RAM in system). We account
for "32 bit in 64 bit" systems by storing kbytes, not bytes
there. Should allow for up to ~2000 Gb RAM on 32 bits.

include/libbb.h
procps/ps.c

index 678c5610947896a3c588136985fc75b62abd19c3..6c6b4863c8985b5f847e4530054884897cca918d 100644 (file)
@@ -891,7 +891,7 @@ typedef struct procps_status_t {
        USE_SELINUX(char *context;)
        /* Everything below must contain no ptrs to malloc'ed data:
         * it is memset(0) for each process in procps_scan() */
-       unsigned vsz, rss; /* we round it to kbytes */
+       unsigned long vsz, rss; /* we round it to kbytes */
        unsigned long stime, utime;
        unsigned pid;
        unsigned ppid;
index 805fe061556a149276c991091279afc1bed47cc7..f5c801d205501e5d6cbad7cf7c0b48cbb6db81d6 100644 (file)
@@ -48,7 +48,7 @@ static void func_pgid(char *buf, int size, const procps_status_t *ps)
        sprintf(buf, "%*u", size, ps->pgid);
 }
 
-static void put_u(char *buf, int size, unsigned u)
+static void put_lu(char *buf, int size, unsigned long u)
 {
        char buf5[5];
        smart_ulltoa5( ((unsigned long long)u) << 10, buf5);
@@ -57,12 +57,12 @@ static void put_u(char *buf, int size, unsigned u)
 
 static void func_vsz(char *buf, int size, const procps_status_t *ps)
 {
-       put_u(buf, size, ps->vsz);
+       put_lu(buf, size, ps->vsz);
 }
 
 static void func_rss(char *buf, int size, const procps_status_t *ps)
 {
-       put_u(buf, size, ps->rss);
+       put_lu(buf, size, ps->rss);
 }
 
 static void func_tty(char *buf, int size, const procps_status_t *ps)
@@ -405,7 +405,7 @@ int ps_main(int argc, char **argv)
                                len = printf("%5u %-8s        %s ",
                                        p->pid, user, p->state);
                        else
-                               len = printf("%5u %-8s %6u %s ",
+                               len = printf("%5u %-8s %6lu %s ",
                                        p->pid, user, p->vsz, p->state);
                }