vsz and rss are unsigned longs (ulong ~= width of void* =>
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.
This commit is contained in:
parent
8bdba4d011
commit
fc1e9951c6
@ -891,7 +891,7 @@ typedef struct procps_status_t {
|
|||||||
USE_SELINUX(char *context;)
|
USE_SELINUX(char *context;)
|
||||||
/* Everything below must contain no ptrs to malloc'ed data:
|
/* Everything below must contain no ptrs to malloc'ed data:
|
||||||
* it is memset(0) for each process in procps_scan() */
|
* 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 long stime, utime;
|
||||||
unsigned pid;
|
unsigned pid;
|
||||||
unsigned ppid;
|
unsigned ppid;
|
||||||
|
@ -48,7 +48,7 @@ static void func_pgid(char *buf, int size, const procps_status_t *ps)
|
|||||||
sprintf(buf, "%*u", size, ps->pgid);
|
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];
|
char buf5[5];
|
||||||
smart_ulltoa5( ((unsigned long long)u) << 10, buf5);
|
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)
|
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)
|
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)
|
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 ",
|
len = printf("%5u %-8s %s ",
|
||||||
p->pid, user, p->state);
|
p->pid, user, p->state);
|
||||||
else
|
else
|
||||||
len = printf("%5u %-8s %6u %s ",
|
len = printf("%5u %-8s %6lu %s ",
|
||||||
p->pid, user, p->vsz, p->state);
|
p->pid, user, p->vsz, p->state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user