(FILECREATED "15-Feb-85 22:34:00" ("compiled on " {ERIS}SOURCES>LLETHER.;9) "15-Feb-85 01:03:36" recompiled changes: \3MB.CREATENDB in "INTERLISP-D 15-Feb-85 ..." dated "15-Feb-85 01:20:27") (FILECREATED "15-Feb-85 22:30:17" {ERIS}SOURCES>LLETHER.;9 71026 changes to: (VARS LLETHERCOMS ETHERFILES) (RECORDS NDB) (FNS \3MB.CREATENDB) previous date: "14-Feb-85 22:22:55" {ERIS}SOURCES>LLETHER.;8) \ENQUEUE D1 (P 11Q THISITEM P 4 NEXTITEM P 2 \INTERRUPTABLE P 1 JUNK P 0 TAILEND I 1 ITEM I 0 Q) @b @@Ab@XHAUoH oHold@R k_K'L_\O _NOh^Ok԰O&O!MYAh@AIoI AA(212Q ERROR 121Q LOC 52Q LOC) (3 SYSQUEUE) ( 206Q "Tail of queue has non-NIL link ptr" 65Q "Queue item locations:" 56Q "LINK:" 46Q "Tail at:") \DEQUEUE D1 (L (0 Q) P 0 \INTERRUPTABLE) .@b0@Y@IZJ@hIhINIL (42Q SYSQUEUE 25Q SYSQUEUE 14Q SYSQUEUE 3 SYSQUEUE) () \QUEUELENGTH D1 (L (0 Q)) @jHIIkԹNIL (3 SYSQUEUE) () \ONQUEUE D1 (L (1 Q 0 ITEM)) AHd@@HXNIL (3 SYSQUEUE) () \UNQUEUE D1 (P 0 \INTERRUPTABLE I 2 NOERRORFLG I 1 ITEM I 0 QUEUE) _P@[dOBKAgg@h A2L@AYI@hAZJ@LAhAK\h(42Q ERROR) (113Q SYSQUEUE 74Q SYSQUEUE 56Q SYSQUEUE 31Q on 26Q not 6 SYSQUEUE) () \ALLOCATE.ETHERPACKET D1 (P 0 PACKET) 1` Hj`kl`ll H(55Q \CLEARWORDS 31Q RECLAIM 5 \DEQUEUE) (43Q ETHERPACKETTYPE# 37Q \NEWPACKETCOUNTER 24Q \NEWPACKETCOUNTER 17Q \NEWPACKETCOUNTER 2 \FREE.PACKET.QUEUE) () \RELEASE.ETHERPACKET D1 (I 0 EPKT) =@@j@g@j#@ddddhhh hh`@ h(71Q \ENQUEUE) (65Q \FREE.PACKET.QUEUE 16Q FREE 3 ETHERPACKET) () RELEASE.PUP D1 (I 0 PUP) @ (3 \RELEASE.ETHERPACKET) NIL () \FLUSH.PACKET.QUEUE D1 (P 1 PACKET P 0 CNT I 0 QUEUE) j@ Yd HkԸ(16Q \RELEASE.ETHERPACKET 7 \DEQUEUE) NIL () \REQUEUE.ETHERPACKET D1 (P 1 \INTERRUPTABLE P 0 REQUEUE I 0 PACKET) :@Hd-di𒿰%g@ H`H@ @hh(56Q \ENQUEUE 34Q \RELEASE.ETHERPACKET) (63Q ETHERPACKET 47Q SYSQUEUETYPE# 26Q FREE 3 ETHERPACKET) () \EP.PUT.AUX D1 (P 2 CELL P 1 A P 0 PLIST I 2 VAL I 1 KEY I 0 PKT) Q@AH Y*AglJB Jb@AB@AgIBIB IbB(110Q \PUTFIXP 41Q \PUTFIXP 15Q ASSOC) (74Q AUXPTR 61Q ETHERPACKET 52Q ETHERPACKET 24Q AUXPTR 3 ETHERPACKET) () \SETLOCALNSNUMBERS D1 (I 0 TYPE) y`&`'`(jg`&`'`(gjn`hj``HdI`HdI`HdINIL (166Q \MY.NSADDRESS 145Q \MY.NSHOSTNUMBER 125Q \MY.NSHOSTNUMBER 106Q \MY.NSHOSTNUMBER 102Q NSADDRESSTYPE# 77Q \MY.NSNETNUMBER 73Q \MY.NSHOSTNUMBER 61Q \InterfacePage 52Q NSHOSTNUMBER 44Q \InterfacePage 37Q \InterfacePage 32Q \InterfacePage 27Q NSHOSTNUMBER 14Q \InterfacePage 7 \InterfacePage 2 \InterfacePage) () \LOADNSADDRESS D1 (P 0 A I 1 A I 0 BASE) A`A`H@lHNIL (13Q NSADDRESSTYPE# 4 NSADDRESSTYPE#) () \STORENSADDRESS D1 (I 1 A I 0 BASE) @AlANIL (4 NSADDRESS) () \PRINTNSADDRESS D1 (I 1 FILE I 0 BASE) hA A @ lllA o@@A oA o@A oA o@A oA o@A oA o@A o(203Q PRINTNUM 167Q PRIN1 156Q PRINTNUM 142Q PRIN1 131Q PRINTNUM 115Q PRIN1 104Q PRINTNUM 70Q PRIN1 57Q PRINTNUM 37Q TERPRI 17Q INTEGERLENGTH 10Q POSITION 4 LINELENGTH) NIL ( 207Q "" 174Q (FIX 0 -10Q) 163Q "#" 147Q (FIX 0 -10Q) 136Q "." 122Q (FIX 0 -10Q) 111Q "." 75Q (FIX 0 -10Q) 64Q "#" 44Q (FIX 0 -10Q)) \NSADDRESS.DEFPRINT D1 (I 0 BASE) :@@ o@ o@ o@ o@ h(65Q CONCAT 61Q OCTALSTRING 47Q OCTALSTRING 35Q OCTALSTRING 23Q OCTALSTRING 11Q OCTALSTRING) NIL ( 53Q "#" 41Q "." 27Q "." 15Q "#") \LOADNSHOSTNUMBER D1 (I 1 OLDBOX I 0 BASE) >Ag@@@hgA@A@A@AoA (73Q ERROR) (31Q NSHOSTNUMBER 5 NSHOSTNUMBER) ( 67Q "ARG NOT NSHOSTNUMBER") \STORENSHOSTNUMBER D1 (I 1 NSHNM I 0 BASE) ,Ag@A@A@AoA A(50Q ERROR) (5 NSHOSTNUMBER) ( 44Q "ARG NOT NSHOSTNUMBER") PRINTNSHOSTNUMBERA0001 D1 (NAME ERRORSET F 0 FILE F 1 NSHOSTNUMBER F 2 MACROY) 1QP oP QP oP QP ci(53Q PRIN1 41Q PRIN1 30Q PRIN1 17Q PRIN1 6 PRIN1) NIL ( 35Q "." 13Q ".") PRINTNSHOSTNUMBER D1 (P 3 RESETSTATE P 2 MACROY P 0 OLDVALUE I 1 FILE I 0 NSHOSTNUMBER F 4 RESETVARSLST) <l 1gHhhTcYog gIcgI KJ(67Q ERROR! 62Q APPLY 37Q PRINTNSHOSTNUMBERA0001 4 RADIX) (53Q RADIX 43Q ERROR 34Q INTERNAL 12Q RADIX) ( 31Q (PRINTNSHOSTNUMBERA0001)) \ETHERINIT D1 NIL wgg gg h`dgdgdgdgdg:dg8dg6dg4dg2dg0dg.dg*dg$ (164Q \DEFINEDEVICE 21Q MOVD 10Q MOVD) (156Q \GENERIC.READP 147Q NILL 140Q \IS.NOT.RANDACCESSP 131Q \ILLEGAL.DEVICEOP 122Q \IS.NOT.RANDACCESSP 113Q \ILLEGAL.DEVICEOP 104Q \GENERIC.BINS 75Q \GENERIC.BOUTS 66Q \GENERIC.RENAMEFILE 57Q NILL 50Q NILL 41Q \ETHEREVENTFN 32Q ETHER 25Q FDEVTYPE# 16Q ALLOCATE.PUP 13Q \ALLOCATE.ETHERPACKET 5 RELEASE.PUP 2 \RELEASE.ETHERPACKET) () \ETHEREVENTFN D1 (P 3 DB P 2 TIMESET P 1 TURNOFFNS P 0 NDB I 1 EVENT I 0 DEV) 2A(Ag!AgAgAgAdgۿ0hA `d `d `NHH`K@``YA A JZ`iO`l+`7jh(H`K K[o` o` `A I`hgAdgdggAg` ` (457Q CLRHASH 450Q CLRHASH 441Q \STASH.PASSWORDS 375Q \INIT.GATEWAY 364Q STOPNS 356Q \IPINIT 345Q PRIN1 332Q TERPRI 315Q IDATE 300Q \LOCKWORDS 227Q \PUP.SETTIME 212Q \STARTPUP 205Q \NS.SETTIME 201Q \NSINIT 132Q \10MB.CREATENDB 113Q \3MB.CREATENDB 102Q \FLUSHNDBS 75Q \SETLOCALNSNUMBERS 71Q \SETETHERFLAGS) (454Q LOGINPASSWORDS 445Q \ETHERPORTS 434Q BEFORESAVEVM 425Q BEFORESAVEVM 420Q BEFORESYSOUT 412Q BEFORELOGOUT 402Q BEFOREMAKESYS 370Q \GATEWAYFLG 351Q \IPFLG 342Q PROMPTWINDOW 327Q PROMPTWINDOW 305Q NDB 264Q \DTDSpaceBase 244Q \IOPAGE 234Q \MACHINETYPE 221Q \PUP.READY 173Q \10MBFLG 167Q \NSFLG 155Q \LOCALNDBS 151Q \10MBLOCALNDB 144Q \LOCALNDBS 136Q \LOCALNDBS 125Q \10MBFLG 121Q \3MBLOCALNDB 116Q \LOCALNDBS 106Q \3MBFLG 65Q \PUP.READY 62Q \NS.READY 57Q \IP.READY 42Q RESTART 33Q AFTERSAVEVM 24Q AFTERMAKESYS 15Q AFTERSYSOUT 6 AFTERLOGOUT) ( 337Q "[Time not set]" 321Q 3407624700Q) \SETETHERFLAGS D1 NIL \`dljhdl4l`ilPxlllpxlllih(131Q SHOULDNT) (125Q \10MBFLG 121Q \3MBFLG 110Q \10MBFLG 71Q \3MBFLG 65Q \10MBFLG 46Q \3MBFLG 35Q \InterfacePage 20Q \3MBFLG 14Q \10MBFLG 2 \MACHINETYPE) () \FLUSHNDBS D1 (P 1 QUEUE P 0 NDB I 0 EVENT) 0`XhhhhHh@gHHkJH HHhhHYH YI@g Hh @g (200Q \FLUSH.NDB.QUEUE 156Q \FLUSH.NDB.QUEUE 103Q DEL.PROCESS) (175Q OUTPUT 163Q NDB 153Q INPUT 141Q NDB 130Q NDB 114Q NDB 110Q NDB 76Q NDB 61Q NDB 53Q RESTART 43Q NDB 36Q \LOCALNDBS 31Q NDB 25Q \NS.ROUTING.TABLE 17Q \PUP.ROUTING.TABLE 5 \LOCALNDBS) () \FLUSH.NDB.QUEUE D1 (P 1 IOCB P 0 PACKET I 2 USE I 1 EVENT I 0 QUEUE) ) @ XhAgH Y H B (44Q \RELEASE.IOCB 35Q \RELEASE.ETHERPACKET 6 \DEQUEUE) (24Q ETHERPACKET 16Q RESTART) () \CHECKSUM D1 (L (2 INITSUM 1 NWORDS 0 BASE)) HBj@AJjHdnjnHdIXHkXHnHnkHIkйJkZNIL NIL () \HANDLE.RAW.OTHER D1 (I 1 RAWTYPE I 0 PACKET) ;`2o` A$o` oA` o` @ (70Q \RELEASE.ETHERPACKET 63Q PRIN1 50Q PRINTNUM 34Q PRIN1 16Q PRIN1) (60Q XIPTRACEFILE 45Q XIPTRACEFILE 31Q XIPTRACEFILE 13Q XIPTRACEFILE 2 XIPTRACEFLG) ( 55Q "]" 41Q (FIX 0 -10Q) 26Q "[ = #" 10Q "Dropping packet of unknown encapsulation type: ") \HANDLE.RAW.PACKET D1 (P 2 FILTER P 1 TYPE I 0 PACKET) >`j` j`@ H h@ @IlJJiHX(46Q \RELEASE.ETHERPACKET 12Q RAND) (25Q ETHERPACKET 21Q \PACKET.FILTERS 7 \ETHERLIGHTNING 2 \ETHERLIGHTNING) () \ADD.PACKET.FILTER D1 (I 0 FILTER) @d``@h @(20Q \NCONC2) (23Q \PACKET.FILTERS 12Q \PACKET.FILTERS 4 \PACKET.FILTERS) () \DEL.PACKET.FILTER D1 (I 0 FILTER) @` @` i(15Q DREMOVE) (20Q \PACKET.FILTERS 12Q \PACKET.FILTERS 3 \PACKET.FILTERS) () \AGE.ROUTING.TABLE D1 (P 2 ENTRY P 1 PREV P 0 TAIL I 0 TABLE) a@@"HdZj;Jg n8@l @"H "`o` @` ` @ i(431Q \RELEASE.ETHERPACKET 424Q TERPRI 415Q PRIN1 403Q PRIN1 362Q \NOTE.10TO3 352Q \LOADNSHOSTNUMBER 302Q PRINT10TO3 267Q MEMB 176Q \NOTE.10TO3 166Q \LOADNSHOSTNUMBER 36Q \MAYBEPRINTPACKET) (421Q XIPTRACEFILE 412Q XIPTRACEFILE 400Q XIPTRACEFILE 367Q XIPTRACEFLG 321Q NDB 312Q FREE 307Q ETHERPACKET 277Q XIPTRACEFILE 274Q PUT 264Q XIPIGNORETYPES 261Q TRANS 254Q XIPTRACEFLG 226Q NDB 204Q NDB 141Q \MY.NSHOSTNUMBER 123Q \MY.NSHOSTNUMBER 104Q \MY.NSHOSTNUMBER 71Q NSHOSTNUMBER 64Q \MY.NSHOSTNUMBER 33Q GET 26Q XIPTRACEFLG 16Q ETHERPACKET) ( 375Q "Bad 10:3 operation: ") PRINTPACKET D1 (P 1 FN P 0 TYPE I 4 DOFILTER I 3 PRE.NOTE I 2 FILE I 1 CALLER I 0 PACKET) Z@ H` Y@ABCDlIB`bCB CB AAB oB oB HB B @(126Q TERPRI 121Q PRIN1 113Q PRIN1 102Q PRIN1 71Q PRIN1 61Q PRIN1 53Q TERPRI 17Q FASSOC) (42Q XIPTRACEFILE 14Q \PACKET.PRINTERS 3 ETHERPACKET) ( 107Q "Unknown ether packet type: " 76Q ": ") \MAYBEPRINTPACKET D1 (P 4 NDB P 1 NDB P 0 TYPE I 3 PRE.NOTE I 2 FILE I 1 CALLER I 0 PACKET) @ 1Hn``dg~AgAdg(@ Ld@LlJg9g4gAg%@ Ld@LlKgggBHn`` gAgAdg@ABCi hggAgggBHn`` (344Q PRIN1 271Q PRINTPACKET 233Q PRIN1) (341Q XIPTRACEFILE 335Q PUPTRACEFILE 321Q ? 315Q ^ 310Q PUT 303Q # 276Q GET 255Q RAWPUT 246Q RAWGET 240Q RAW 230Q XIPTRACEFILE 224Q PUPTRACEFILE 210Q ? 204Q ! 200Q ^ 161Q NDB 146Q ETHERPACKET 137Q RAWPUT 131Q PUT 124Q + 117Q * 100Q NDB 65Q ETHERPACKET 55Q RAWGET 46Q GET 36Q PEEK 25Q XIPTRACEFLG 21Q PUPTRACEFLG 3 ETHERPACKET) () PRINT10TO3 D1 (I 4 DOFILTER I 3 PRE.NOTE I 2 FILE I 1 CALLER I 0 EPKT) Dg` B`b CN@dnAKAB oB @l B oB @l# B oB @&B B B n80AB oB @l B oB @"B B AB oB @B B h(273Q TERPRI 267Q PRIN1 260Q PRIN1 250Q PRIN1 242Q TERPRI 236Q PRIN1 226Q PRIN1 216Q PRINTNSHOSTNUMBER 212Q \LOADNSHOSTNUMBER 203Q PRIN1 172Q PRIN1 154Q PRIN1 147Q TERPRI 143Q PRIN1 133Q PRIN1 123Q PRINTNSHOSTNUMBER 117Q \LOADNSHOSTNUMBER 110Q PRIN1 100Q PRINTNSHOSTNUMBER 74Q \LOADNSHOSTNUMBER 65Q PRIN1 54Q PRIN1 31Q FRESHLINE 12Q MEMB) (24Q XIPTRACEFILE 7 XIPIGNORETYPES 4 TRANS) ( 254Q " unknown 10 to 3 translation operation " 222Q " = " 177Q " 10:3 trans response: " 127Q " = " 104Q " from " 61Q " 10:3 trans request for ") PRINTPACKETDATA D1 (P 7 REPEATMACRO P 6 FINALPRINT P 5 TMP P 4 CHAR P 3 STREAM P 2 DATATYPE P 1 TILOFFSET P 0 SEPR I 4 FILE I 3 LENGTH I 2 MACRO I 1 OFFSET I 0 BASE) 4 AjbojgDg TCA BObIABdgdgdgdgBZdgdgdgdgBg Zdg;@AgK MK gK AlbMkmJgngZgdggK hZVdgB_GdgBB:dgBb^)iK BddjBBABYK BbJdg,@AK AlbHCdAϿHK g4@A]@MkK AlbHCdAHK Jdgil @A\lLK _KLlO=Ll "CAk@Akl oK AkbgK LK gK Akbg+gK @AK gK AkbNNK D (1061Q TERPRI 1053Q PRIN1 1032Q PRIN1 1022Q PRIN1 1012Q PRIN1 763Q PRIN1 753Q PRIN1 745Q PRIN1 726Q PRIN1 612Q PRIN1 557Q PRIN2 522Q PRIN1 467Q PRIN2 434Q PRIN1 374Q TERPRI 305Q PRIN1 233Q PRIN1 223Q PRIN2 215Q PRIN1 163Q PACK* 24Q GETSTREAM) (1026Q %] 1006Q %[ 1000Q BYTES 757Q %] 741Q %[ 652Q STREAM 623Q CHARS 531Q INTEGERS 451Q WORDS 352Q FINALLY 333Q SEPR 316Q REPEAT 301Q ... 273Q ... 264Q CHARS 256Q BYTES 227Q } 211Q { 173Q IFSSTRING 160Q S 150Q INTEGER 142Q CHAR 134Q BYTE 125Q WORD 110Q INTEGERS 102Q CHARS 74Q BYTES 65Q WORDS 21Q OUTPUT 15Q WORDS) ( 722Q "[crlf]" 11Q ", ") PRINTPACKETQUEUE D1 (P 0 PACKET I 2 FILE I 1 CALLER I 0 QUEUE) (@d`HdAB HX(34Q PRINTPACKET) (41Q ETHERPACKET 20Q ETHERPACKET 12Q SYSQUEUE 5 SYSQUEUETYPE#) () TIME.SINCE.PACKET D1 (P 1 CLK0 P 0 CLK1 I 0 PACKET) l wl I@llHI`(12Q \CREATECELL 4 \CREATECELL) (33Q \RCLKMILLISECOND) () \3MBGETPACKET D1 (P 2 PBI P 1 \INTERRUPTABLE P 0 PACKET) bJ$XlJlJkĿJjoJ J-`lkHlwH` HH `Hg H(136Q \MAYBEPRINTPACKET 56Q HELP 21Q \ALLOCATE.ETHERPACKET 10Q \READRAWPBI) (133Q RAWGET 126Q \RAWTRACING 116Q ETHERPACKET 110Q \3MBLOCALNDB 105Q ETHERPACKET 67Q \MISCSTATS) ( 52Q "PBI has a socket") \3MB.CREATENDB D1 NIL h``HdIdjdjdldndgdgdgdgogggg HdI(134Q ADD.PROCESS) (130Q DELETE 125Q AFTEREXIT 122Q SYSTEM 117Q RESTARTABLE 105Q NILL 76Q \3MB.BROADCASTP 67Q \3MBENCAPSULATE 60Q \3MBSENDPACKET 6 \InterfacePage 2 NDBTYPE#) ( 114Q (\3MBWATCHER)) \3MBSENDPACKET D1 (P 1 PBI P 0 \INTERRUPTABLE I 1 PACKET I 0 NDB) qAb`dg `j` jKI!`8gA n`` lAlAkĿI `lkA i(155Q \REQUEUE.ETHERPACKET 135Q \WRITERAWPBI 111Q PRIN1 46Q \GETPACKETBUFFER 34Q RAND 20Q \MAYBEPRINTPACKET) (141Q \MISCSTATS 106Q XIPTRACEFILE 102Q PUPTRACEFILE 70Q ETHERPACKET 64Q x 57Q \RAWTRACING 31Q \ETHERLIGHTNING 24Q \ETHERLIGHTNING 15Q RAWPUT 10Q \RAWTRACING 3 ETHERPACKET) () \3MBWATCHER D1 (P 1 PACKET P 0 CNTR) $jY j HkX`(24Q \HANDLE.RAW.PACKET 14Q BLOCK 6 \3MBGETPACKET) (34Q \MAXWATCHERGETS) () \3MBENCAPSULATE D1 (L (4 TYPE 3 LENGTH 2 PDH 1 PACKET 0 NDB)) !ABA@ACklADANIL (11Q NDB) () \3MB.BROADCASTP D1 (L (0 PACKET)) @jNIL NIL () \3MBFLUSH D1 (I 0 ASPROC) jHkԸH@n (27Q BLOCK 6 \READRAWPBI) NIL () ASSURE.ETHER.ON D1 (I 0 USENS) .`ooi `@i@ `h(51Q \NSINIT 36Q \ETHEREVENTFN 17Q ERROR) (45Q \NSFLG 32Q \NSFLG 23Q \LOCALNDBS 2 \RUNNING.PROCESS) ( 13Q "" 7 "Processes not on!") INITPUPLEVEL1 D1 (I 0 FLG) !g `l @(36Q HARDRESET 30Q ASSURE.ETHER.ON 24Q \PUPLEVEL1STATE 10Q DEL.PROCESS 2 TURN.OFF.ETHER) (13Q \MACHINETYPE 5 \3MBFLUSH) () TURN.ON.ETHER D1 NIL ` (5 ASSURE.ETHER.ON) (2 \NSFLG) () RESTART.ETHER D1 (P 0 PROC) 'g XH g XH hg (44Q \ETHEREVENTFN 33Q SUSPEND.PROCESS 25Q FIND.PROCESS 16Q SUSPEND.PROCESS 10Q FIND.PROCESS) (41Q RESTART 22Q \NSGATELISTENER 5 \PUPGATELISTENER) () TURN.OFF.ETHER D1 NIL (i g g i g i g (45Q \FLUSHNDBS 36Q CLOSENSOCKET 31Q \DEFINEDP 23Q CLOSEPUPSOCKET 17Q DEL.PROCESS 11Q DEL.PROCESS 3 BREAKCONNECTION) (42Q RESTART 26Q CLOSENSOCKET 14Q \NSGATELISTENER 6 \PUPGATELISTENER) () PRINTWORDS D1 (P 1 I I 1 NWORDS I 0 BASE) /AkjIdHh o @I h IkY(46Q TERPRI 41Q PRIN2 30Q PRIN1 20Q PRIN2) NIL ( 25Q ": ") \DEVICE.INPUT D1 (L (0 TASKREG)) @xNIL (3 SMALLP) () \DEVICE.OUTPUT D1 (L (1 TASKREG 0 VALUE)) @AyNIL (7 SMALLP 3 SMALLP) () \D0.STARTIO D1 (L (0 BITS)) @xNIL (3 SMALLP) () (PRETTYCOMPRINT LLETHERCOMS) (RPAQQ LLETHERCOMS ((COMS (* Stuff which should be somwhere else!) (INITVARS (ERRORMESSAGESTREAM T) ( PROMPTWINDOW T)) (GLOBALVARS ERRORMESSAGESTREAM PROMPTWINDOW) (COMS (* Queue management for data which can be chain-linked through the first cell) (DECLARE: DONTCOPY (EXPORT (RECORDS SYSQUEUE QABLEITEM) ( MACROS \QUEUEHEAD))) (INITRECORDS SYSQUEUE) (SYSRECORDS SYSQUEUE) (FNS \ENQUEUE \DEQUEUE \QUEUELENGTH \ONQUEUE \UNQUEUE) (* Queue management constructed by TCONC) (EXPORT (MACROS \DETCONC \ENTCONC \PEEKTCONC)))) (COMS (* General packet management) (DECLARE: DONTCOPY (* * Skeletal ether packet. Other users define with respect to) (EXPORT (RECORDS ETHERPACKET ETHERAUX) (CONSTANTS \EPT.PUP \EPT.XIP \3MBTYPE.XIP \10MBTYPE.XIP \EPT.10TO3 \3MBTYPE.10TO3 \EPT.UNKNOWN)) (GLOBALVARS \FREE.PACKET.QUEUE)) (INITRECORDS ETHERPACKET) (SYSRECORDS ETHERPACKET) (FNS \ALLOCATE.ETHERPACKET \RELEASE.ETHERPACKET RELEASE.PUP \FLUSH.PACKET.QUEUE \REQUEUE.ETHERPACKET \EP.PUT.AUX) (INITVARS ( \FREE.PACKET.QUEUE (NCREATE (QUOTE SYSQUEUE))) (\NEWPACKETCOUNTER 5))) (COMS (INITRECORDS NSADDRESS) ( INITVARS (\MY.NSHOSTNUMBER NIL) (\MY.NSNETNUMBER NIL) (\MY.NSADDRESS NIL)) (VARS BROADCASTNSHOSTNUMBER ) (FNS \SETLOCALNSNUMBERS \LOADNSADDRESS \STORENSADDRESS \PRINTNSADDRESS \NSADDRESS.DEFPRINT \LOADNSHOSTNUMBER \STORENSHOSTNUMBER PRINTNSHOSTNUMBER) (DECLARE: EVAL@COMPILE DONTCOPY (COMS * NSADDRESSCOMS)) (DECLARE: DONTEVAL@LOAD DOCOPY (P (DEFPRINT (QUOTE NSADDRESS) (QUOTE \NSADDRESS.DEFPRINT))))) (COMS (* Assorted Level 0) (FNS \ETHERINIT \ETHEREVENTFN \SETETHERFLAGS \FLUSHNDBS \FLUSH.NDB.QUEUE) (FNS \CHECKSUM \HANDLE.RAW.OTHER \HANDLE.RAW.PACKET \ADD.PACKET.FILTER \DEL.PACKET.FILTER) (DECLARE: DONTCOPY (EXPORT (CONSTANTS (\NULLCHECKSUM 65535))) (GLOBALVARS \PACKET.FILTERS \ETHERLIGHTNING)) (INITVARS (\PACKET.FILTERS NIL) (\ETHERLIGHTNING)) (DECLARE: DONTEVAL@LOAD DOCOPY (P (\ETHERINIT) (MOVD? (QUOTE NILL) (QUOTE BLOCK)) (MOVD? (QUOTE NILL) (QUOTE \STASH.PASSWORDS))))) (COMS (* Assorted routing stuff) (DECLARE: DONTCOPY (EXPORT (RECORDS NDB ROUTING )) (CONSTANTS \RT.INFINITY) (MACROS ENCAPSULATE.ETHERPACKET TRANSMIT.ETHERPACKET BROADCASTP .RTLOOKUP. ) (GLOBALVARS \RT.TIMEOUTINTERVAL \RT.AGEINTERVAL \RT.PURGEFLG \GATEWAYFLG) (GLOBALVARS \3MBFLG \10MBFLG \3MBLOCALNDB \10MBLOCALNDB \LOCALNDBS \NSFLG \IPFLG \NS.ROUTING.TABLE \PUP.ROUTING.TABLE \NS.READY \PUP.READY \IP.READY)) (INITRECORDS NDB) (SYSRECORDS NDB) (FNS \AGE.ROUTING.TABLE \FLUSH.ROUTING.TABLE PRINTROUTINGTABLE \MAP.ROUTING.TABLE) (FNS ENCAPSULATE.ETHERPACKET TRANSMIT.ETHERPACKET) (INITVARS (\RT.TIMEOUTINTERVAL 90000) (\RT.AGEINTERVAL 30000) (\RT.PURGEFLG T) ( \GATEWAYFLG)) (INITVARS (\3MBFLG T) (\10MBFLG) (\3MBLOCALNDB) (\10MBLOCALNDB) (\LOCALNDBS) (\NSFLG) ( \IPFLG))) (COMS (* 10 to 3 translation ugliness) (FNS \TRANSLATE.10TO3 \NOTE.10TO3 \HANDLE.RAW.10TO3) (DECLARE: DONTCOPY (RECORDS ETHERTRANS) (CONSTANTS \TRANS.OP.REQUEST \TRANS.OP.RESPONSE \TRANS.DATALENGTH) (* The \TRANS.DATALENGTH includes the space for 10TO3OPERATION and two 3-word/1-word translation pairs.))) (COMS (* Printing routines for packets) (FNS PRINTPACKET \MAYBEPRINTPACKET PRINT10TO3 PRINTPACKETDATA PRINTPACKETQUEUE TIME.SINCE.PACKET) (INITVARS ( \RAWTRACING)) (ADDVARS (\PACKET.PRINTERS (512 . PRINTPUP) (1537 . PRINT10TO3))) (GLOBALVARS \RAWTRACING \PACKET.PRINTERS PUPTRACEFILE XIPTRACEFILE)) (COMS (* 3MB stuff, which is not needed in DandeLion) (FNS \3MBGETPACKET \3MB.CREATENDB \3MBSENDPACKET \3MBWATCHER \3MBENCAPSULATE \3MB.BROADCASTP \3MBFLUSH) (INITVARS (\MAXWATCHERGETS 5)) (DECLARE: DONTCOPY (RECORDS 3MBENCAPSULATION PBI) (EXPORT (MACROS \SERIALNUMBER)) (CONSTANTS \3MBENCAPSULATION.WORDS \3MBTYPE.PUP) (GLOBALVARS \MAXWATCHERGETS))) (COMS (* Debugging) (FNS ASSURE.ETHER.ON INITPUPLEVEL1 TURN.ON.ETHER RESTART.ETHER TURN.OFF.ETHER PRINTWORDS) (VARS ROUTINGINFOMACRO ETHERFILES) (DECLARE: EVAL@COMPILE DONTCOPY (P ( CLISPDEC (QUOTE FETCHFIELD)) (* Slow, checking version for debugging)))) (COMS (* Opcodes) (FNS \DEVICE.INPUT \DEVICE.OUTPUT \D0.STARTIO) (DECLARE: DONTCOPY (CONSTANTS * D0DEVICES) (EXPORT (PROP DOPVAL \DEVICE.INPUT \DEVICE.OUTPUT \D0.STARTIO)))))) (RPAQ? ERRORMESSAGESTREAM T) (RPAQ? PROMPTWINDOW T) (/DECLAREDATATYPE (QUOTE SYSQUEUE) (QUOTE (BYTE POINTER BYTE POINTER))) (ADDTOVAR SYSTEMRECLST (DATATYPE SYSQUEUE ((NIL BYTE) (SYSQUEUEHEAD POINTER) (NIL BYTE) (SYSQUEUETAIL POINTER)))) (PUTPROPS \DETCONC MACRO (OPENLAMBDA (TQ) (PROG1 (\PEEKTCONC TQ) (if (NULL (CAR (RPLACA TQ (CDAR TQ))) ) then (RPLACD TQ))))) (PUTPROPS \ENTCONC MACRO (= . TCONC)) (PUTPROPS \PEEKTCONC MACRO (= . CAAR)) (/DECLAREDATATYPE (QUOTE ETHERPACKET) (QUOTE (BYTE POINTER BYTE POINTER BYTE POINTER FLAG (BITS 7) POINTER BYTE POINTER BYTE POINTER WORD WORD FIXP POINTER WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD WORD))) (ADDTOVAR SYSTEMRECLST (DATATYPE ETHERPACKET ((NIL BYTE) (EPLINK POINTER) (EPFLAGS BYTE) (EPUSERFIELD POINTER) (NIL BYTE) (EPPLIST POINTER) (EPTRANSMITTING FLAG) (NIL BITS 7) (EPREQUEUE POINTER) (NIL BYTE ) (EPSOCKET POINTER) (NIL BYTE) (EPNETWORK POINTER) (EPTYPE WORD) (NIL WORD) (EPTIMESTAMP FIXP) ( EPREQUEUEFN POINTER) (NIL 4 WORD) (EPENCAPSULATION 8 WORD) (EPBODY 289 WORD)))) (RPAQ? \FREE.PACKET.QUEUE (NCREATE (QUOTE SYSQUEUE))) (RPAQ? \NEWPACKETCOUNTER 5) (/DECLAREDATATYPE (QUOTE NSADDRESS) (QUOTE (FIXP WORD WORD WORD WORD))) (RPAQ? \MY.NSHOSTNUMBER NIL) (RPAQ? \MY.NSNETNUMBER NIL) (RPAQ? \MY.NSADDRESS NIL) (RPAQQ BROADCASTNSHOSTNUMBER (NSHOSTNUMBER 65535 65535 65535)) (DEFPRINT (QUOTE NSADDRESS) (QUOTE \NSADDRESS.DEFPRINT)) (RPAQ? \PACKET.FILTERS NIL) (RPAQ? \ETHERLIGHTNING) (\ETHERINIT) (MOVD? (QUOTE NILL) (QUOTE BLOCK)) (MOVD? (QUOTE NILL) (QUOTE \STASH.PASSWORDS)) (/DECLAREDATATYPE (QUOTE NDB) (QUOTE (BYTE POINTER BYTE POINTER BYTE POINTER BYTE POINTER BYTE POINTER POINTER BYTE POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER WORD WORD POINTER))) (ADDTOVAR SYSTEMRECLST (DATATYPE NDB ((NETTYPE BYTE) (NDBNEXT POINTER) (NDBPUPNET# BYTE) (NDBNSNET# POINTER) (NDBTASK# BYTE) (NDBBROADCASTP POINTER) (NDBPUPHOST# BYTE) (NDBTRANSMITTER POINTER) (NIL BYTE ) (NDBENCAPSULATOR POINTER) (NDBCSB POINTER) (NDBIQLENGTH BYTE) (NDBIQ POINTER) (NDBTQ POINTER) ( NDBTRANSLATIONS POINTER) (NDBETHERFLUSHER POINTER) (NDBWATCHER POINTER) (NDBCANHEARSELF POINTER) ( NDBIPNET# POINTER) (NDBIPHOST# POINTER) (NDBPUPTYPE WORD) (NIL WORD) (NIL POINTER)))) (RPAQ? \RT.TIMEOUTINTERVAL 90000) (RPAQ? \RT.AGEINTERVAL 30000) (RPAQ? \RT.PURGEFLG T) (RPAQ? \GATEWAYFLG) (RPAQ? \3MBFLG T) (RPAQ? \10MBFLG) (RPAQ? \3MBLOCALNDB) (RPAQ? \10MBLOCALNDB) (RPAQ? \LOCALNDBS) (RPAQ? \NSFLG) (RPAQ? \IPFLG) (RPAQ? \RAWTRACING) (ADDTOVAR \PACKET.PRINTERS (512 . PRINTPUP) (1537 . PRINT10TO3)) (RPAQ? \MAXWATCHERGETS 5) (RPAQQ ROUTINGINFOMACRO (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS SEPR ") " -2 FINALLY ")")) (RPAQQ ETHERFILES (PUP LLETHER 10MBDRIVER)) (PUTPROPS LLETHER COPYRIGHT ("Xerox Corporation" 1982 1983 1984 1985)) NIL