|
|
1.1 root 1: /* prdump.c - prdump, prdumph, prdumpa */
2:
3: #include <conf.h>
4: #include <kernel.h>
5: #include <proc.h>
6: #include <q.h>
7:
8: /*------------------------------------------------------------------------
9: * prdump -- dump the active process table entries
10: *------------------------------------------------------------------------
11: */
12: prdump()
13: {
14: pxdump(0);
15: }
16:
17: /*------------------------------------------------------------------------
18: * prdumph -- dump the active process table entries
19: *------------------------------------------------------------------------
20: */
21: prdumph()
22: {
23: pxdump(0);
24: }
25:
26: /*------------------------------------------------------------------------
27: * prdumpa -- dump the process table entries printing all entries
28: *------------------------------------------------------------------------
29: */
30: prdumpa()
31: {
32: pxdump(1);
33: }
34: static pxdump(all)
35: int all;
36: {
37: int i, j, ctr;
38: PStype ps;
39: struct pentry *pptr;
40: disable(ps);
41: kprintf("\nProctab at loc %o\ncurrpid is %d\n", proctab, currpid);
42: for ( i=0 ; i<NPROC ; i++ ) {
43: pptr = &proctab[i];
44: if (all!=0 || pptr->pstate!=PRFREE) {
45: kprintf("\nProcess %d: ",i);
46: kprintf("state=%o,name=",pptr->pstate);
47: for ( j=0 ; j<PNMLEN ; j++ ) {
48: if (pptr->pname[j]=='\0') break;
49: kprintf("%c",pptr->pname[j]);
50: }
51: kprintf(",prio=%d,sem=%d,stk:base=%o,limit=%o,",
52: pptr->pprio,pptr->psem,pptr->pbase,pptr->plimit);
53: kprintf("MAGIC=%o\n", *((int *)pptr->pbase) );
54: for ( j=0 ; j<PNREGS ; j++ )
55: kprintf("(R%c)%o ","01234567S"[j],pptr->pregs[j]);
56: kprintf("\n");
57: }
58: }
59: kprintf("rdyhead:");
60: ctr = NPROC;
61: for ( i = q[rdyhead].qnext; i < NPROC ; i=q[i].qnext) {
62: kprintf("%d ",i);
63: if (q[i].qnext == i) {
64: kprintf("\nLOOP in ready list");
65: break;
66: }
67: if (--ctr < 0) {
68: kprintf("\nCorrupt ready list -- too long");
69: break;
70: }
71: }
72: kprintf("\n");
73: restore(ps);
74: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.