1
0
mirror of synced 2026-01-12 00:42:56 +00:00

Updates \ETHEREVENTFN to relocate exit when the ethernet is unvailable.

In the case that the ethernet is unavailable the \ETHEREVENTFN should
still call \SETETHERFLAGS, \SETLOCALNSNUMBERS, and \FLUSHNDBS, or
a newly started image will retain information from the system on which
it was built (such as ethernet MAC address in the NS address).  This
will also ensure that the NS address is not set to 0, instead initializing
with a fake  address based on the system serial number (calls \SERIALNUMBER).
This commit is contained in:
Nick Briggs 2025-12-17 13:08:38 -08:00
parent 16f4e24988
commit 71fe501223
2 changed files with 258 additions and 266 deletions

View File

@ -1,15 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 3-May-2021 23:13:56" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;4 139646
changes to%: (FNS \ETHEREVENTFN \ETHER-AVAILABLE)
(VARS LLETHERCOMS)
(FILECREATED "17-Dec-2025 11:02:51" {DSK}<Users>briggs>Projects>medley>sources>LLETHER.;2 138640
previous date%: " 2-May-2021 12:37:02" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;3)
:EDIT-BY nhb
:CHANGES-TO (FNS \ETHEREVENTFN)
:PREVIOUS-DATE " 3-May-2021 23:13:56" {DSK}<Users>briggs>Projects>medley>sources>LLETHER.;1)
(* ; "
Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT LLETHERCOMS)
@ -17,19 +15,19 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
[(DECLARE%: EVAL@COMPILE DONTCOPY (FILES (SOURCE)
LLNSDECLS))
[COMS (* ;
 "Stuff that should be somewhere else!")
 "Stuff that should be somewhere else!")
(INITVARS (ERRORMESSAGESTREAM T)
(PROMPTWINDOW T))
(GLOBALVARS ERRORMESSAGESTREAM PROMPTWINDOW)
(COMS (* ;
 "Queue management for data which can be chain-linked through the first cell")
 "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 CANONICAL.HOSTNAME \ENQUEUE \DEQUEUE \QUEUELENGTH \ONQUEUE \UNQUEUE)
(* ;
 "Queue management constructed by TCONC")
 "Queue management constructed by TCONC")
(EXPORT (MACROS \DETCONC \ENTCONC \PEEKTCONC]
(COMS (* ; "General packet management")
(DECLARE%: DONTCOPY
@ -124,7 +122,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE DONTCOPY (GLOBALVARS \CENTICLOCKFACTOR \CENTICLOCKBOX)
(RECORDS CENTICLOCK)))
(COMS (* ;
 "3MB stuff, which is not needed in DandeLion")
 "3MB stuff, which is not needed in DandeLion")
(FNS \3MBGETPACKET \3MB.CREATENDB \3MBSENDPACKET \3MBWATCHER \3MBENCAPSULATE
\3MB.BROADCASTP \3MBFLUSH)
(INITVARS (\MAXWATCHERGETS 5))
@ -168,19 +166,18 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(DATATYPE SYSQUEUE ((NIL BYTE)
(SYSQUEUEHEAD POINTER)
(NIL BYTE)
(SYSQUEUETAIL POINTER)))
(SYSQUEUEHEAD POINTER)
(NIL BYTE)
(SYSQUEUETAIL POINTER)))
(BLOCKRECORD QABLEITEM ((NIL BITS 4)
(QLINK POINTER) (* ;
 "Link to next thing in queue always in first pointer of datum, independent of what the datum is")
)
(BLOCKRECORD QABLEITEM ((NIL BITS 4)
(LINK POINTER)
(* ;
 "Let's also be able to call it a LINK")
)))
(QLINK POINTER) (* ;
 "Link to next thing in queue always in first pointer of datum, independent of what the datum is")
)
(BLOCKRECORD QABLEITEM ((NIL BITS 4)
(LINK POINTER)(* ;
 "Let's also be able to call it a LINK")
)))
)
(/DECLAREDATATYPE 'SYSQUEUE '(BYTE POINTER BYTE POINTER)
@ -192,7 +189,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(PUTPROPS \QUEUEHEAD MACRO ((Q)
(fetch (SYSQUEUE SYSQUEUEHEAD) of Q)))
(fetch (SYSQUEUE SYSQUEUEHEAD) of Q)))
)
(* "END EXPORTED DEFINITIONS")
@ -208,9 +205,9 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(ADDTOVAR SYSTEMRECLST
(DATATYPE SYSQUEUE ((NIL BYTE)
(SYSQUEUEHEAD POINTER)
(NIL BYTE)
(SYSQUEUETAIL POINTER)))
(SYSQUEUEHEAD POINTER)
(NIL BYTE)
(SYSQUEUETAIL POINTER)))
)
(DEFINEQ
@ -362,9 +359,9 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(PUTPROPS \DETCONC MACRO [OPENLAMBDA (TQ)
(PROG1 (\PEEKTCONC TQ)
(if [NULL (CAR (RPLACA TQ (CDAR TQ]
then (RPLACD TQ)))])
(PROG1 (\PEEKTCONC TQ)
(if [NULL (CAR (RPLACA TQ (CDAR TQ]
then (RPLACD TQ)))])
(PUTPROPS \ENTCONC MACRO (= . TCONC))
@ -382,48 +379,48 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(DATATYPE ETHERPACKET ((NIL BYTE)
(EPLINK POINTER) (* ; "For queue maintenence")
(EPFLAGS BYTE) (* ;
 "optional flags for some applications")
(EPUSERFIELD POINTER) (* ;
 "Arbitrary pointer for applications")
(NIL BYTE)
(EPPLIST POINTER) (* ;
 "Extra field for use as an A-list for properties")
(EPTRANSMITTING FLAG) (* ;
 "True while packet is being transmitted and hence cannot be reused")
(EPRECEIVING FLAG) (* ;
 "True when a packet has been seen at the head of the network's input queue at least once")
(NIL BITS 6)
(EPREQUEUE POINTER) (* ;
 "Where to requeue this packet after transmission")
(NIL BYTE)
(EPSOCKET POINTER)
(NIL BYTE)
(EPNETWORK POINTER)
(EPTYPE WORD) (* ;
 "Type of packet to be encapsulated (PUP or XIP or 10TO3)")
(NIL WORD)
(EPTIMESTAMP FIXP) (* ;
 "Gets RCLK value when transmitted/received")
(EPREQUEUEFN POINTER) (* ; "FN to perform requeueing")
(NIL 4 WORD) (* ; "Space for expansion")
(EPLINK POINTER) (* ; "For queue maintenence")
(EPFLAGS BYTE) (* ;
 "optional flags for some applications")
(EPUSERFIELD POINTER) (* ;
 "Arbitrary pointer for applications")
(NIL BYTE)
(EPPLIST POINTER) (* ;
 "Extra field for use as an A-list for properties")
(EPTRANSMITTING FLAG) (* ;
 "True while packet is being transmitted and hence cannot be reused")
(EPRECEIVING FLAG) (* ;
 "True when a packet has been seen at the head of the network's input queue at least once")
(NIL BITS 6)
(EPREQUEUE POINTER) (* ;
 "Where to requeue this packet after transmission")
(NIL BYTE)
(EPSOCKET POINTER)
(NIL BYTE)
(EPNETWORK POINTER)
(EPTYPE WORD) (* ;
 "Type of packet to be encapsulated (PUP or XIP or 10TO3)")
(NIL WORD)
(EPTIMESTAMP FIXP) (* ;
 "Gets RCLK value when transmitted/received")
(EPREQUEUEFN POINTER) (* ; "FN to perform requeueing")
(NIL 4 WORD) (* ; "Space for expansion")
(* ;
 "Note: This next field wants to be quad+2 aligned so that the 10mb packet is quad+3 aligned")
(EPENCAPSULATION 8 WORD) (* ;
 "10mb encapsulation, or 3mb encapsulation with padding")
(EPBODY 289 WORD) (* ;
 "Body of packet, header up to 16 words plus data up to 546 bytes")
))
 "Note: This next field wants to be quad+2 aligned so that the 10mb packet is quad+3 aligned")
(EPENCAPSULATION 8 WORD) (* ;
 "10mb encapsulation, or 3mb encapsulation with padding")
(EPBODY 289 WORD) (* ;
 "Body of packet, header up to 16 words plus data up to 546 bytes")
))
(ACCESSFNS ETHERAUX ((AUXPTR (CDR (ASSOC 'AUXPTR (fetch EPPLIST of DATUM)))
(\EP.PUT.AUX DATUM 'AUXPTR NEWVALUE))
(AUXWORD (OR (CDR (ASSOC 'AUXWORD (fetch EPPLIST of DATUM)))
0)
(\EP.PUT.AUX DATUM 'AUXWORD NEWVALUE))
(AUXBYTE (OR (CDR (ASSOC 'AUXBYTE (fetch EPPLIST of DATUM)))
0)
(\EP.PUT.AUX DATUM 'AUXBYTE NEWVALUE))))
(\EP.PUT.AUX DATUM 'AUXPTR NEWVALUE))
(AUXWORD (OR (CDR (ASSOC 'AUXWORD (fetch EPPLIST of DATUM)))
0)
(\EP.PUT.AUX DATUM 'AUXWORD NEWVALUE))
(AUXBYTE (OR (CDR (ASSOC 'AUXBYTE (fetch EPPLIST of DATUM)))
0)
(\EP.PUT.AUX DATUM 'AUXBYTE NEWVALUE))))
)
(/DECLAREDATATYPE 'ETHERPACKET
@ -1140,26 +1137,26 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(ADDTOVAR SYSTEMRECLST
(DATATYPE ETHERPACKET ((NIL BYTE)
(EPLINK POINTER)
(EPFLAGS BYTE)
(EPUSERFIELD POINTER)
(NIL BYTE)
(EPPLIST POINTER)
(EPTRANSMITTING FLAG)
(EPRECEIVING FLAG)
(NIL BITS 6)
(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)))
(EPLINK POINTER)
(EPFLAGS BYTE)
(EPUSERFIELD POINTER)
(NIL BYTE)
(EPPLIST POINTER)
(EPTRANSMITTING FLAG)
(EPRECEIVING FLAG)
(NIL BITS 6)
(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)))
)
(DEFINEQ
@ -1499,21 +1496,21 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
HOSTNAMEP _ 'NILL])
(\ETHEREVENTFN
[LAMBDA (DEV EVENT) (* ; "Edited 3-May-2021 23:12 by larry")
[LAMBDA (DEV EVENT) (* ; "Edited 17-Dec-2025 11:01 by nhb")
(* ; "Edited 3-May-2021 23:12 by larry")
(PROG (NDB TURNOFFNS TIMESET)
(SELECTQ EVENT
((NIL AFTERLOGOUT AFTERSYSOUT AFTERMAKESYS AFTERSAVEVM RESTART)
(SETQ \PUP.READY (SETQ \NS.READY (SETQ \IP.READY)))
(OR (\ETHER-AVAILABLE)
(RETURN))
(\SETETHERFLAGS)
(\SETLOCALNSNUMBERS)
(\FLUSHNDBS EVENT)
(OR (\ETHER-AVAILABLE)
(RETURN))
(SETQ \10MBLOCALNDB (COND
(\10MBFLG (SETQ NDB (\10MB.CREATENDB \10MBFLG))
(COND
(\LOCALNDBS (replace NDBNEXT of
\LOCALNDBS
(\LOCALNDBS (replace NDBNEXT of \LOCALNDBS
with NDB))
(T (SETQ \LOCALNDBS NDB)))
NDB)))
@ -1536,10 +1533,10 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
((BEFOREMAKESYS BEFORELOGOUT BEFORESYSOUT BEFORESAVEVM)
(COND
((EQ EVENT 'BEFORESAVEVM) (* ;
 "Save passwords in place outside vmem to avoid having to reenter them later")
 "Save passwords in place outside vmem to avoid having to reenter them later")
(\STASH.PASSWORDS))
(T (* ;
 "No need to flush this before SAVEVM")
 "No need to flush this before SAVEVM")
(CLRHASH \ETHERPORTS)))
(CLRHASH LOGINPASSWORDS))
NIL])
@ -1706,40 +1703,40 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: DONTCOPY
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
(DATATYPE NDB ((NETTYPE BYTE) (* ; "10 or 3 for now")
(NDBNEXT POINTER) (* ; "Link to next NDB")
(NDBPUPNET# BYTE) (* ;
 "Pup number of this net. May be different from NS net number, though not in Xerox world")
(NDBNSNET# POINTER) (* ;
 "Can be 32-bits, so might as well leave its box around")
(NDBTASK# BYTE) (* ; "Task # of this network")
(NDBBROADCASTP POINTER) (* ;
 "Function that returns true if packet is of broadcast type")
(NDBPUPHOST# BYTE) (* ;
 "My pup address on this net. NS address is global to all nets, so not needed here")
(NDBTRANSMITTER POINTER) (* ;
 "(NDB PACKET) -- fn to send a raw packet on this net. returns NIL on failure")
(NIL BYTE)
(NDBENCAPSULATOR POINTER) (* ;
 "(NDB PACKET HOST LENGTH TYPE) -- fn to encapsulate and send a higher-level packet on this net ")
(NDBCSB POINTER) (* ; "Pointer to CSB for this network")
(NDBIQLENGTH BYTE)
(NDBIQ POINTER) (* ;
 "Queue of empty packets for receiver")
(NDBTQ POINTER) (* ; "Queue of packets to transmit")
(NDBTRANSLATIONS POINTER) (* ;
 "Cache of translations, 3:10 or 10:3 according to network")
(NDBETHERFLUSHER POINTER) (* ; "Turns off this ether. Args NDB")
(NDBWATCHER POINTER)
(NDBCANHEARSELF POINTER) (* ;
 "True if receiver can hear packets sent by transmitter")
(NDBIPNET# POINTER)
(NDBIPHOST# POINTER)
(NDBPUPTYPE WORD) (* ;
 "The packet encapsulation of PUP on this net")
(NIL WORD)
(NIL POINTER) (* ; "Spares")
))
(DATATYPE NDB ((NETTYPE BYTE) (* ; "10 or 3 for now")
(NDBNEXT POINTER) (* ; "Link to next NDB")
(NDBPUPNET# BYTE) (* ;
 "Pup number of this net. May be different from NS net number, though not in Xerox world")
(NDBNSNET# POINTER) (* ;
 "Can be 32-bits, so might as well leave its box around")
(NDBTASK# BYTE) (* ; "Task # of this network")
(NDBBROADCASTP POINTER) (* ;
 "Function that returns true if packet is of broadcast type")
(NDBPUPHOST# BYTE) (* ;
 "My pup address on this net. NS address is global to all nets, so not needed here")
(NDBTRANSMITTER POINTER) (* ;
 "(NDB PACKET) -- fn to send a raw packet on this net. returns NIL on failure")
(NIL BYTE)
(NDBENCAPSULATOR POINTER) (* ;
 "(NDB PACKET HOST LENGTH TYPE) -- fn to encapsulate and send a higher-level packet on this net ")
(NDBCSB POINTER) (* ; "Pointer to CSB for this network")
(NDBIQLENGTH BYTE)
(NDBIQ POINTER) (* ;
 "Queue of empty packets for receiver")
(NDBTQ POINTER) (* ; "Queue of packets to transmit")
(NDBTRANSLATIONS POINTER) (* ;
 "Cache of translations, 3:10 or 10:3 according to network")
(NDBETHERFLUSHER POINTER) (* ; "Turns off this ether. Args NDB")
(NDBWATCHER POINTER)
(NDBCANHEARSELF POINTER) (* ;
 "True if receiver can hear packets sent by transmitter")
(NDBIPNET# POINTER)
(NDBIPHOST# POINTER)
(NDBPUPTYPE WORD) (* ;
 "The packet encapsulation of PUP on this net")
(NIL WORD)
(NIL POINTER) (* ; "Spares")
))
(RECORD ROUTING (RTNET# RTHOPCOUNT RTGATEWAY# RTNDB RTTIMER RTRECENT))
)
@ -1786,26 +1783,24 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(PUTPROPS ENCAPSULATE.ETHERPACKET MACRO ((NDB PACKET HOST LENGTH TYPE)
(SPREADAPPLY* (fetch NDBENCAPSULATOR
of NDB)
NDB PACKET HOST LENGTH TYPE)))
(SPREADAPPLY* (fetch NDBENCAPSULATOR of NDB)
NDB PACKET HOST LENGTH TYPE)))
(PUTPROPS TRANSMIT.ETHERPACKET MACRO ((NDB PACKET)
(SPREADAPPLY* (fetch NDBTRANSMITTER of NDB)
NDB PACKET)))
(SPREADAPPLY* (fetch NDBTRANSMITTER of NDB)
NDB PACKET)))
(PUTPROPS BROADCASTP MACRO ((PACKET)
([LAMBDA (NDB)
(AND NDB (APPLY* (fetch NDBBROADCASTP of NDB)
PACKET NDB]
(fetch EPNETWORK of PACKET))))
([LAMBDA (NDB)
(AND NDB (APPLY* (fetch NDBBROADCASTP of NDB)
PACKET NDB]
(fetch EPNETWORK of PACKET))))
(PUTPROPS \CHECK.ROUTING.TABLE MACRO [(TABLE)
(if (NEQ (NTYPX TABLE)
\ROUTING.TABLE.TYPENUM)
then (CL:ERROR 'CONDITIONS:SIMPLE-TYPE-ERROR
:CULPRIT TABLE :EXPECTED-TYPE
'RoutingTable])
(if (NEQ (NTYPX TABLE)
\ROUTING.TABLE.TYPENUM)
then (CL:ERROR 'CONDITIONS:SIMPLE-TYPE-ERROR :CULPRIT TABLE
:EXPECTED-TYPE 'RoutingTable])
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
@ -1851,28 +1846,28 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(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)))
(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)))
)
(DEFINEQ
@ -2231,48 +2226,49 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(ACCESSFNS ETHERTRANS [(TRANSBODY (LOCF (fetch (ETHERPACKET EPBODY) of DATUM]
[BLOCKRECORD TRANSBODY ((TRANSOPERATION WORD)
[BLOCKRECORD TRANSBODY ((TRANSOPERATION WORD)
(* ; "Request or response")
(BASETRANSNSHOST 3 WORD)
(BASETRANSNSHOST 3 WORD)
(* ; "Known or desired NS address")
(TRANSPUPHOST BYTE)
(TRANSPUPHOST BYTE)
(* ; "Known or desired PUP address")
(NIL BYTE) (* ; "Padding")
(BASETRANSSENDERNSHOST 3 WORD)
(NIL BYTE) (* ; "Padding")
(BASETRANSSENDERNSHOST 3 WORD)
(* ; "Sender's info")
(TRANSSENDERPUPHOST BYTE)
(NIL BYTE))
[ACCESSFNS BASETRANSNSHOST ((TRANSNSHOST (\LOADNSHOSTNUMBER
(LOCF DATUM))
(\STORENSHOSTNUMBER (LOCF DATUM)
NEWVALUE]
(ACCESSFNS BASETRANSSENDERNSHOST ((TRANSSENDERNSHOST
(\LOADNSHOSTNUMBER (LOCF DATUM))
(\STORENSHOSTNUMBER (LOCF DATUM)
NEWVALUE]
[ACCESSFNS ETHERTRANS
([TRANSNSADDRESS
(PROGN (* ;
 "Kludge to get a pointer that looks like a full ns address")
(\ADDBASE DATUM (CONSTANT (+ (INDEXF (FETCH
(ETHERPACKET EPBODY)
of T))
(INDEXF (FETCH
(ETHERTRANS
(TRANSSENDERPUPHOST BYTE)
(NIL BYTE))
[ACCESSFNS BASETRANSNSHOST ((TRANSNSHOST (\LOADNSHOSTNUMBER (LOCF DATUM)
)
(\STORENSHOSTNUMBER (LOCF DATUM)
NEWVALUE]
(ACCESSFNS BASETRANSSENDERNSHOST ((TRANSSENDERNSHOST (\LOADNSHOSTNUMBER
(LOCF DATUM))
(\STORENSHOSTNUMBER
(LOCF DATUM)
NEWVALUE]
[ACCESSFNS ETHERTRANS
([TRANSNSADDRESS (PROGN (* ;
 "Kludge to get a pointer that looks like a full ns address")
(\ADDBASE
DATUM
(CONSTANT (+ (INDEXF (FETCH (ETHERPACKET EPBODY
)
of T))
(INDEXF (FETCH (ETHERTRANS
BASETRANSNSHOST
) of
T))
-2]
(TRANSSENDERNSADDRESS
(\ADDBASE DATUM (CONSTANT (+ (INDEXF (FETCH (ETHERPACKET
EPBODY)
of T))
(INDEXF (FETCH (ETHERTRANS
)
of T))
-2]
(TRANSSENDERNSADDRESS (\ADDBASE
DATUM
(CONSTANT (+ (INDEXF (FETCH (ETHERPACKET EPBODY)
of T))
(INDEXF (FETCH (ETHERTRANS
BASETRANSSENDERNSHOST
)
of T))
-2]
(TYPE? (type? ETHERPACKET DATUM)))
)
of T))
-2]
(TYPE? (type? ETHERPACKET DATUM)))
)
(DECLARE%: EVAL@COMPILE
@ -2571,7 +2567,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(RPAQ? \RAWTRACING )
(ADDTOVAR \PACKET.PRINTERS (512 . PRINTPUP)
(1537 . PRINT10TO3))
(1537 . PRINT10TO3))
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS \RAWTRACING \PACKET.PRINTERS PUPTRACEFILE XIPTRACEFILE \RCLKMILLISECOND)
@ -2615,7 +2611,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE
(BLOCKRECORD CENTICLOCK ((CENTICLOCKSIGNBIT BITS 1)
(CENTICLOCKMAGNITUDE BITS 31)))
(CENTICLOCKMAGNITUDE BITS 31)))
)
)
@ -2757,43 +2753,41 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: DONTCOPY
(DECLARE%: EVAL@COMPILE
(ACCESSFNS 3MBENCAPSULATION [(3MBENCAPSTART (LOCF (fetch (ETHERPACKET EPENCAPSULATION)
of DATUM]
(BLOCKRECORD 3MBENCAPSTART ((NIL 5 WORD)
(ACCESSFNS 3MBENCAPSULATION [(3MBENCAPSTART (LOCF (fetch (ETHERPACKET EPENCAPSULATION) of DATUM]
(BLOCKRECORD 3MBENCAPSTART ((NIL 5 WORD)
(* ; "waste space")
(3MBLENGTH WORD)
(3MBLENGTH WORD)
(* ;
 "Length of packet in words, starting at the next word")
(3MBDESTHOST BYTE)
 "Length of packet in words, starting at the next word")
(3MBDESTHOST BYTE)
(* ; "Immediate destination host")
(3MBSOURCEHOST BYTE)
(3MBSOURCEHOST BYTE)
(* ; "Us")
(3MBTYPE WORD)
(3MBTYPE WORD)
(* ;
 "Type of packet -- PUP or XIP or 10TO3")
)
[ACCESSFNS 3MBLENGTH ((3MBBASE (LOCF DATUM]
 "Type of packet -- PUP or XIP or 10TO3")
)
[ACCESSFNS 3MBLENGTH ((3MBBASE (LOCF DATUM]
(* ; "What to hand to BCPL")
)
(TYPE? (type? ETHERPACKET DATUM)))
)
(TYPE? (type? ETHERPACKET DATUM)))
(BLOCKRECORD PBI ((PBILINK WORD)
(PBIQUEUE WORD)
(PBISOCKET WORD)
(PBINDB WORD)
(PBIINPUTP FLAG)
(PBIALLNETSP FLAG)
(PBINOZEROP FLAG)
(NIL BITS 13)
(PBITIMER WORD)
(PBILENGTH WORD)
(PBIENCAPSULATION 2 WORD)
(PBIFIRSTPUPWORD 10 WORD)
(PBIFIRSTPUPDATAWORD WORD))
[ACCESSFNS PBI ((PBIPUPSTART (LOCF (fetch PBIFIRSTPUPWORD of DATUM)))
(PBIPUPDATASTART (LOCF (fetch PBIFIRSTPUPDATAWORD
of DATUM)))
(PBIRAWSTART (LOCF (fetch PBILENGTH of DATUM])
(PBIQUEUE WORD)
(PBISOCKET WORD)
(PBINDB WORD)
(PBIINPUTP FLAG)
(PBIALLNETSP FLAG)
(PBINOZEROP FLAG)
(NIL BITS 13)
(PBITIMER WORD)
(PBILENGTH WORD)
(PBIENCAPSULATION 2 WORD)
(PBIFIRSTPUPWORD 10 WORD)
(PBIFIRSTPUPDATAWORD WORD))
[ACCESSFNS PBI ((PBIPUPSTART (LOCF (fetch PBIFIRSTPUPWORD of DATUM)))
(PBIPUPDATASTART (LOCF (fetch PBIFIRSTPUPDATAWORD of DATUM)))
(PBIRAWSTART (LOCF (fetch PBILENGTH of DATUM])
)
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
@ -2879,8 +2873,8 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
T])
)
(RPAQQ ROUTINGINFOMACRO (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS
SEPR ") " -2 FINALLY ")"))
(RPAQQ ROUTINGINFOMACRO (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS SEPR
") " -2 FINALLY ")"))
(DECLARE%: EVAL@COMPILE DONTCOPY
(DECLARE%: DOEVAL@COMPILE DONTCOPY
@ -2913,10 +2907,10 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: DONTCOPY
(RPAQQ D0DEVICES ((\DEVICE.3MBETHERIN 7)
(\DEVICE.3MBETHEROUT 6)
(\DEVICE.10MBETHER 21)
(\DEVICE.SA4000 3)
(\DEVICE.DISPLAY 2)))
(\DEVICE.3MBETHEROUT 6)
(\DEVICE.10MBETHER 21)
(\DEVICE.SA4000 3)
(\DEVICE.DISPLAY 2)))
(DECLARE%: EVAL@COMPILE
(RPAQQ \DEVICE.3MBETHERIN 7)
@ -2947,33 +2941,31 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "END EXPORTED DEFINITIONS")
)
(PUTPROPS LLETHER COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 1991
1992 1993 2021))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (10792 19248 (CANONICAL.HOSTNAME 10802 . 12391) (\ENQUEUE 12393 . 15038) (\DEQUEUE 15040
. 16367) (\QUEUELENGTH 16369 . 16669) (\ONQUEUE 16671 . 16937) (\UNQUEUE 16939 . 19246)) (52949 56815
(\ALLOCATE.ETHERPACKET 52959 . 54000) (\RELEASE.ETHERPACKET 54002 . 55075) (RELEASE.PUP 55077 . 55222
) (\FLUSH.PACKET.QUEUE 55224 . 55575) (\REQUEUE.ETHERPACKET 55577 . 56091) (\EP.PUT.AUX 56093 . 56813)
) (57389 68770 (\SETLOCALNSNUMBERS 57399 . 58784) (\LOADNSADDRESS 58786 . 59078) (\STORENSADDRESS
59080 . 59261) (\PRINTNSADDRESS 59263 . 60346) (\NSADDRESS.DEFPRINT 60348 . 65293) (
\NSADDRESS.PRINT.DECIMAL 65295 . 67426) (\LOADNSHOSTNUMBER 67428 . 68057) (\STORENSHOSTNUMBER 68059 .
68463) (PRINTNSHOSTNUMBER 68465 . 68768)) (68883 74631 (\ETHERINIT 68893 . 69463) (\ETHEREVENTFN 69465
. 71997) (\ETHER-AVAILABLE 71999 . 72157) (\TIME.NOT.SET 72159 . 72485) (\SETETHERFLAGS 72487 . 72938
) (\FLUSHNDBS 72940 . 74118) (\FLUSH.NDB.QUEUE 74120 . 74629)) (74632 77924 (\CHECKSUM 74642 . 76574)
(\HANDLE.RAW.OTHER 76576 . 76931) (\HANDLE.RAW.PACKET 76933 . 77445) (\ADD.PACKET.FILTER 77447 . 77679
) (\DEL.PACKET.FILTER 77681 . 77922)) (85757 86282 (ENCAPSULATE.ETHERPACKET 85767 . 86039) (
TRANSMIT.ETHERPACKET 86041 . 86280)) (86570 99166 (\AGE.ROUTING.TABLE 86580 . 88729) (
\ADD.ROUTING.TABLE.ENTRY 88731 . 89427) (\CLEAR.ROUTING.TABLE 89429 . 90156) (\MAP.ROUTING.TABLE 90158
. 90686) (PRINTROUTINGTABLE 90688 . 94313) (\ROUTINGTABLE.INFOHOOK 94315 . 99164)) (99651 106436 (
\TRANSLATE.10TO3 99661 . 101445) (\NOTE.10TO3 101447 . 103063) (\HANDLE.RAW.10TO3 103065 . 106434)) (
110418 125240 (PRINTPACKET 110428 . 110989) (\MAYBEPRINTPACKET 110991 . 112648) (PRINT10TO3 112650 .
114018) (PRINTPACKETDATA 114020 . 119310) (PRINTPACKETQUEUE 119312 . 119741) (TIME.SINCE.PACKET 119743
. 120228) (MAKE-NETWORK-TRACE-WINDOW 120230 . 123772) (\CHANGE.ETHER.TRACING 123774 . 125238)) (
125611 126426 (\CENTICLOCK 125621 . 126424)) (126881 132981 (\3MBGETPACKET 126891 . 128311) (
\3MB.CREATENDB 128313 . 129028) (\3MBSENDPACKET 129030 . 131213) (\3MBWATCHER 131215 . 131953) (
\3MBENCAPSULATE 131955 . 132503) (\3MB.BROADCASTP 132505 . 132676) (\3MBFLUSH 132678 . 132979)) (
135935 137878 (ASSURE.ETHER.ON 135945 . 136275) (INITPUPLEVEL1 136277 . 136757) (TURN.ON.ETHER 136759
. 136904) (RESTART.ETHER 136906 . 137280) (TURN.OFF.ETHER 137282 . 137600) (PRINTWORDS 137602 .
137876)) (138153 138688 (\DEVICE.INPUT 138163 . 138328) (\DEVICE.OUTPUT 138330 . 138524) (\D0.STARTIO
138526 . 138686)))))
(FILEMAP (NIL (10584 19040 (CANONICAL.HOSTNAME 10594 . 12183) (\ENQUEUE 12185 . 14830) (\DEQUEUE 14832
. 16159) (\QUEUELENGTH 16161 . 16461) (\ONQUEUE 16463 . 16729) (\UNQUEUE 16731 . 19038)) (52599 56465
(\ALLOCATE.ETHERPACKET 52609 . 53650) (\RELEASE.ETHERPACKET 53652 . 54725) (RELEASE.PUP 54727 . 54872
) (\FLUSH.PACKET.QUEUE 54874 . 55225) (\REQUEUE.ETHERPACKET 55227 . 55741) (\EP.PUT.AUX 55743 . 56463)
) (57039 68420 (\SETLOCALNSNUMBERS 57049 . 58434) (\LOADNSADDRESS 58436 . 58728) (\STORENSADDRESS
58730 . 58911) (\PRINTNSADDRESS 58913 . 59996) (\NSADDRESS.DEFPRINT 59998 . 64943) (
\NSADDRESS.PRINT.DECIMAL 64945 . 67076) (\LOADNSHOSTNUMBER 67078 . 67707) (\STORENSHOSTNUMBER 67709 .
68113) (PRINTNSHOSTNUMBER 68115 . 68418)) (68533 74306 (\ETHERINIT 68543 . 69113) (\ETHEREVENTFN 69115
. 71672) (\ETHER-AVAILABLE 71674 . 71832) (\TIME.NOT.SET 71834 . 72160) (\SETETHERFLAGS 72162 . 72613
) (\FLUSHNDBS 72615 . 73793) (\FLUSH.NDB.QUEUE 73795 . 74304)) (74307 77599 (\CHECKSUM 74317 . 76249)
(\HANDLE.RAW.OTHER 76251 . 76606) (\HANDLE.RAW.PACKET 76608 . 77120) (\ADD.PACKET.FILTER 77122 . 77354
) (\DEL.PACKET.FILTER 77356 . 77597)) (85103 85628 (ENCAPSULATE.ETHERPACKET 85113 . 85385) (
TRANSMIT.ETHERPACKET 85387 . 85626)) (85916 98512 (\AGE.ROUTING.TABLE 85926 . 88075) (
\ADD.ROUTING.TABLE.ENTRY 88077 . 88773) (\CLEAR.ROUTING.TABLE 88775 . 89502) (\MAP.ROUTING.TABLE 89504
. 90032) (PRINTROUTINGTABLE 90034 . 93659) (\ROUTINGTABLE.INFOHOOK 93661 . 98510)) (98997 105782 (
\TRANSLATE.10TO3 99007 . 100791) (\NOTE.10TO3 100793 . 102409) (\HANDLE.RAW.10TO3 102411 . 105780)) (
109772 124594 (PRINTPACKET 109782 . 110343) (\MAYBEPRINTPACKET 110345 . 112002) (PRINT10TO3 112004 .
113372) (PRINTPACKETDATA 113374 . 118664) (PRINTPACKETQUEUE 118666 . 119095) (TIME.SINCE.PACKET 119097
. 119582) (MAKE-NETWORK-TRACE-WINDOW 119584 . 123126) (\CHANGE.ETHER.TRACING 123128 . 124592)) (
124961 125776 (\CENTICLOCK 124971 . 125774)) (126227 132327 (\3MBGETPACKET 126237 . 127657) (
\3MB.CREATENDB 127659 . 128374) (\3MBSENDPACKET 128376 . 130559) (\3MBWATCHER 130561 . 131299) (
\3MBENCAPSULATE 131301 . 131849) (\3MB.BROADCASTP 131851 . 132022) (\3MBFLUSH 132024 . 132325)) (
135069 137012 (ASSURE.ETHER.ON 135079 . 135409) (INITPUPLEVEL1 135411 . 135891) (TURN.ON.ETHER 135893
. 136038) (RESTART.ETHER 136040 . 136414) (TURN.OFF.ETHER 136416 . 136734) (PRINTWORDS 136736 .
137010)) (137283 137818 (\DEVICE.INPUT 137293 . 137458) (\DEVICE.OUTPUT 137460 . 137654) (\D0.STARTIO
137656 . 137816)))))
STOP

Binary file not shown.