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 Copyright Σ 1992 by Xerox Corporation. All rights reserved. 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 Κ–(cedarcode) style•NewlineDelimiter ™codešœ ™ Kšœ Οeœ1™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šœb™i—K˜Kš Ÿ œžœžœžœ%žœ%žœ˜«K˜KšŸœžœžœ˜PK˜Kš Ÿœžœ5žœ žœžœ˜kK˜šœžœžœ˜Kšœžœ˜ Kšœžœ˜Kšœžœ˜K˜—šœžœžœ˜K˜K™9Kš œžœžœžœžœžœžœ˜MKšœžœž˜ K˜—K™Kš Ÿœžœ2žœ!žœžœžœ˜—˜KšŸœžœ!˜