// IfsLookupFileServ.decl
// Copyright Xerox Corporation 1982
// Last modified July 25, 1982  2:49 PM by Taft

get "Pup0.decl"

manifest
[
// well-known socket
socketLookupFile = 61B

// Pup types
ptLookupFileRequest = 200B
ptLookupFileReply = 201B
ptLookupFileError = 202B

// Error types
etNoSuchFile = 1
]

//----------------------------------------------------------------------------
structure LFPBI:	// LookupFilePBI
//----------------------------------------------------------------------------
[
@PBI =
   [
   blank word offset PBI.pup.words/16
   // LookupFileRequest contains just a text string
   reply:
      [
      version word	// file version number
      created word 2	// create date
      byteLength↑0,1 word // length hint (8-bit bytes, regardless of actual byte size)
      ] =
   error:
      [
      type word
      ]
   ] =
   [
   // internal use: text string slid down 1 byte to make a BCPL string.
   // n.b. this clobbers the low word of the Pup.sPort.
   blank word offset PBI.pup.words/16 -1
   string: [ length byte; char↑1,1 byte ]
   ]
]

//----------------------------------------------------------------------------
structure LFS:		// LookupFileServer global state
//----------------------------------------------------------------------------
[
soc word		// -> well-known PupSoc
ecb word		// -> ECB for this event
active word		// nonzero if LookupFileEvent in progress
]
manifest lenLFS = size LFS/16