* examine and print certain things about processes
#include "/usr/sys/param.h"
#include "/usr/sys/proc.h"
#include "/usr/sys/tty.h"
#include "/usr/sys/user.h"
while (*ap
) switch (*ap
++) {
printf("cannot change to /dev\n");
setup(&nl
[1], "_swapdev");
nlist(argc
>2? argv
[2]:"/unix", nl
);
if ((mem
= open(coref
, 0)) < 0) {
seek(mem
, nl
[1].value
, 0);
read(mem
, &nl
[1].value
, 2);
seek(mem
, nl
[0].value
, 0);
read(mem
, proc
, sizeof proc
);
printf("TTY F S UID PID PRI ADDR SZ WCHAN COMMAND\n"); else
printf("TTY PID COMMAND\n");
for (i
=0; i
<NPROC
; i
++) {
if(devt
[c
] == proc
[i
].p_ttyp
) {
seek(mem
, proc
[i
].p_ttyp
, 0);
read(mem
, &tty
, sizeof tty
);
if(devl
[c
] == tty
.t_dev
) {
devt
[c
] = proc
[i
].p_ttyp
;
puid
= proc
[i
].p_uid
& 0377;
if (uid
!= puid
&& aflg
==0)
printf("%3o %c%4d", proc
[i
].p_flag
,
"0SWRIZT"[proc
[i
].p_stat
], puid
);
printf("%6l", proc
[i
].p_pid
);
printf("%4d%5o%4d", proc
[i
].p_pri
, proc
[i
].p_addr
,
printf("%7o", proc
[i
].p_wchan
); else
register struct { int dir_ino
; char dir_n
[14]; } *p
;
printf("cannot open /dev\n");
printf("no swap device\n");
for(p
= dbuf
; p
< dbuf
+512; p
++) {
if(stat(p
->dir_n
, sbuf
) < 0)
devl
[c
] = sbuf
->iaddr
[0];
if(stat(p
->dir_n
, sbuf
) < 0)
if((sbuf
->iflags
& 060000) != 060000)
if(sbuf
->iaddr
[0] == nl
[1].value
)
swap
= open(p
->dir_n
, 0);
if (proc
[i
].p_flag
&SLOAD
) {
laddr
=+ proc
[i
].p_size
- 8;
if (read(mf
, stbuf
, 512) != 512)
for (ip
= &stbuf
[256]; ip
> &stbuf
[0];) {
for (cp1
= cp
; cp1
< &stbuf
[256]; cp1
++) {
else if (c
< ' ' || c
> 0176) {
printf(lflg
?" %.16s":" %.64s", cp
);