<> <> DIRECTORY AMBridge USING[WordSequence, RemotePD, RemoteGlobalFrameHandle, RemoteFrameHandle, RemoteRef, RemoteSED, RemotePointer], AMTypes USING[TypedVariable], BcdDefs USING[BcdBase], LoadState USING[ModuleIndex], PrincOps USING[GlobalFrame, Frame, SignalDesc, EPRange, BytePC], Rope USING[ROPE], SafeStorage USING[Type], RTCommon USING[Field], RTSymbolDefs USING[SymbolTableBase, BodyIndex, CallableBodyIndex], WorldVM USING[World, Incarnation]; RTTypesRemotePrivate: DEFINITIONS = BEGIN OPEN AMBridge, RTSymbolDefs, WorldVM; <> RemoteError: ERROR[type: RemoteErrorType, message: LONG POINTER TO TEXT _ NIL]; RemoteErrorType: TYPE = {addressFault, invalidFrame}; <<>> <> EVRange: TYPE = [0..4*PrincOps.EPRange); <<>> <

> <> RemoteTypeToLocal: PROC[world: World, remoteType: CARDINAL] RETURNS[type: SafeStorage.Type]; UnwindRemoteIndirectProcDesc: PROC[pd: RemotePD] RETURNS[RemotePD]; AcquireCBTHandleFromRemotePD: PROC[pd: RemotePD] RETURNS[stb: SymbolTableBase, cbti: CallableBodyIndex]; AcquireSTBFromRemoteGFH: PROC[gfh: RemoteGlobalFrameHandle] RETURNS[stb: SymbolTableBase]; GetRemoteGFHeader: PROC[gfh: RemoteGlobalFrameHandle] RETURNS[REF PrincOps.GlobalFrame]; GetRemoteFrameHeader: PROC[fh: RemoteFrameHandle] RETURNS[REF PrincOps.Frame]; GetRemoteWords: PROC[remotePointer: RemotePointer, nWords: NAT] RETURNS[AMBridge.WordSequence]; GetRemoteWord: PROC[remotePointer: RemotePointer] RETURNS[WORD]; GetRemoteLC: PROC[remotePointer: RemotePointer] RETURNS[LONG CARDINAL]; RemoteStoreWords: PROC[from: LONG POINTER, to: RemotePointer, nWords: NAT]; RemoteStoreWord: PROC[to: RemotePointer, value: CARDINAL]; RemoteStoreDoubleWord: PROC[to: RemotePointer, value: LONG CARDINAL]; RemoteStoreFieldLong: PROC[ ptr: RemotePointer, field: RTCommon.Field, value: LONG CARDINAL ]; ValidateRemoteFrame: PROC[remoteFH: RemoteFrameHandle]; GetRemoteReferentType: PROC[remoteRef: RemoteRef] RETURNS[SafeStorage.Type--valid locally--]; GetRemoteProcedureType: PROC[remotePD: RemotePD] RETURNS[SafeStorage.Type--valid locally--]; GetRemoteSignalType: PROC[remoteSED: RemoteSED] RETURNS[SafeStorage.Type--valid locally--]; IsRemoteCatchFrame: PROC[remoteFrameHandle: RemoteFrameHandle, bti: BodyIndex] RETURNS[isCatchFrame: BOOLEAN _ TRUE, revBti: BodyIndex]; AcquireBTIFromRemoteFH: PROC[remoteFrameHandle: RemoteFrameHandle, contextPC: BOOL] RETURNS[bti: BodyIndex]; RemotePDToName: PROC[pd: RemotePD] RETURNS[Rope.ROPE]; RemoteSEDToName: PROC[sed: RemoteSED] RETURNS[Rope.ROPE]; RemoteGFHToName: PROC[gfh: RemoteGlobalFrameHandle] RETURNS[Rope.ROPE]; ValidateRemoteRef: PROC [ref: RemoteRef]; <> RemoteSignalValues: PROC[tv: AMTypes.TypedVariable--catch Frame--] RETURNS [message: CARDINAL, signal: PrincOps.SignalDesc, world: World]; AcquireRemoteBCDAndModule: PROC[gfh: RemoteGlobalFrameHandle] RETURNS[BcdDefs.BcdBase, LoadState.ModuleIndex]; AcquireRemoteBCD: PROC[world: World, incarnation: Incarnation, bcd: BcdDefs.BcdBase--remote--] RETURNS[mappedBCD: BcdDefs.BcdBase--local--]; ReleaseRemoteBCD: PROC[bcd: BcdDefs.BcdBase]; GetRemoteEp: PROC[ pc: PrincOps.BytePC, gf: RemoteGlobalFrameHandle, stb: SymbolTableBase ] RETURNS[ep: EVRange, start: PrincOps.BytePC]; GetRemotePc: PROC[gf: RemoteGlobalFrameHandle, i: EVRange] RETURNS [PrincOps.BytePC]; END.