<<>> <> <> 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]; <<$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>> }.