-- File: PerfOps.mesa Edited by
-- Sandman on September 4, 1980 10:36 AM
-- Karlton on June 24, 1980 6:35 PM
DIRECTORY
FormSW USING [EnumeratedNotifyProcType, ItemHandle, NotifyProcType],
MachineDefs USING [GFHandle],
PerfPrivate USING [
HistBase, HistClass, HistIndex, HistType, LegAddClass, LegIndex, LegTab,
LegTrackClass, NodeID, NodeIndex, NodeTab, Number, PCR, ReadWrite];
PerfOps: DEFINITIONS =
BEGIN OPEN PerfPrivate;
GetHistBase: PROCEDURE [ReadWrite] RETURNS [histBase: HistBase];
GetLegTable: PROCEDURE [ReadWrite] RETURNS [leg: POINTER TO LegTab];
GetNodeTable: PROCEDURE [ReadWrite] RETURNS [node: POINTER TO NodeTab];
GetPCR: PROCEDURE [ReadWrite] RETURNS [pCR: PCR];
GetConfigAndModuleName: PROCEDURE [
frame: MachineDefs.GFHandle, config, module: STRING];
FindIndex: PROCEDURE [NodeID, POINTER TO NodeTab, PCR] RETURNS [NodeIndex];
NoContext: SIGNAL;
Error: TYPE = {
notOn, goofUp, syntaxError, badLeg, badChar, noLegRoom, badNode, version,
noContext, badProcess};
PostError: PROCEDURE [error: Error];
PerfMessage: TYPE = {
getLeg, successor, none, all, totalTime, elapsedTime, totalOverhead, nBreaks,
avgOverhead, percentInMont, tooSmall, processes, process, legs, aborted};
PutMessage: PROCEDURE [message: PerfMessage];
TurnOn: PROCEDURE;
TurnOff: PROCEDURE RETURNS [BOOLEAN];
ClearTables: PROCEDURE;
CollectNodes: PROCEDURE;
ZeroCounts: PROCEDURE;
DeleteLeg: PROCEDURE [index: LegIndex];
SetProcess: PROCEDURE;
AddLeg: PROCEDURE [from, to: NodeIndex];
NodeIDToBpNum: PROCEDURE [id: NodeID] RETURNS [CARDINAL];
BpNumToNodeID: PROCEDURE [num: CARDINAL] RETURNS [id: NodeID];
FindNodeIndex: PROCEDURE [
id: NodeID, nodeTable: POINTER TO NodeTab, nNodes: CARDINAL]
RETURNS [CARDINAL];
PrintTables: PROCEDURE;
PrintNodeTable: PROCEDURE;
PrintLegTable: PROCEDURE;
WriteNodeTableHeader: PROCEDURE;
WriteLegTableHeader: PROCEDURE;
DeleteHist: PROCEDURE [HistIndex];
AddHistogram, DeleteHistogram, PrintHistogram: PROCEDURE;
InitSession: PROCEDURE;
ParamIndex: TYPE = {
mon, collect, init, zero, condition, printtables, printnodes, printlegs,
addleg, from, to, delete, leg, mode, add, track, setProcess, process,
histcommands, addhist, delhist, printhist, histType, histClass, histNode,
histLeg, buckets, scale, base};
Params: TYPE = DESCRIPTOR FOR ARRAY ParamIndex OF FormSW.ItemHandle;
ParamNotify: FormSW.NotifyProcType;
ParamEnumNotify: FormSW.EnumeratedNotifyProcType;
GetFromNode: PROCEDURE RETURNS [NodeIndex];
GetToNode: PROCEDURE RETURNS [NodeIndex];
GetDeleteLeg: PROCEDURE RETURNS [LegIndex];
GetHistNode: PROCEDURE RETURNS [NodeIndex];
GetHistLeg: PROCEDURE RETURNS [LegIndex];
GetBuckets: PROCEDURE RETURNS [CARDINAL];
GetScale: PROCEDURE RETURNS [CARDINAL];
GetBase: PROCEDURE RETURNS [Number];
monitorOn: BOOLEAN;
addMode: LegAddClass;
trackMode: LegTrackClass;
process: STRING;
histType: HistType;
histClass: HistClass;
END..