-- Communication.pack, last editted by Andrew Birrell on August 30, 1982 10:15 am -- Communication.pack, last editted by BLyon, on March 21, 1981 12:42 PM -- Communication.pack, last editted by HGM, on March 14, 1981 6:44 PM LowestCommLevels: SEGMENT = BEGIN CommunicationsCantSleep: CODE PACK = BEGIN -- this stuff is always doing sometihing when communications is on DispatcherImpl [ MainDispatcher, PutOnGlobalInputQueue, PutOnGlobalDoneQueue, DummyInputer]; BufferMgr [ CreditReceiveOisBuffer, ReturnFreeBuffer, GetFreeBuffer, GetInputBuffer, Enqueue, Dequeue]; RouterImpl [ ReceivePacket, DeliveredToLocalSocket, GetOisPacketTextLength, SetOisPacketLength, SetOisPacketTextLength]; RoutingTableImpl [RoutingInformationPacket]; ChecksumsImpl [TestChecksum]; END; EthernetCantSleep: CODE PACK = BEGIN -- this stuff is always active if communications is turned on EthernetDriver [ Watcher, SmashCSBs, DecapsulateBuffer, InInterrupt, InactiveReceiveAckOrRequest, MaybeChangeNumberOfInputBuffers]; END; EthernetOut: CODE PACK = BEGIN EthernetDriver [ OutInterrupt, EncapsulateOis, EncapsulatePup, ForwardBuffer, SendBuffer, SendBufferInternal]; END; EthernetTranslation: CODE PACK = BEGIN EthernetDriver [ ReceiveRequest, AddAddressPair, DeallocateEntry, Demon, SendRequest, ReceiveAck, InactiveTranslate, Translate, FindEntry, RemoveEntry, AddEntry]; END; EthernetOneCantSleep: CODE PACK = BEGIN -- this stuff is always active if communications is turned on EthernetOneDriver [ Watcher, SmashCSBs, DecapsulateBuffer, InInterrupt, InactiveReceiveAck, MaybeChangeNumberOfInputBuffers, ReturnBuffer--RPC--]; END; EthernetOneOut: CODE PACK = BEGIN EthernetOneDriver [ OutInterrupt, EncapsulatePup, EncapsulateOis, ForwardBuffer, SendBuffer, SendBufferInternal]; END; EthernetOneTranslation: CODE PACK = BEGIN EthernetOneDriver [ AddAddressPair, DeallocateEntry, Demon, SendRequest, ReceiveAck, ReceiveRequest, InactiveTranslate, Translate, FindEntry, RemoveEntry, AddEntry]; END; PhonesHot: CODE PACK = BEGIN PhoneNetworkDriver [ FrameAny, OISFrameIt, PupFrameIt, TypeOfBuffer, SendFrame, SendWait, TranslateChannelStatus, PreemptedSending, ForwardFrame, Receiver, AwaitAndDisposeOfFrame, StatsNop, InterruptNop, StatusChangeWait, ProcessStatusChange, StatIncr, StatBump, EnqueueSend, Sender, DequeueSend]; END; PhonesHalfDup: CODE PACK = BEGIN HalfDuplexImpl [ TimerProcess, WaitTimer, WaitToSend, SendCompleted, CheckForTurnAround, NotifyOurTurnToSend, AwaitCTS, SendLTA, ClearOurTurn, AwaitNoSending, StatIncr, StatBump, MAIN, Initialize, Destroy, MilliSecondsToPulses]; END; RoutingTableUpdaterAndWarm: CODE PACK = BEGIN -- this stuff is always active if communications is turned on. -- there are three (odered in importance) criteria here: -- 1) don't use more than one page! -- 2) get the normal workings of the RoutingTableUpdater in here. -- 3) get the less common entry vectors in here if possible. RoutingTableImpl [RoutingTableUpdater, FindNetworkNumber]; Boss [ChangeNumberOfInputBuffers, GetGiantVector]; PilotCommUtil [LockBuffers]; END; ExchangeProtocol: CODE PACK = BEGIN PacketExchangeImpl [ SendRequestPacket, SendRequest, WaitForRequestPacket, WaitForRequest, SendReplyPacket, SendReply, NotifySendCompleted]; END; SocketsActive: CODE PACK = BEGIN BufferMgr [MaybeGetFreeBuffer]; PacketExchangeImpl [GetFreeSendPacket]; SocketImpl [GetPacket, PutPacket]; RouterImpl [SendPacket, SendErrorPacket]; RoutingTableImpl [ FindNetworkAndTransmit, FindDestinationRelativeNetID]; ChecksumsImpl [SetChecksum]; Boss [GetDeviceChain]; END; INRAndMultinetBroadcast: CODE PACK = BEGIN DispatcherImpl [SendToNextNetwork]; SocketImpl [PutPacketToAllConnectedNets]; RouterImpl [SendBroadcastPacketToCorrectNet, BroadcastThisPacket]; RoutingTableImpl [ RoutingTableCacheFault, InternetRouterServer, SendRoutingInfoResponse, ForwardPacket]; ChecksumsImpl [IncrOisTransportControlAndUpdateChecksum]; END; SocketCreation: CODE PACK = BEGIN RouterImpl [AssignOisAddress, AddSocket, AssignDestinationRelativeOisAddress]; SocketImpl [ AssignNetworkAddress, Create, SetWaitTime, MilliSecondsToPulses, GetBufferPool]; PacketExchangeImpl [Create, CreateRequestor, CreateReplyer, SetWaitTime]; BufferMgr [QueueInitialize, MakeBufferPool]; PilotCommUtil [AllocateBuffers, AllocateIocbs]; END; SocketDeletion: CODE PACK = BEGIN SocketImpl [Delete, Abort, Reset, GetStatus]; PacketExchangeImpl [Delete]; RouterImpl [RemoveSocket]; BufferMgr [ QueueCleanup, FreeBufferPool, DestroyBufferPoolLocked, EnqueueActiveBuffersOnly]; PilotCommUtil [FreeIocbs, FreeBuffers, UnlockBuffers]; END; CommonCool: CODE PACK = BEGIN DispatcherImpl [ DummyAddDelete, DummyBroadcaster, DummyStateChanged, GetOisRouter]; BufferMgr [ DataWordsPerRawBuffer, DataWordsPerOisBuffer, DataWordsPerSppBuffer, SendBuffersLeft, ReceiveBuffersLeft, ExtractFromQueue]; RouterImpl [ FindMyHostID, SetOisStormy, SetOisCheckit, SetOisDriverLoopback]; RoutingTableImpl [ AddNetwork, AddNetworkLocked, RemoveNetwork, RemoveNetworkLocked, StateChanged, ProbeAnInternetRouter, FindNetwork, RemoveEntry, AddEntry]; END; PhonesCool: CODE PACK = BEGIN PhoneNetworkDriver [ MAIN, ActivateTransporter, KillTransporter, CreatePhonePath, PreemptCleanup, Initialize, Destroy, CreateSendReceiveProcesses, CheckPath, RemoveSendReceiveProcesses, NotifySenderToGoAway, NotifyDialComplete, WaitDialComplete]; PhoneNetworkImpl [ MAIN, FindPhonePath, KnowAboutPhonePath, ForgetAboutPhonePath, AppendString]; END; CommonCold: CODE PACK = BEGIN Boss [ AddDeviceToChain, RemoveDeviceFromChain, SmashDeviceChain, GetNthDevice, GetNetworkID, SetNetworkID]; DispatcherImpl [SetOisRouter, SetSpyProc]; BufferMgr [ GetWordsPerIocb, GetBufferSize, BuffersLeft, EnumerateBuffersInPool, AdjustBufferSize, SetWordsPerIocb]; EthernetOneDriver [ AdjustLengtoOfD0EthernetInputQueue, GetNthDeviceLikeMe, EthernetOneListenForHost, GetRPCPackets, SetEthernetOneCollectGarbageToo, SetCollectGarbageToo, SetEthernetOneListener]; EthernetDriver [ AdjustLengtoOfD0EthernetInputQueue, GetNthDeviceLikeMe, EthernetListenForHost, SetEthernetCollectGarbageToo, SetCollectGarbageToo, SetEthernetListener]; RoutingTableImpl [SetRouterFunction, GetRouterFunction, EnumerateRoutingTable]; END; CommunicationTurnOnTurnOff: CODE PACK = BEGIN -- start-up + finish-up procedures CommunicationControl [OiscpPackageMake, OiscpPackageDestroy]; Boss [OiscpPackageReady, CommPackageReady, CommPackageGo, CommPackageOff]; EthernetDriver [ MAIN, CreateDefaultEthernetDrivers, CreateAnEthernetDriver, SetupEthernetDriver, ActivateDriver, DeactivateDriver, DeleteDriver]; EthernetOneDriver [ MAIN, CreateDefaultEthernetOneDrivers, CreateAnEthernetOneDriver, SetupEthernetOneDriver, ActivateDriver, DeactivateDriver, DeleteDriver]; PilotCommUtil [Zero]; DispatcherImpl [DispatcherOn, DispatcherOff]; RouterImpl [OisRouterOn, OisRouterOff]; RoutingTableImpl [RoutingTableOn, RoutingTableOff]; SocketImpl [SocketOn]; END; CommunicationDeepFreeze: CODE PACK = BEGIN -- in order of STARTs CommunicationControl [ MAIN, InitializeCommunication, StartupCommunication]; PilotCommUtil [MAIN, CaptureErrors, DefaultErrorHandler, Glitch]; PacketExchangeImpl [LostBuffer]; Boss [MAIN]; BufferMgr [MAIN]; DispatcherImpl [MAIN]; ChecksumsImpl [MAIN]; RouterImpl [MAIN]; RoutingTableImpl [MAIN]; SocketImpl [MAIN]; PacketExchangeImpl [MAIN]; END; DevelopmentStuff: CODE PACK = BEGIN BufferMgr [GetFreePupBuffer, GetClumpOfPupBuffers, DataWordsPerPupBuffer]; StatsHot [MAIN, StatGetCounter, StatIncr, StatBump]; RouterImpl [PacketHit]; DispatcherImpl [GetPupRouter, SetPupRouter]; PilotCommUtil [SecondsToTocks, MsToTocks]; END; ShitCan: CODE PACK = BEGIN Boss [GetDoStats, GetUseCount]; ChecksumsImpl [SlowlyComputeChecksum]; PilotCommUtil [FriendOfCopyLong]; PilotCommUtilPup; END; END; HighCommLevels: SEGMENT = BEGIN HotAndEVs: CODE PACK = BEGIN PacketStreamInstance [ SendSystemPacket, PutPacketOnSocketChannel, EnqueueTransmittedPacketAppropriately]; END; RetransmitAndReceive: CODE PACK = BEGIN PacketStreamInstance [ Retransmitter, Receiver, GotSequencedPacket, AttentionPacketProcessed, UpdateAttnSeqTable, GotErrorPacket]; END; InOut: CODE PACK = BEGIN PacketStreamInstance [ TakeFromUser, GetForUser, WaitForAttention, ReturnGetSppDataBuffer]; NetworkStreamInstance [ SendNow, PutBlock, PutByte, PutWord, SetSST, SendAttention, FlushOutputBuffer, GetByte, GetWord, GetBlock, WaitAttention]; END; Cool: CODE PACK = BEGIN PacketStreamInstance [ MAIN, SetWaitTime, SuspendStream, SuspendStreamLocked, FindAddresses, GetSenderSizeLimit, EstablishThisConnection, ActivelyEstablish, WaitUntilEstablished, Delete, MilliSecondsToPulses]; PacketStreamMgr [ MAIN, Make, Destroy, GetUniqueConnectionID, InsertIntoConnectionTable, RemoveFromConnectionTable, ConnectionAlreadyThere]; NetworkStreamInstance [MAIN, Delete]; NetworkStreamMgr [ MAIN, Create, AssignNetworkAddress, FindAddresses, SetWaitTime, CreateListener, DeleteListener, CreateTransducer, Close, CloseReply, Listen]; END; TheEchoServer: CODE PACK = BEGIN EchoServerImpl [MAIN, CreateServer, DeleteServer, EchoServer]; END; END; (635)\3b13B8i26I28b13B8i24I25b16B22b23B24i71I455b17B24i66I160b11B163b19B215b20B24i66I154b14B166b22B218b9B368b13B294b26B24i303I163b16B194b13B345b23B377b14B235t10 38t0 2t10 11t0 116b14B98t10 6t0 209b10B548b10B424b10B815b26B24i39I699b23B24i26I404b16B256t10 25t0 15b7B181b14B22b9B161b20B197b5B311b4B284t10 6t0 188t10 41t0 36t10 14t0 1t10 15t0 66b13B50t10 26t0 CommunicationAlwaysActiveFrames: FRAME PACK = BEGIN Communication.BufferMgr; Communication.Level0 [EthernetDriver, DispatcherImpl]; Communication.Level1; END; CommunicationHotFrames: FRAME PACK = BEGIN Communication.Level2 [ PacketStreamMgr, NetworkStreamMgr, PacketStreamInstance, NetworkStreamInstance]; END; CommunicationOtherFrames: FRAME PACK = BEGIN Communication.PilotCommUtil; Communication.PilotCommUtilPup; Communication.Boss; Communication.CommunicationControl; Communication.Level0 [PhoneNetworkDriver, PhoneNetworkImpl, HalfDuplexImpl]; Communication.Level2 [EchoServerImpl]; Communication.Level2 [PacketExchangeImpl]; END; CommunicationDevelopementEnvironment: FRAME PACK = BEGIN Communication.StatsHot; Communication.Level0 [EthernetOneDriver]; END;e12\b31B152b22B149b24B345b36B