/* TimerExtras.c LCS March 31, 1983 5:10 PM, 32 bit counters, and more of them LCS August 15, 1983 6:48 PM, added Histogram */ /* Client code for watchdog timer and for accumulating statistics for context time. */ struct Long { int low, high; }; int ctxListTime[84]; int ctxStartTime; int wdtFlagA, wdtFlagB, wdtFlagC; InitCtxStats() { Zero(ctxListTime, 84); }; CtxListStart() { ctxStartTime = ReadTmr(); }; CtxListEnd() { Histogram(ReadTmr() - ctxStartTime, ctxListTime); }; PokeWDTA() { wdtFlagA = 1234; }; PokeWDTB() { if (wdtFlagA == 1234) { wdtFlagA = 0; wdtFlagB = 5678; }; }; PokeWDTC() { if (wdtFlagB == 5678) { wdtFlagB = 0; wdtFlagC = 91011; }; }; PokeWDTD() { if (wdtFlagC == 91011) { wdtFlagC = 0; CheckWDT(); }; }; Histogram(diff, histo) int diff; int *histo; { if (diff < 0) { DoubleIncrement(&histo[82], 1); return; }; if (diff >= 40) DoubleIncrement(&histo[80], 1); else DoubleIncrement(&histo[diff << 1], 1); };