DIRECTORY Rope USING [ROPE] ; CirioNub: CEDAR DEFINITIONS ~ { ROPE: TYPE ~ Rope.ROPE; Handle: TYPE ~ REF Object; Object: TYPE; ProcID: TYPE ~ CARD32; Block16: TYPE ~ REF Block16Record; Block16Record: TYPE ~ RECORD [ count: CARDINAL, val: SEQUENCE maxCount: CARDINAL OF CARD16 ]; Block32: TYPE ~ REF Block32Record; Block32Record: TYPE ~ RECORD [ count: CARDINAL, val: SEQUENCE maxCount: CARDINAL OF CARD32 ]; CallResult: TYPE ~ REF CallResultRecord; CallResultRecord: TYPE ~ RECORD [ count: CARDINAL ¬ 0, val: SEQUENCE maxCount: CARDINAL OF REF -- CARD32 | INT32 | TEXT | Block16 | Block32 ]; ReturnCode: TYPE ~ MACHINE DEPENDENT { ok (0), noProc (1), badArgs(2), failure(128), commError(129), protocolError(130), spaceError(131), last (CARDINAL.LAST) }; Create: PROC [protocolFamily: ATOM ¬ $ARPA, debuggee: ROPE ¬ NIL, timeoutMsec: CARD ¬ CARD.LAST] RETURNS [h: Handle]; Destroy: PROC [h: Handle]; StartCall: PROC [h: Handle, procID: ProcID]; PutCard32: PROC [h: Handle, card32: CARD32]; PutInt32: PROC [h: Handle, int32: INT32]; PutRope: PROC [h: Handle, rope: ROPE]; PutBlock8: PROC [h: Handle, block8: REF TEXT]; PutBlock8Cnt: PROC [h: Handle, cnt: CARDINAL]; PutBlock8Next: PROC [h: Handle, byte: BYTE]; PutBlock16: PROC [h: Handle, block16: Block16]; PutBlock16Cnt: PROC [h: Handle, cnt: CARDINAL]; PutBlock16Next: PROC [h: Handle, card16: CARD16]; PutBlock32: PROC [h: Handle, block32: Block32]; PutBlock32Cnt: PROC [h: Handle, cnt: CARDINAL]; PutBlock32Next: PROC [h: Handle, card32: CARD32]; Call: PROC [h: Handle] RETURNS [rc: ReturnCode, result: CallResult ¬ NIL]; Error: ERROR [code: ATOM]; }. Ψ CirioNub.mesa Copyright Σ 1992 by Xerox Corporation. All rights reserved. Demers, September 19, 1989 5:33:51 pm PDT Copied Types Types Debugger session Remote procedure arguments and results Block8: TYPE ~ REF TEXT; The remaining return codes won't be seen on client side ... Session management Create a handle for talking to specified debuggee. Default debuggee is local host at well-known PCR debugging port. ! Error[$connectError, $debuggeeLookupError, $timeout] Destroy a handle. No ERRORs. Procedure call Prepare to call given proc. ! Error[$noConnection] The following procs are are used after StartCall to send arguments. The CirioNub package takes care of byte/word-order considerations. Low level implementation of PutBlock8. Low level implementation of PutBlock16. Low level implementation of PutBlock32. Send call message, wait for result and return it. If (rc # ok), then result will be NIL. ! Error[$noConnection] Error $failure -- generic failure, may result from any proc that raises Error. $debuggeeNameLookupError $connectError $noConnection -- handle has no connection, or can't connect. $timeout $communicationFailure $putBlockError -- client put more than was promised $protocol -- the other end screwed up ΚΑ–(cedarcode) style•NewlineDelimiter ™code™ Kšœ Οeœ1™