-- Copyright (C) 1981, 1982, 1983, 1984, 1985  by Xerox Corporation. All rights reserved. 
-- Server.config:  Grapevine: configuration for Pilot reg + mail server --

-- HGM, 22-May-85  0:21:03
-- Randy Gobbel     9-Mar-83 12:25:32
-- Brenda Hankins   23-Aug-84 14:18:33
-- Ted Wobber	    2-Nov-82 12:38:20 
-- AlHall	    9-Jul-82 15:25:09 
-- Mark Johnson    14-Jan-82 11:56:49 
-- Andrew Birrell  20-Oct-81 10:53:51 


Server: CONFIGURATION
   LINKS: CODE
   IMPORTS 
   	   BodyDefs, Buffer, BufferOps, ByteBlt, DeviceError, Driver,
	   Format, Heap, Inline, MDSStorage, MFile, MScavenge, Process,
	   ProcessOperations, ProcessorFace, PupDefs, PupRouterDefs,
	   PupPktOps, PupStream, Runtime, RestartDefs, Space, SpecialSpace,
	   SpecialMFile, Stream, String, Supervisor, System,
	   TemporaryBooting, Time, TTY, Volume
   EXPORTS AclDefs, BTreeDefs, Event, FTPDefs, GlassDefs, HeapDefs,
           LocateDefs, LogDefs, NameInfoDefs, NameInfoSpecialDefs,
	   ObjectDirDefs, PilotClient, PolicyDefs, ProtocolDefs,
	   RegBTreeDefs, RegistryDefs, RegServerDefs, RetrieveDefs,
	   SendDefs, TimeExtra
   CONTROL GVSwitches, Restart, MSMail, FTPServer, Enquiry =
BEGIN


-- ******** GrapevineUser ******** --

GrapevineUser: CONFIGURATION
   IMPORTS Buffer, HeapDefs, Process, PupDefs, PupStream, Stream, 
   	   String, Storage, Time
   EXPORTS LocateDefs, NameInfoDefs, NameInfoSpecialDefs, ProtocolDefs,
           RetrieveDefs, RListDefs
           --, not SendDefs: CreateMail in MServer provides that -- =
   BEGIN
   Protocol;
   Locate;
   NameInfo;
   HeapRList;
   RetrieveGV;
   RetrieveInit;
   RetrieveMail;
   RetrievePoll;
   END;

GrapevineUser;



-- ******** ServerMisc ******** --

[BitMapDefs, BTreeDefs, EnquiryDefs, FileDefs, FTPDefs, FTPPrivateDefs,
	 GlassDefs, HeapDefs, IODefs, LogDefs, LogPrivateDefs, LogWatchDefs,
	 ObjectDirDefs, PolicyDefs, RestartDefs, -- ShortTermHeap --
	 Storage, LongTermHeap: Storage, TimeExtra, VMDefs, VMSpecial,
	 VMStorage] ←
   ServerMisc[
        Buffer, BufferOps, ByteBlt, BodyDefs, DeviceError, EnquiryDefs,
	Inline, Heap, MDSStorage, MFile, Process, ProcessOperations, ProcessorFace,
	ProtocolDefs, PupDefs, PupStream, Runtime, SLDefs, Space, SpecialMFile,
	SpecialSpace, Stream, String, System, Time, TTY];




-- ******** R-Server ******** --

RServer: CONFIGURATION
  IMPORTS BodyDefs, BTreeDefs, Buffer, HeapDefs, Inline, LocalNameDefs,
  	 LocateDefs, LogDefs, LogPrivateDefs, ObjectDirDefs, PolicyDefs,
	 Process, ProtocolDefs, PupDefs, PupStream, RetrieveDefs, RListDefs, 
	 Runtime, SendDefs, String, --ShortTerm--Storage, Time, TTY, VMDefs
  EXPORTS AclDefs, EnquiryDefs, RegBTreeDefs, RegistryDefs, 
  	RegServerDefs, RestartDefs =
  BEGIN
  Acl;
  Registration;
  Registry;
  RegAccess;
  RegBTree;
  RegCache;
  RegServerImpl;
  RegMail;
  RegRestart;
  -- The R-Server has its own copy of NameInfo, because the other one may
  -- be in use by the M-Server calling the R-Server at the time the
  -- R-Server wants to use NameInfo, which would cause a deadlock.
  NameInfo;
   END;

[AclDefs, EnquiryDefs, RegBTreeDefs, RegistryDefs, RegServerDefs, 	RestartDefs] ←
    RServer[BodyDefs, BTreeDefs, Buffer, HeapDefs, Inline, LocalNameDefs, 
    	LocateDefs, LogDefs, LogPrivateDefs, ObjectDirDefs, PolicyDefs, Process,
        ProtocolDefs, PupDefs, PupStream, RetrieveDefs, RListDefs, Runtime,
        SendDefs, String, --ShortTermHeap-- Storage, Time, TTY, VMDefs];



-- ******** M-Server ******** --

MServer: CONFIGURATION
  IMPORTS BitMapDefs, BodyDefs, BTreeDefs, Buffer,
	HeapDefs, LocalNameDefs, LogDefs, LogPrivateDefs, NameInfoDefs,
        ObjectDirDefs, PolicyDefs, Process, ProtocolDefs, PupDefs, PupStream,
    	RetrieveDefs, Stream, String, --LongTerm--Storage, Time, VMDefs
  EXPORTS EnquiryDefs, MailboxDefs--for Enquiry--, MSMail, RestartDefs, SendDefs,
    	SLDefs =
  BEGIN
  -- Server sub-routines --
  CreateMail;
  MailboxAlloc;
  MailboxRestart;
  ReturnMail;
  ServerAlloc;
  ServerInfo;
  SiteCache;
  SLQueueImpl;
  SLRestart;
  Spiller;
  -- The driving processes --
  MiscSoc;
  MSMail;
  ReadForward;
  ReadInput;
  ReadMail;
  ReceiveInput;
  ReceiveMail;
  END;

[EnquiryDefs, MailboxDefs, MSMail, RestartDefs, SendDefs, SLDefs] ←
    MServer[BitMapDefs, BodyDefs, BTreeDefs, Buffer, HeapDefs,
    	    LocalNameDefs, LogDefs, LogPrivateDefs, NameInfoDefs, ObjectDirDefs, 
	    PolicyDefs, Process, ProtocolDefs, PupDefs, PupStream,
	    RetrieveDefs, Stream, String, LongTermHeap, Time, VMDefs];



-- ******** Everything else ******** --

[LocalNameDefs] ←
   LocalName[HeapDefs, IODefs, LocateDefs, NameInfoDefs, ObjectDirDefs,
   	     ProtocolDefs, PupDefs, LongTermHeap, String];

Enquiry;
EnquiryPup;
FTPServer;


-- ******** Mainline program! ******** --

ImageDefsImpl;
GVSwitches;
GVPServer;
Restart LINKS: FRAME;


END.