-- RPC: Private interface between runtime and ethernet driver

-- [Ivy]<Birrell>RPCPrivate.mesa

-- Andrew Birrell August 27, 1982 5:39 pm

DIRECTORY
BufferDefs USING[ PupBuffer ],
PupTypes USING[ PupSocketID, rpcpSoc ];

RPCPrivate: DEFINITIONS =

BEGIN

rpcSocket: PupTypes.PupSocketID = PupTypes.rpcpSoc;

GetRPCPackets: PROC[ PROC[BufferDefs.PupBuffer]RETURNS[BOOLEAN] ];
-- Asks driver to call the procedure whenever a Pup arrives for
-- the RPC socket. Driver guarantees the
-- packet is a legal Pup addressed to rpcSocket. Returns
-- TRUE iff RPCRuntime accepts the packet. If it
-- returns FALSE, driver may re-use the buffer; if
-- it returns TRUE, RPCRuntime promises to give back
-- the buffer by calling ReturnBuffer quite soon, so
-- driver may run with a lower number of input buffers
-- temporarily.

ReturnBuffer: PROC[BufferDefs.PupBuffer];
-- argument is a buffer that is now free. --

END.