<> <> <> <> <<>> DIRECTORY Basics, IO, Xl, XlPrivate; XlPrivateRequests: CEDAR DEFINITIONS IMPORTS Basics, IO, XlPrivate SHARES Xl, XlPrivate ~ BEGIN OPEN Xl; <<>> <> crazyByteSwapped: BOOL = BYTES[INT]=2; <<--recognize dorado because of crazy byteswapping>> Next: PROC [c: Connection] = INLINE { <> c.sequenceNumber ¬ Basics.LowHalf[c.sequenceNumber+1]; }; RequestWithDetails: UNSAFE PROC [c: Connection, p: LONG POINTER, byteCount: INT, details: Details] = INLINE { <> <> Next[c]; IO.UnsafePutBlock[c.xmit, [base: LOOPHOLE[p], startIndex: 0, count: byteCount]]; XlPrivate.FinishWithDetails[c, details]; }; RequestWithReply: UNSAFE PROC [c: Connection, p: LONG POINTER, byteCount: INT] RETURNS [reply: XlPrivate.Reply ¬ NIL] = INLINE { <> <> Next[c]; IO.UnsafePutBlock[c.xmit, [base: LOOPHOLE[p], startIndex: 0, count: byteCount]]; reply ¬ XlPrivate.FinishWithReply[c] }; RequestIncomplete: UNSAFE PROC [c: Connection, p: LONG POINTER, byteCount: INT] = INLINE { <> <> Next[c]; IO.UnsafePutBlock[c.xmit, [base: LOOPHOLE[p], startIndex: 0, count: byteCount]]; }; FinishRequestWithDetails: PROC [c: Connection, details: Details] = INLINE { <> XlPrivate.FinishWithDetails[c, details]; }; FinishRequestWithReply: PROC [c: Connection] RETURNS [reply: XlPrivate.Reply ¬ NIL] = INLINE { <> reply ¬ XlPrivate.FinishWithReply[c] }; END.