DIRECTORY BufferDefs USING [BufferAccessHandle, GetFreeBuffer, SppBuffer], OISCPTypes USING [bytesPerPktHeader, bytesPerLevel2SppHeader, ConnectionID], NetworkStream USING [defaultWaitTime, FailureReason, SuspendReason, WaitTime, ClassOfService], NSAddress USING [NetworkAddress]; PacketStream: DEFINITIONS IMPORTS BufferDefs = BEGIN Handle: TYPE = POINTER TO Object; Object: TYPE = RECORD [ pool: BufferDefs.BufferAccessHandle, put: PROCEDURE [BufferDefs.SppBuffer], get: PROCEDURE RETURNS [BufferDefs.SppBuffer], waitForAttention: PROCEDURE RETURNS [BufferDefs.SppBuffer], setWaitTime: PROCEDURE [WaitTime], findAddresses: PROCEDURE RETURNS [local, remote: NSAddress.NetworkAddress], getSenderSizeLimit: PROCEDURE RETURNS [CARDINAL], returnGetSppDataBuffer: PROCEDURE [BufferDefs.SppBuffer]]; Byte: TYPE = [0..256); bytesPerSequencedPktHeader: CARDINAL = OISCPTypes.bytesPerLevel2SppHeader + OISCPTypes.bytesPerPktHeader; WaitTime: TYPE = NetworkStream.WaitTime; ClassOfService: TYPE = NetworkStream.ClassOfService; defaultWaitTime: WaitTime = NetworkStream.defaultWaitTime; infiniteWaitTime: READONLY WaitTime; State: TYPE = { unestablished, activeEstablish, waitEstablish, established, open, terminating, suspended}; SuspendReason: TYPE = NetworkStream.SuspendReason; FailureReason: TYPE = NetworkStream.FailureReason; Make: PROCEDURE [ local, remote: NSAddress.NetworkAddress, localConnID, remoteConnID: OISCPTypes.ConnectionID, establishConnection: BOOLEAN, timeout: WaitTime _ defaultWaitTime, classOfService: ClassOfService] RETURNS [Handle]; Destroy: PROCEDURE [Handle]; Put: PROCEDURE [psH: Handle, b: BufferDefs.SppBuffer] = INLINE BEGIN psH.put[b]; END; Get: PROCEDURE [psH: Handle] RETURNS [BufferDefs.SppBuffer] = INLINE BEGIN RETURN[psH.get[]]; END; WaitForAttention: PROCEDURE [psH: Handle] RETURNS [BufferDefs.SppBuffer] = INLINE BEGIN RETURN[psH.waitForAttention[]]; END; SetWaitTime: PROCEDURE [psH: Handle, time: WaitTime] = INLINE BEGIN psH.setWaitTime[time]; END; FindAddresses: PROCEDURE [psH: Handle] RETURNS [local, remote: NSAddress.NetworkAddress] = INLINE BEGIN [local, remote] _ psH.findAddresses[]; END; GetSendSppBuffer: PROCEDURE [psH: Handle] RETURNS [BufferDefs.SppBuffer] = INLINE { RETURN[LOOPHOLE[BufferDefs.GetFreeBuffer[oisSpp, psH.pool, send], BufferDefs.SppBuffer]]}; GetSenderSizeLimit: PROCEDURE [psH: Handle] RETURNS [CARDINAL] = INLINE BEGIN RETURN[psH.getSenderSizeLimit[]]; END; ReturnGetSppDataBuffer: PROCEDURE [psH: Handle, b: BufferDefs.SppBuffer] = INLINE BEGIN psH.returnGetSppDataBuffer[b]; END; InsertIntoConnectionTable: PROCEDURE [ remote: NSAddress.NetworkAddress, remoteConnID: OISCPTypes.ConnectionID]; RemoveFromConnectionTable: PROCEDURE [ remote: NSAddress.NetworkAddress, remoteConnID: OISCPTypes.ConnectionID]; ConnectionAlreadyThere: PROCEDURE [ remote: NSAddress.NetworkAddress, remoteConnID: OISCPTypes.ConnectionID] RETURNS [BOOLEAN]; ConnectionSuspended: ERROR [why: SuspendReason]; ConnectionFailed: SIGNAL [why: FailureReason]; END. LOG Time: May 9, 1978 12:03 PM By: Dalal Action: created file. Time: January 26, 1980 1:52 PM By: Dalal Action: replaced SPPInternal. Time: BLyon on: April 14, 1980 6:11 PM By: BLyon Action: Uses new level1 and queue level stuff. Time: Garlick on: January 23, 1981 1:49 PM By: BLyon Action: Added type for ClassOfService, added infiniteWaitTime, added classOfService param and defaulted Make procedure, and removed ERROR AttentionTimeout. vPacketStream.mesa - internal definitions module for Pliot Packet Streams Garlick on: January 23, 1981 1:49 PM) Levin, June 24, 1983 5:18 pm Russ Atkinson (RRA) February 2, 1985 3:06:14 pm PST definitions interface exported by PacketStreamMgr these are INLINEs in order to make call Pilot procedure calls similar in style. connection table routines errors and signals Κ΄˜codešœH™HKšœ&™&Kšœ™J™3—K˜šΟk ˜ Kšœ œ0˜@Kšœ œ<˜LKšœœK˜^Kšœ œ˜!K˜—šœ œœ ˜4K˜Kšœ ™ K˜Kšœœœœ˜!šœœœ˜K˜$Kšœ œ˜&Kšœ œœ˜.Kšœ œœ˜;Kšœ  œ ˜"Kšœ œœ+˜KKšœ œœœ˜1Kšœ œ˜:K˜—Kšœœ ˜šœœ˜&K˜B—Kšœ œ˜(Kšœœ ˜4K˜:Kšœœ ˜$K˜šœœ˜K˜NK˜ —Kšœœ˜2Kšœœ˜2K˜Kšœ ™ K˜Kšœ™šΟnœ œ˜K˜DKšœ.œ˜7K˜EKšœ ˜—Kšžœ œ ˜KšœO™Ošžœ œ*˜>Kšœ œ˜K˜—šžœ œœ˜DKšœœ œ˜K˜—šžœ œœ˜QKšœœœ˜*K˜—šž œ œ!˜=Kšœœ˜!K˜—šž œ œ˜&Kšœ-˜:Kšœ(œ˜1K˜—šžœ œœœ˜SKšœœK˜ZK˜—š žœ œœœ˜GKšœœœ˜,K˜—šžœ œ*˜QKšœ œ˜)—Kšœ™K˜šžœ œ˜&K˜I—šžœ œ˜&K˜I—šžœ œ˜#KšœIœœ˜[—Kšœ™Kšœœ˜0Kšœœ˜.K˜Kšœ˜K˜—Kš˜K˜Kšœœ"˜=Kšœœ*˜IKšœ%œ;˜bKšœ)œ‘œ˜ΣK˜K˜—…— šΔ