<<>> <> <> <> <> <> <> DIRECTORY BasicTime USING[GMT], CirioNubAccess USING[Handle, RemoteAddress], CirioTypes USING[BitAddr, CompilerContext, ModuleScope, Node], IO USING[STREAM], LoadStateAccess USING[LoadedModuleInfo, LoadStateHandle], MobAccess USING[MobCookie], ObjectFiles USING[FileSegmentPC], MobObjectFiles USING[JointMobParsedInfo], PFSNames USING [PATH], Rope USING[ROPE], SystemInterface USING[CirioFile, FileSet]; NewRMTW: CEDAR DEFINITIONS = BEGIN OPEN MA: MobAccess, MOF: MobObjectFiles, LSA: LoadStateAccess; PATH: TYPE ~ PFSNames.PATH; CirioFile: TYPE = SystemInterface.CirioFile; CC: TYPE = CirioTypes.CompilerContext; <> <<>> <> <<>> CedarModuleSet: TYPE = REF CedarModuleSetBody; CedarModuleSetBody: TYPE; CreateCedarModuleSet: PROC[fileSet: SystemInterface.FileSet, remoteServer: Rope.ROPE _ NIL] RETURNS[CedarModuleSet]; ResetSearchPaths: PROC[modules: CedarModuleSet, searchPaths: LIST OF PATH, flushTime: BasicTime.GMT]; FlushUnknownFileCache: PROC[modules: CedarModuleSet, flushTime: BasicTime.GMT]; LoadedModuleInfo: TYPE = RECORD[ stem: PATH, jmpi: MOF.JointMobParsedInfo, mob: MA.MobCookie, loadedModule: REF LSA.LoadedModuleInfo]; <> GetLoadedModuleInfo: PROC[modules: CedarModuleSet, loadedModule: REF LoadStateAccess.LoadedModuleInfo] RETURNS[REF LoadedModuleInfo]; CedarSourcePosition: TYPE = RECORD[ relativePC: CARD, mesa: CirioFile, mesaPosition: CARD, cFile: CirioFile, cLineNum: CARD, remarks: Rope.ROPE]; GetCedarSourcePosition: PROC[modules: CedarModuleSet, loadedModule: REF LoadStateAccess.LoadedModuleInfo, absPC: CARD] RETURNS[REF CedarSourcePosition]; GetRopesForSourcePosInfo: PROC[info: REF CedarSourcePosition] RETURNS[LIST OF Rope.ROPE]; CedarBreakAddress: TYPE = RECORD[ mesa: CirioFile, mesaPosition: CARD, cFile: CirioFile, cLineNum: CARD, moduleRelativePC: ObjectFiles.FileSegmentPC, correspondingCLineNum: CARD, correspondingMesaPosition: CARD, loadedModule: REF LoadStateAccess.LoadedModuleInfo, absPC: CARD]; <<>> <> GetAbsAddressForBreak: PROC[modules: CedarModuleSet, mesa: CirioFile, loadState: LoadStateAccess.LoadStateHandle, sourcePos: CARD] RETURNS[REF CedarBreakAddress]; GetRopesForCedarBreakAddress: PROC[addr: REF CedarBreakAddress] RETURNS[LIST OF Rope.ROPE]; <> BaToCnra: PROC [nub: CirioNubAccess.Handle, ba: CirioTypes.BitAddr] RETURNS [CirioNubAccess.RemoteAddress]; <> <<>> <> <<>> RemoteMimosaTargetWorld: TYPE = REF RemoteMimosaTargetWorldBody; RemoteMimosaTargetWorldBody: TYPE; CreateRemoteMimosaTargetWorld: PROC[serverName: Rope.ROPE, handle: CirioNubAccess.Handle, cc: CC, cedarModules: CedarModuleSet, lsh: LSA.LoadStateHandle, reports: IO.STREAM, setCTC: BOOL] RETURNS[RemoteMimosaTargetWorld]; <> GetRMTWInfo: PROC [RemoteMimosaTargetWorld] RETURNS [serverName: Rope.ROPE, handle: CirioNubAccess.Handle, cc: CC, cedarModules: CedarModuleSet, lsh: LSA.LoadStateHandle]; GetModuleScope: PROC [RemoteMimosaTargetWorld] RETURNS [CirioTypes.ModuleScope]; FlushUnknownSymbolCache: PROC[rmtw: RemoteMimosaTargetWorld, flushTime: BasicTime.GMT, reports: IO.STREAM]; RawFrameInfo: TYPE = RECORD[ absPC: CARD, framePointer: CARD, stackPointer: CARD]; FrameNodeInfo: TYPE = RECORD[ node: CirioTypes.Node, <> getDiagnosticInfo: PROC[frame: REF FrameNodeInfo] RETURNS[LIST OF Rope.ROPE], data: REF ANY ]; <<>> GetNodeForCedarFrame: PROC[rmtw: RemoteMimosaTargetWorld, loadedModuleInfo: REF LoadedModuleInfo, rawFrameInfo: REF RawFrameInfo] RETURNS[REF FrameNodeInfo]; FlushUnknownTypeCodes: PROC [rmtw: RemoteMimosaTargetWorld]; ShowReportByLevel: PROC [s: IO.STREAM, r: Rope.ROPE, level: ATOM]; END..