<> <> <> <> 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]; OuterFromRemoteGFH: PROC [gfh: RemoteGlobalFrameHandle, inner: PROC [stb: SymbolTableBase]]; <> <> < ReleaseSTB[stb];>> <> <<};>> 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.