(FILECREATED "24-Oct-85 17:33:51" {ERIS}<LISPCORE>SOURCES>LLNSDECLS.;1 4898   

      changes to:  (VARS LLNSDECLSCOMS))


(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT LLNSDECLSCOMS)

(RPAQQ LLNSDECLSCOMS ((COMS (* XIP)
			      (RECORDS XIP)
			      (CONSTANTS \XIPOVLEN \MAX.XIPDATALENGTH)
			      (CONSTANTS * RAWXIPTYPES))
			(COMS (* NSOCKET datatype)
			      (RECORDS NSOCKET)
			      (* Well-known NS sockets)
			      (CONSTANTS (\NS.WKS.RoutingInformation 1)
					 (\NS.WKS.Echo 2)
					 (\NS.WKS.PUPLOOKUP 9)))
			(COMS (* ERRORXIP)
			      (RECORDS ERRORXIP)
			      (CONSTANTS * XIPERRORCODES))))



(* XIP)

[DECLARE: EVAL@COMPILE 

(ACCESSFNS XIP [(XIPBASE (LOCF (fetch (ETHERPACKET EPBODY) of DATUM]
		 [BLOCKRECORD XIPBASE ((XIPCHECKSUM WORD)
				 (XIPLENGTH WORD)
				 (XIPTCONTROL BYTE)
				 (XIPTYPE BYTE)
				 (XIPDESTNET FIXP)
				 (XIPDESTWORD1 3 WORD)
				 (XIPDESTSOCKET WORD)
				 (XIPSOURCENET FIXP)
				 (XIPSOURCEWORD1 3 WORD)
				 (XIPSOURCESOCKET WORD)
				 (XIPFIRSTDATAWORD WORD)     (* Start of data)
				 )
				[ACCESSFNS XIPLENGTH ((XIPCHECKSUMBASE (LOCF DATUM]
				[ACCESSFNS XIPFIRSTDATAWORD ((XIPCONTENTS (LOCF DATUM]
				[ACCESSFNS XIPSOURCEWORD1 ((XIPSOURCEHOST (LOADNSHOSTNUMBER
									      (LOCF DATUM))
									    (STORENSHOSTNUMBER
									      (LOCF DATUM)
									      NEWVALUE]
				[ACCESSFNS XIPDESTWORD1 ((XIPDESTHOST (LOADNSHOSTNUMBER
									  (LOCF DATUM))
									(STORENSHOSTNUMBER
									  (LOCF DATUM)
									  NEWVALUE]
				[ACCESSFNS XIPSOURCENET ((XIPSOURCENSADDRESS (\LOADNSADDRESS
										 (LOCF DATUM))
									       (\STORENSADDRESS
										 (LOCF DATUM)
										 NEWVALUE]
				(ACCESSFNS XIPDESTNET ((XIPDESTNSADDRESS (\LOADNSADDRESS
									     (LOCF DATUM))
									   (\STORENSADDRESS
									     (LOCF DATUM)
									     NEWVALUE]
		 (TYPE? (type? ETHERPACKET DATUM)))
]
(DECLARE: EVAL@COMPILE 

(RPAQQ \XIPOVLEN 30)

(RPAQQ \MAX.XIPDATALENGTH 546)

(CONSTANTS \XIPOVLEN \MAX.XIPDATALENGTH)
)

(RPAQQ RAWXIPTYPES ((\XIPT.ROUTINGINFO 1)
		      (\XIPT.ECHO 2)
		      (\XIPT.ERROR 3)
		      (\XIPT.EXCHANGE 4)
		      (\XIPT.SPP 5)
		      (\XIPT.PUPLOOKUP 6)))
(DECLARE: EVAL@COMPILE 

(RPAQQ \XIPT.ROUTINGINFO 1)

(RPAQQ \XIPT.ECHO 2)

(RPAQQ \XIPT.ERROR 3)

(RPAQQ \XIPT.EXCHANGE 4)

(RPAQQ \XIPT.SPP 5)

(RPAQQ \XIPT.PUPLOOKUP 6)

(CONSTANTS (\XIPT.ROUTINGINFO 1)
	   (\XIPT.ECHO 2)
	   (\XIPT.ERROR 3)
	   (\XIPT.EXCHANGE 4)
	   (\XIPT.SPP 5)
	   (\XIPT.PUPLOOKUP 6))
)



(* NSOCKET datatype)

[DECLARE: EVAL@COMPILE 

(DATATYPE NSOCKET ((NIL BYTE)
		     (NSOCLINK POINTER)                      (* So that we can Queue them)
		     (ID# WORD)
		     (NSOCHANDLE WORD)
		     (NSOC#OPENP FLAG)
		     (NSOC#CONNECTIONP FLAG)
		     (NIL BITS 6)
		     (INQUEUE POINTER)
		     (INQUEUELENGTH WORD)
		     (NSOC#ALLOCATION WORD)
		     (NSOCEVENT POINTER))
		    INQUEUE ←(create SYSQUEUE)
		    NSOC#ALLOCATION ← \MAX.EPKTS.ON.NSOCKET)
]
(/DECLAREDATATYPE (QUOTE NSOCKET)
		  (QUOTE (BYTE POINTER WORD WORD FLAG FLAG (BITS 6)
			       POINTER WORD WORD POINTER))
		  (QUOTE ((NSOCKET 0 (BITS . 7))
			  (NSOCKET 0 POINTER)
			  (NSOCKET 2 (BITS . 15))
			  (NSOCKET 3 (BITS . 15))
			  (NSOCKET 4 (FLAGBITS . 0))
			  (NSOCKET 4 (FLAGBITS . 16))
			  (NSOCKET 4 (BITS . 37))
			  (NSOCKET 4 POINTER)
			  (NSOCKET 6 (BITS . 15))
			  (NSOCKET 7 (BITS . 15))
			  (NSOCKET 8 POINTER)))
		  (QUOTE 10))



(* Well-known NS sockets)

(DECLARE: EVAL@COMPILE 

(RPAQQ \NS.WKS.RoutingInformation 1)

(RPAQQ \NS.WKS.Echo 2)

(RPAQQ \NS.WKS.PUPLOOKUP 9)

(CONSTANTS (\NS.WKS.RoutingInformation 1)
	   (\NS.WKS.Echo 2)
	   (\NS.WKS.PUPLOOKUP 9))
)



(* ERRORXIP)

[DECLARE: EVAL@COMPILE 

(ACCESSFNS ERRORXIP ((ERRORXIPBASE (fetch XIPCONTENTS of DATUM)))
		      (BLOCKRECORD ERRORXIPBASE ((ERRORXIPCODE WORD)
				      (ERRORXIPARG WORD)
				      (ERRORXIPBODY WORD)    (* As many words of offending XIP as sender felt like 
							     including...)
				      )))
]

(RPAQQ XIPERRORCODES ((\XIPE.CHECKSUM 1)
			(\XIPE.NOSOCKET 2)
			(\XIPE.SOCKETFULL 3)
			(\XIPE.GATEWAY.CHECKSUM 513)
			(\XIPE.NOROUTE 514)
			(\XIPE.LOOPED 515)
			(\XIPE.TOOLARGE 516)))
(DECLARE: EVAL@COMPILE 

(RPAQQ \XIPE.CHECKSUM 1)

(RPAQQ \XIPE.NOSOCKET 2)

(RPAQQ \XIPE.SOCKETFULL 3)

(RPAQQ \XIPE.GATEWAY.CHECKSUM 513)

(RPAQQ \XIPE.NOROUTE 514)

(RPAQQ \XIPE.LOOPED 515)

(RPAQQ \XIPE.TOOLARGE 516)

(CONSTANTS (\XIPE.CHECKSUM 1)
	   (\XIPE.NOSOCKET 2)
	   (\XIPE.SOCKETFULL 3)
	   (\XIPE.GATEWAY.CHECKSUM 513)
	   (\XIPE.NOROUTE 514)
	   (\XIPE.LOOPED 515)
	   (\XIPE.TOOLARGE 516))
)
(PUTPROPS LLNSDECLS COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL)))
STOP