Copyright (C) 1983 by Xerox Corporation. All rights reserved. The following program was created in 1983 but has not been published within the meaning of the copyright law, is furnished under license, and may not be used, copied and/or disclosed except in accordance with the terms of said license.
IPQueue.mesa
This is the interface to the shared variables of the IP world.
Last Edited by: Nichols, August 1, 1983 1:11 pm
Last Edited by: Taft, January 5, 1984 5:13 pm
John Larson, April 14, 1986 9:22:53 pm PST
DIRECTORY
IPDefs USING [Datagram, InternetHandle, neverTimeout, RequestData];
IPQueue: CEDAR DEFINITIONS
~ BEGIN
CreateIPHandle: PROC [requestData: IPDefs.RequestData] RETURNS [handle: IPDefs.InternetHandle];
Add a new request for incoming packets. Returns a handle on the Internet. If the reqest conflicts with an existing one, then CreateIPHandle returns NIL.
DestroyIPHandle: PROC [handle: IPDefs.InternetHandle];
Removes the request and flushes all waiting datagrams.
Receive: PROC [handle: IPDefs.InternetHandle, timeout: INT ← IPDefs.neverTimeout] RETURNS [data: IPDefs.Datagram];
Waits for a datagram that matches the request that was used to create the handle. Returns the datagram or NIL if timeout milliseconds (?) pass with no packet arriving. A value of neverTimeout for timeout will cause Receive to wait forever.
QueueDatagram: PROC [data: IPDefs.Datagram];
Find a home for this datagram and queue it.
END.