|
|
1.1 ! root 1: # include "ctlmod.h" ! 2: # include <tree.h> ! 3: # include <sccs.h> ! 4: ! 5: SCCSID(@(#)sysdump.c 8.1 12/31/84) ! 6: ! 7: /* ! 8: ** SYSDUMP -- dump all parameters & state of system. ! 9: ** ! 10: ** This is a process to put in for debugging. ! 11: */ ! 12: ! 13: extern int sysdump(); ! 14: extern int null_fn(); ! 15: extern int dump_cm(); ! 16: ! 17: short tTsysdump[40]; ! 18: ! 19: struct fn_def SysDmpFn = ! 20: { ! 21: "SYSDUMP", ! 22: sysdump, ! 23: dump_cm, ! 24: null_fn, ! 25: NULL, ! 26: 0, ! 27: tTsysdump, ! 28: 40, ! 29: 'Q', ! 30: 0 ! 31: }; ! 32: ! 33: sysdump(pc, pv) ! 34: int pc; ! 35: register PARM pv[]; ! 36: { ! 37: register int i; ! 38: auto char cx; ! 39: ! 40: tTfp(30, 0, "\n\nENTERED SYSDUMP\n\n"); ! 41: ! 42: tTfp(30, 1, "Parameter vector:\n"); ! 43: ! 44: if (tTf(30, 2)) ! 45: prvect(pc, pv); ! 46: ! 47: tTfp(30, 3, "\nMonitor input: \""); ! 48: ! 49: if (tTf(30, 4)) ! 50: { ! 51: while (readmon(&cx, 1) > 0) ! 52: xputchar(cx); ! 53: ! 54: printf("\"\n"); ! 55: } ! 56: ! 57: if (tTf(30, 5)) ! 58: { ! 59: printf("\nQuery tree area:\n"); ! 60: printf("Qmode = %d\tResvar = %d\n", Qt.qt_qmode, Qt.qt_resvar); ! 61: } ! 62: ! 63: if (tTf(30, 6)) ! 64: { ! 65: printf("\nRange table:\n"); ! 66: for (i = 0; i < MAXRANGE; i++) ! 67: { ! 68: if (Qt.qt_rangev[i].rngvdesc != NULL) ! 69: { ! 70: printf("\nVAR %d: ", i); ! 71: printdesc(Qt.qt_rangev[i].rngvdesc); ! 72: } ! 73: } ! 74: printf("\n\n"); ! 75: } ! 76: ! 77: return (0); ! 78: } ! 79: /* ! 80: ** DUMP_CM -- dump control module configuration table. ! 81: */ ! 82: ! 83: /*ARGSUSED*/ ! 84: dump_cm(argc, argv) ! 85: int argc; ! 86: char **argv; ! 87: { ! 88: register int i; ! 89: register state_t *s; ! 90: register proc_t *pr; ! 91: static int reenter; ! 92: ! 93: if (!tTf(30, 0) || reenter++ > 0) ! 94: return; ! 95: ! 96: printf("\n\n\nCONTROL MODULE CONFIGURATION TABLES:\n"); ! 97: ! 98: printf("\nThe states:\n"); ! 99: for (i = 0, s = Cm.cm_state; i < CM_MAXST; i++, s++) ! 100: { ! 101: if (s->st_type == ST_UNDEF) ! 102: continue; ! 103: printf("%3d: stat %3o ", i, s->st_stat); ! 104: switch (s->st_type) ! 105: { ! 106: case ST_LOCAL: ! 107: printf("(loc) func %d next %2d\n", s->st_v.st_loc.st_funcno, ! 108: s->st_v.st_loc.st_next); ! 109: break; ! 110: ! 111: case ST_REMOT: ! 112: printf("(rem) proc %d\n", s->st_v.st_rem.st_proc); ! 113: break; ! 114: ! 115: default: ! 116: printf("bad type %d\n", s->st_type); ! 117: break; ! 118: } ! 119: } ! 120: ! 121: printf("\nThe procs:\n"); ! 122: for (i = 0, pr = Cm.cm_proc; i < CM_MAXPROC; i++, pr++) ! 123: { ! 124: printf("%3d: stat %4o file %2d ninput %2d\n", i, pr->pr_stat, ! 125: pr->pr_file, pr->pr_ninput); ! 126: } ! 127: ! 128: printf("\nInitial input = %d\n", Cm.cm_input); ! 129: ! 130: printf("\n\n\n"); ! 131: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.