ps fix
It removes the no more existing marcos (XPIPE XPOPEN XDOPEN XLOCK XSELECT) and replaces them with the new ones from servers/vfs/const.h No more dependency on NR_TASKS macro.
This commit is contained in:
parent
f236d1dd9c
commit
ab6fc64984
@ -151,7 +151,8 @@ struct pstat { /* structure filled by pstat() */
|
|||||||
int ps_pgrp; /* process group id */
|
int ps_pgrp; /* process group id */
|
||||||
int ps_flags; /* kernel flags */
|
int ps_flags; /* kernel flags */
|
||||||
int ps_mflags; /* mm flags */
|
int ps_mflags; /* mm flags */
|
||||||
int ps_ftask; /* (possibly pseudo) fs suspend task */
|
int ps_ftask; /* fs suspend task */
|
||||||
|
int ps_blocked_on; /* what is the process blocked on */
|
||||||
char ps_state; /* process state */
|
char ps_state; /* process state */
|
||||||
vir_bytes ps_tsize; /* text size (in bytes) */
|
vir_bytes ps_tsize; /* text size (in bytes) */
|
||||||
vir_bytes ps_dsize; /* data size (in bytes) */
|
vir_bytes ps_dsize; /* data size (in bytes) */
|
||||||
@ -245,23 +246,29 @@ struct pstat *bufp;
|
|||||||
else if (bufp->ps_mflags & SIGSUSPENDED)
|
else if (bufp->ps_mflags & SIGSUSPENDED)
|
||||||
blkstr = "sigsusp";
|
blkstr = "sigsusp";
|
||||||
} else if (bufp->ps_recv == FS_PROC_NR) {
|
} else if (bufp->ps_recv == FS_PROC_NR) {
|
||||||
#if 0 /* these flags no longer exist, should find this out another way */
|
switch(bufp->ps_blocked_on) {
|
||||||
if (-bufp->ps_ftask == XPIPE)
|
case FP_BLOCKED_ON_PIPE:
|
||||||
blkstr = "pipe";
|
blkstr = "pipe";
|
||||||
else if (-bufp->ps_ftask == XPOPEN)
|
break;
|
||||||
|
case FP_BLOCKED_ON_POPEN:
|
||||||
blkstr = "popen";
|
blkstr = "popen";
|
||||||
else if (-bufp->ps_ftask == XDOPEN)
|
break;
|
||||||
|
case FP_BLOCKED_ON_DOPEN:
|
||||||
blkstr = "dopen";
|
blkstr = "dopen";
|
||||||
else if (-bufp->ps_ftask == XLOCK)
|
break;
|
||||||
|
case FP_BLOCKED_ON_LOCK:
|
||||||
blkstr = "flock";
|
blkstr = "flock";
|
||||||
else if(-bufp->ps_ftask == XSELECT)
|
break;
|
||||||
|
case FP_BLOCKED_ON_SELECT:
|
||||||
blkstr = "select";
|
blkstr = "select";
|
||||||
else
|
break;
|
||||||
#endif
|
case FP_BLOCKED_ON_OTHER:
|
||||||
if(-bufp->ps_ftask >= 0)
|
blkstr = taskname(bufp->ps_ftask);
|
||||||
blkstr = taskname(-bufp->ps_ftask);
|
break;
|
||||||
else
|
case FP_BLOCKED_ON_NONE:
|
||||||
blkstr = "??";
|
blkstr = "??";
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
(void) sprintf(recvstr, "(%s) %s", blkstr, task);
|
(void) sprintf(recvstr, "(%s) %s", blkstr, task);
|
||||||
return recvstr;
|
return recvstr;
|
||||||
@ -498,9 +505,11 @@ int endpoints;
|
|||||||
if (p_nr >= low_user) {
|
if (p_nr >= low_user) {
|
||||||
bufp->ps_dev = ps_fproc[p_nr].fp_tty;
|
bufp->ps_dev = ps_fproc[p_nr].fp_tty;
|
||||||
bufp->ps_ftask = ps_fproc[p_nr].fp_task;
|
bufp->ps_ftask = ps_fproc[p_nr].fp_task;
|
||||||
|
bufp->ps_blocked_on = ps_fproc[p_nr].fp_blocked_on;
|
||||||
} else {
|
} else {
|
||||||
bufp->ps_dev = 0;
|
bufp->ps_dev = 0;
|
||||||
bufp->ps_ftask = 0;
|
bufp->ps_ftask = 0;
|
||||||
|
bufp->ps_blocked_on = FP_BLOCKED_ON_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p_nr >= 0) {
|
if (p_nr >= 0) {
|
||||||
@ -529,11 +538,7 @@ int endpoints;
|
|||||||
else if (ps_proc[p_ki].p_rts_flags == 0)
|
else if (ps_proc[p_ki].p_rts_flags == 0)
|
||||||
bufp->ps_state = R_STATE; /* in run-queue */
|
bufp->ps_state = R_STATE; /* in run-queue */
|
||||||
else if (ps_mproc[p_nr].mp_flags & (WAITING | PAUSED | SIGSUSPENDED) ||
|
else if (ps_mproc[p_nr].mp_flags & (WAITING | PAUSED | SIGSUSPENDED) ||
|
||||||
#if 0 /* this field and this flag no longer exist, get this info elsewhere */
|
fp_is_blocked(&ps_fproc[p_nr]))
|
||||||
ps_fproc[p_nr].fp_suspended == SUSPENDED)
|
|
||||||
#else
|
|
||||||
0)
|
|
||||||
#endif
|
|
||||||
bufp->ps_state = S_STATE; /* sleeping */
|
bufp->ps_state = S_STATE; /* sleeping */
|
||||||
else
|
else
|
||||||
bufp->ps_state = W_STATE; /* a short wait */
|
bufp->ps_state = W_STATE; /* a short wait */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user