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 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 Κ‘•NewlineDelimiter ™code™ K™)K˜—šΟk ˜ Kšœœœ˜K˜K˜—šΟnœœ œ˜head™ Kšœœœ˜—™™Kšœœœ˜Kšœœ˜ —™&Kšœœœ˜K˜Kšœœœ™K˜Kšœ œœ˜"šœœœ˜Kšœœ˜Kšœœ œœ˜*K˜K˜—Kšœ œœ˜"šœœœ˜Kšœœ˜Kšœœ œœ˜*K˜—K˜Kšœ œœ˜(šœœœ˜!Kšœœ˜Kš œœ œœœΟc,˜TK˜K˜—šœ œœ œ˜&K˜Kšœ ˜ K˜ K™;K˜ K˜K˜K˜Kšœœœ˜K˜K˜———™šžœœœœœœœœœ ˜uK™2K™@K™6—K˜šžœœ ˜K™K™ ——™šž œœ˜,K™K™—K˜™‡K˜Kšž œœœ˜,K˜Kšžœœœ˜)K˜šžœœœ˜&K˜—Kšž œœœœ˜.K˜Kšž œœœ˜.šž œœœ˜,K™&—K˜Kšž œœ˜/K˜Kšž œœœ˜/šžœœœ˜1K™'—K˜Kšž œœ˜/K˜Kšž œœœ˜/šžœœœ˜1K™'——K˜K˜šžœœ œ'œ˜JK™1K™&K™——™šžœœœ˜K™IK™K™ K™