SCCS-vsn: usr.bin/systat/pigs.c 1.3
SCCS-vsn: usr.bin/systat/swap.c 1.4
-static char sccsid[] = "@(#)pigs.c 1.2 (Lucasfilm) %G%";
+static char sccsid[] = "@(#)pigs.c 1.3 (Lucasfilm) %G%";
#endif
#include "systat.h"
#endif
#include "systat.h"
if (procp == NULL) {
procp = getw(nlst[X_PROC].n_value);
nproc = getw(nlst[X_NPROC].n_value);
if (procp == NULL) {
procp = getw(nlst[X_PROC].n_value);
nproc = getw(nlst[X_NPROC].n_value);
- kprocp = (struct proc *)malloc(sizeof (*kprocp) * nproc);
+ if (kprocp == NULL)
+ kprocp = (struct proc *)calloc(nproc, sizeof (struct proc));
if (usrpt != NULL)
return;
usrpt = (struct pte *)nlst[X_USRPT].n_value;
Usrptma = (struct pte *)nlst[X_USRPTMAP].n_value;
if (usrpt != NULL)
return;
usrpt = (struct pte *)nlst[X_USRPT].n_value;
Usrptma = (struct pte *)nlst[X_USRPTMAP].n_value;
- pt = (struct p_times *)malloc(nproc * sizeof (struct p_times));
+ if (pt == NULL)
+ pt = (struct p_times *)calloc(nproc, sizeof (struct p_times));
register float time;
register struct proc *pp;
register float time;
register struct proc *pp;
+ if (kprocp == NULL) {
+ kprocp = (struct proc *)calloc(nproc, sizeof (struct proc));
+ if (kprocp == NULL)
+ return;
+ }
+ if (pt == NULL) {
+ pt = (struct p_times *)calloc(nproc, sizeof (struct p_times));
+ if (pt == NULL)
+ return;
+ }
prt = pt;
lseek(kmem, procp, L_SET);
read(kmem, kprocp, sizeof (struct proc) * nproc);
prt = pt;
lseek(kmem, procp, L_SET);
read(kmem, kprocp, sizeof (struct proc) * nproc);
-static char *sccsid = "@(#)swap.c 1.3 (Lucasfilm) %G%";
+static char *sccsid = "@(#)swap.c 1.4 (Lucasfilm) %G%";
#endif
#include "systat.h"
#endif
#include "systat.h"
klseek(kmem, nlst[X_SWDEVT].n_value, L_SET);
read(kmem, swdevt, nswdev * sizeof (struct swdevt));
ntext = getw(nlst[X_NTEXT].n_value);
klseek(kmem, nlst[X_SWDEVT].n_value, L_SET);
read(kmem, swdevt, nswdev * sizeof (struct swdevt));
ntext = getw(nlst[X_NTEXT].n_value);
- xtext = (struct text *)calloc(ntext, sizeof (struct text));
textaddr = getw(nlst[X_TEXT].n_value);
}
if (procp == NULL) {
procp = getw(nlst[X_PROC].n_value);
nproc = getw(nlst[X_NPROC].n_value);
textaddr = getw(nlst[X_TEXT].n_value);
}
if (procp == NULL) {
procp = getw(nlst[X_PROC].n_value);
nproc = getw(nlst[X_NPROC].n_value);
- kprocp = (struct proc *)malloc(sizeof (*kprocp) * nproc);
+ if (xtext == NULL)
+ xtext = (struct text *)calloc(ntext, sizeof (struct text));
+ if (kprocp == NULL)
+ kprocp = (struct proc *)calloc(nproc, sizeof (struct proc));
if (usrpt != NULL)
return;
usrpt = (struct pte *)nlst[X_USRPT].n_value;
Usrptma = (struct pte *)nlst[X_USRPTMAP].n_value;
if (usrpt != NULL)
return;
usrpt = (struct pte *)nlst[X_USRPT].n_value;
Usrptma = (struct pte *)nlst[X_USRPTMAP].n_value;
- pt = (struct p_times *)malloc(nproc * sizeof (struct p_times));
+ if (pt == NULL)
+ pt = (struct p_times *)malloc(nproc * sizeof (struct p_times));
+ if (kprocp == NULL) {
+ kprocp = (struct proc *)malloc(sizeof (*kprocp) * nproc);
+ if (kprocp == NULL)
+ return;
+ }
lseek(kmem, procp, L_SET);
lseek(kmem, procp, L_SET);
- read(kmem, kprocp, sizeof (struct proc) * nproc);
+ if (read(kmem, kprocp, sizeof (struct proc) * nproc) !=
+ sizeof (struct proc) * nproc) {
+ error("couldn't read proc table");
+ return;
+ }
+ if (xtext == NULL) {
+ xtext = (struct text *)calloc(ntext, sizeof (struct text));
+ if (xtext == NULL)
+ return;
+ }
lseek(kmem, textaddr, L_SET);
lseek(kmem, textaddr, L_SET);
- read(kmem, xtext, ntext * sizeof (struct text));
+ if (read(kmem, xtext, ntext * sizeof (struct text)) !=
+ sizeof (struct text) * ntext)
+ error("couldn't read text table");
register int ts;
register swblk_t *dp;
register int ts;
register swblk_t *dp;
return;
for (xp = xtext; xp < &xtext[ntext]; xp++) {
if (xp->x_iptr == NULL)
return;
for (xp = xtext; xp < &xtext[ntext]; xp++) {
if (xp->x_iptr == NULL)
[dmtoindex(ctod(ctopt(xp->x_size)))]++;
}
row = swapdisplay(4, dmtext, 'X');
[dmtoindex(ctod(ctopt(xp->x_size)))]++;
}
row = swapdisplay(4, dmtext, 'X');
+ if (kprocp == NULL)
+ return;
for (i = 0, pp = kprocp; i < nproc; i++, pp++) {
if (pp->p_stat == 0 || pp->p_stat == SZOMB)
continue;
if (pp->p_flag & SSYS)
continue;
for (i = 0, pp = kprocp; i < nproc; i++, pp++) {
if (pp->p_stat == 0 || pp->p_stat == SZOMB)
continue;
if (pp->p_flag & SSYS)
continue;
- if (getu(pp) == 0) {
- error("showswap: getu failed on pid %d", pp->p_pid);
vsacct(&u.u_dmap);
vsacct(&u.u_smap);
#ifdef notdef
vsacct(&u.u_dmap);
vsacct(&u.u_smap);
#ifdef notdef