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.. $ NewRMTW.mesa Sturgis, April 20, 1990 2:43 pm PDT Last tweaked by Mike Spreitzer on May 15, 1991 7:46 am PDT Coolidge, July 29, 1990 1:44 pm PDT Laurie Horton, March 31, 1992 11:21 am PST Philip James, December 26, 1991 11:10 am PST Modules this stuff is implemented in NewRMTWImplC This procedure attempts to find the mob file and construct the mob and jmpi if they have not already been found. If there have been changes in the search paths, subsequent calls may report information that previous calls failed to find. NIL means failure to compute Probably belongs elsewhere: frames this stuff is implemented in NewRMTWImplA reports is only used during the creation. setCTC indicates that cc should be told of the standard types. following permits the debugger to display diagnostic info Κύ•NewlineDelimiter ™Icodešœ ™ šœ#™#K™:K™#K™*K™,—K˜šΟk ˜ Kšœ œœ˜Kšœœ˜,Kšœ œ.˜>Kšœœœ˜Kšœœ$˜9Kšœ œ ˜Kšœ œ˜!Kšœœ˜)Kšœ œœ˜Kšœœœ˜Kšœœ˜*—K˜K˜šΟnœœ œ˜Kš œœœ œœ˜DK˜Kšœœ œ˜Kšœ œ˜,K˜Kšœœ˜&K˜K™™K™)K™Kšœœœ˜.Kšœœ˜K˜Kš žœœ6œœœ˜tK˜Kš žœœ'œœœœ˜eK˜Kšžœœ/œ˜OK˜šœœœ˜ Kšœœ˜ Kšœœ˜Kšœœ ˜Kšœœœ˜(—˜K™ν—Kš žœœ(œ#œœ˜…K˜šœœœ˜#Kšœ œ˜K˜Kšœœ˜K˜Kšœ œ˜Kšœœ˜—K˜Kš žœœ(œ*œœœ˜˜K˜Kšžœœœœœœœ˜YK˜šœœœ˜!K˜Kšœœ˜K˜Kšœ œ˜Kšœ,˜,Kšœœ˜Kšœœ˜ Kšœœ"˜3Kšœœ˜ —™K™—Kš žœœbœœœ˜’K˜Kšžœœœœœœœ˜[—K˜K˜™K˜Kšžœœ6œ ˜kK˜—™K™K™)K™Kšœœœ˜@Kšœœ˜"K˜šžœœœ%œ%œœœ œœ˜έKšΟeœb™i—K˜Kš ž œœœœ%œ%œ˜«K˜Kšžœœœ˜PK˜Kš žœœ5œ œœ˜kK˜šœœœ˜Kšœœ˜ Kšœœ˜Kšœœ˜K˜—šœœœ˜K˜K™9Kš œœœœœœœ˜MKšœœ˜ K˜—K™Kš žœœ2œ!œœœ˜—˜Kšžœœ!˜