From 16fa8c6a2463967bb18f038d1e3ecc71d4ede5d5 Mon Sep 17 00:00:00 2001 From: Nick Briggs Date: Wed, 17 Dec 2025 13:08:38 -0800 Subject: [PATCH] Updates \ETHEREVENTFN to remove early 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). --- sources/LLETHER | 520 +++++++++++++++++++++---------------------- sources/LLETHER.LCOM | Bin 43862 -> 43618 bytes 2 files changed, 254 insertions(+), 266 deletions(-) diff --git a/sources/LLETHER b/sources/LLETHER index 6bc70986..7171a26e 100644 --- a/sources/LLETHER +++ b/sources/LLETHER @@ -1,15 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 3-May-2021 23:13:56" {DSK}larry>ilisp>medley>sources>LLETHER.;4 139646 - changes to%: (FNS \ETHEREVENTFN \ETHER-AVAILABLE) - (VARS LLETHERCOMS) +(FILECREATED "20-Dec-2025 14:12:06" {DSK}briggs>projects>medley>sources>LLETHER.;2 138541 - previous date%: " 2-May-2021 12:37:02" {DSK}larry>ilisp>medley>sources>LLETHER.;3) + :CHANGES-TO (FNS \ETHEREVENTFN) + :PREVIOUS-DATE "17-Dec-2025 11:02:51" {DSK}briggs>projects>medley>sources>LLETHER.;1) -(* ; " -Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation. -") (PRETTYCOMPRINT LLETHERCOMS) @@ -17,19 +13,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 +120,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 +164,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 +187,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 +203,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 +357,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 +377,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 +1135,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 +1494,19 @@ 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) (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 +1529,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 +1699,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 +1779,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 +1842,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 +2222,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 +2563,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 +2607,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 +2749,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 +2869,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 +2903,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 +2937,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 (10564 19020 (CANONICAL.HOSTNAME 10574 . 12163) (\ENQUEUE 12165 . 14810) (\DEQUEUE 14812 + . 16139) (\QUEUELENGTH 16141 . 16441) (\ONQUEUE 16443 . 16709) (\UNQUEUE 16711 . 19018)) (52579 56445 + (\ALLOCATE.ETHERPACKET 52589 . 53630) (\RELEASE.ETHERPACKET 53632 . 54705) (RELEASE.PUP 54707 . 54852 +) (\FLUSH.PACKET.QUEUE 54854 . 55205) (\REQUEUE.ETHERPACKET 55207 . 55721) (\EP.PUT.AUX 55723 . 56443) +) (57019 68400 (\SETLOCALNSNUMBERS 57029 . 58414) (\LOADNSADDRESS 58416 . 58708) (\STORENSADDRESS +58710 . 58891) (\PRINTNSADDRESS 58893 . 59976) (\NSADDRESS.DEFPRINT 59978 . 64923) ( +\NSADDRESS.PRINT.DECIMAL 64925 . 67056) (\LOADNSHOSTNUMBER 67058 . 67687) (\STORENSHOSTNUMBER 67689 . +68093) (PRINTNSHOSTNUMBER 68095 . 68398)) (68513 74207 (\ETHERINIT 68523 . 69093) (\ETHEREVENTFN 69095 + . 71573) (\ETHER-AVAILABLE 71575 . 71733) (\TIME.NOT.SET 71735 . 72061) (\SETETHERFLAGS 72063 . 72514 +) (\FLUSHNDBS 72516 . 73694) (\FLUSH.NDB.QUEUE 73696 . 74205)) (74208 77500 (\CHECKSUM 74218 . 76150) +(\HANDLE.RAW.OTHER 76152 . 76507) (\HANDLE.RAW.PACKET 76509 . 77021) (\ADD.PACKET.FILTER 77023 . 77255 +) (\DEL.PACKET.FILTER 77257 . 77498)) (85004 85529 (ENCAPSULATE.ETHERPACKET 85014 . 85286) ( +TRANSMIT.ETHERPACKET 85288 . 85527)) (85817 98413 (\AGE.ROUTING.TABLE 85827 . 87976) ( +\ADD.ROUTING.TABLE.ENTRY 87978 . 88674) (\CLEAR.ROUTING.TABLE 88676 . 89403) (\MAP.ROUTING.TABLE 89405 + . 89933) (PRINTROUTINGTABLE 89935 . 93560) (\ROUTINGTABLE.INFOHOOK 93562 . 98411)) (98898 105683 ( +\TRANSLATE.10TO3 98908 . 100692) (\NOTE.10TO3 100694 . 102310) (\HANDLE.RAW.10TO3 102312 . 105681)) ( +109673 124495 (PRINTPACKET 109683 . 110244) (\MAYBEPRINTPACKET 110246 . 111903) (PRINT10TO3 111905 . +113273) (PRINTPACKETDATA 113275 . 118565) (PRINTPACKETQUEUE 118567 . 118996) (TIME.SINCE.PACKET 118998 + . 119483) (MAKE-NETWORK-TRACE-WINDOW 119485 . 123027) (\CHANGE.ETHER.TRACING 123029 . 124493)) ( +124862 125677 (\CENTICLOCK 124872 . 125675)) (126128 132228 (\3MBGETPACKET 126138 . 127558) ( +\3MB.CREATENDB 127560 . 128275) (\3MBSENDPACKET 128277 . 130460) (\3MBWATCHER 130462 . 131200) ( +\3MBENCAPSULATE 131202 . 131750) (\3MB.BROADCASTP 131752 . 131923) (\3MBFLUSH 131925 . 132226)) ( +134970 136913 (ASSURE.ETHER.ON 134980 . 135310) (INITPUPLEVEL1 135312 . 135792) (TURN.ON.ETHER 135794 + . 135939) (RESTART.ETHER 135941 . 136315) (TURN.OFF.ETHER 136317 . 136635) (PRINTWORDS 136637 . +136911)) (137184 137719 (\DEVICE.INPUT 137194 . 137359) (\DEVICE.OUTPUT 137361 . 137555) (\D0.STARTIO +137557 . 137717))))) STOP diff --git a/sources/LLETHER.LCOM b/sources/LLETHER.LCOM index 6398f6660e2eb31a8c436049516f9925154e2f2f..4250c3b100c994dd2ec893225ad44272612afc7a 100644 GIT binary patch delta 2520 zcmaJ?O>7%g5cY0Ds|FPM-&84d>NagcWwY`HD?(!RhmclH z5k&}$IDilwTK2*Lfz%U1LTc-lYbDf!;RK?pkT_9^3#TB2xPV~ZuAMlkR3FxF=DnRa z^L^jUK71%XdLUk#$x$g~HRn=Pq6&~qme4FENf=MgU3~4*`Gw{@TwH`C483Ksske{3 zzSO+DbnKPO=g*#9I(F&u#S6{3D@)g}?QYQtNUn<{saZuy!WAB9;m|ysUxcA#p;j(K z|G{)RorL+>D|pdk0ko{7CMSl*3r^Y2S8X$}t;Y^wzIbR4JUPDw3PjeG41u9+zGS*Z zo23E|#tSZkh8>jbsy%JHLBXAXtdDEQtFe@Y7ebO~efW^9M6(Lw^JF|mKM_-hEew;l zU9(~bUc80^5NMP<7H}_{fW$`$F(FL)p(Qqj6X93lK|v0G6rU4`5iX0PEklROlo@yx z&{c5!-kXrop^-OT&vo)WV~%oZp*54vpS1s>ONiz)j=%`Afo*}!H2Mh01FcLv_yE@VS*MBjG*-nm@~ z{H;Fjg*QgNK5#RCmb;hRd(8RnYFl^lWo+L`hF5p*ZJpbk7?+8J$yZAzD*-i(zBQ)J z0(7T+tZc@sS_~+api%bnQ?W_(3|8YhLAr?a&6rrMMlpHMN2-a6n;4)PAQnIr4H{S? zvxC5?*k}`Ip@Y8-M8dm>RLP}d<+)Z4bi|}kuCWpt40PlYU&X7k8!Tf>*VfIc-l@fNCmtwE8@%(K}LSUM&EsN?ivAiyTVN zQ8A}%R_9=7z%!*1mSzPOyEHr3%*`$}ff(@)F(klCIRnQ_;BM>#2~IkGP&M;5#>GbP z5<)`s!z6g3riPP4J6eF{`zSdAiX1HhgcxMC>m*vdKzNbVm0&n2cz3L^WwO>r@%Qg@ z5i15HPbVQmaU?h=F}u{W`UC{lSf;r!jWoW-18hHB}@eW?z;v5ZG131V=zD0D?`@(*)&Z zyIx?Yi4=HpB=`uw*d)3E6}y6h(Xpb4+2s?Z1_tb#Y%TEd6uh|jt-CFyoB$-DE4QIS3q&>SIrrY z5S0jDMs*pKFA=o9nZZL6BxKDU1fe;OkY->XPB0yBA~KEPrL-R$98+@dCW5osuVn+k zZ|z|)2)w{YIOjrD*1Urs#%@NKK2Hp#y(H72Z3shJpcdz delta 2791 zcmZuzU5p!774~?y+p<-o7NyC;O60^<(p}nh=iaer##WQ=*uM4-JDzc8#+w)x=r*yM zE!*{WlU9u&G73L0MFKHG@PMewDln~gG(jGSNz`VD_rLWalLF9WrOEvDR-s!%HH-)_bT;v zDMw$gMeDboz1DlBdvRxLfB)vi?VY5leWuTrX+Fo;@e#UJHmtH<$kB`Pgq^(0{qp&Ij;?OqzyK zd#_zrvB5h>{P*{yu<=?$wOspIZL(S`fv)(-b%}^ZksL(NM>rNarsic$JI&vuTiS2nmI(kqj zQWS@+AVN8*>Xn@+3aUVp89HssJAi1dgJPJp>5eTMryUu^64h&BgA7g=H~nb5L7nUR zjTP~H+d(yTD#s#B?|1v#eEgS!u9mJE=$ z>V<1gv_=Nw$8#OQMKPB1E#Pn|2y1|a+tlCmg6eu|vyx2ScjJ5mRJ-H=8(Rm4LCcSb zS$K#O!WhsIGjSdei9{T`O+gG$!Iql=DDY)^vyx9a>(?q&0>*W(9j(EL$c8g^;%2As z`H|mlRs{HG8){jRu&T-M1?`x)S%ODj?!jSd1xcibG@W%3b%2mjBpE(uvbJ$8+S|I)t!!QIf>P-d zhKq5j#3hYeLS-Y{5rlQG0dQCfh%!J+Af={;1zt%MJOv9gMtmsFZTR3*+-b>nr!{6Z z1h+e<9ZCsn7gp0aPdvtE($JnU7iz=zR(H;R&>7CErQz)1&kr*Hb%&|Pa7LQ{aEEDa zhgoU2Y8vbtp_zla(xL zie?3G9kh%IKjWSPJS{1y^vsUQBFSdx`t$;~&E((KVjmUYhM7u|TWP5{=QK%ij`lM_ zMWLjsYKa6uXeH1ocA}f6&4GRl+VU7!K-s@r*)PTVFG+zMZL~K$9 z+-8FV`?uO0_+dSeNp6)F=Dw{;GWc=%b6Ve`3KYH$3{tp{h-%y8LZEF=QkbEgN}J($ zjvhLlyal1RCxpzw-RFoy|6jof<;zxB;B@W@)$RH!309!cxuhPU{+P;Dh9-_F+S>$r zvRn+Ub?OcVbe@A$Z90pQ<0dw$8UsEPfIw%~_$HjHr=FD(5lPra`Q@0e%KYLmI&1dj?`EanE+zy|5 z@`74>$4ooP@X_6D=J2O#?cI~=?@cu(AB1N$GdcX~sTrW2JREh-0q{3~z(m;6_|Dwu?!MNg^K`kp-+P0qz5Tu3{??7{-Y!~W p37;hx3^^3!P?Uoy2TKk%27DD^U^I_WdY2$fd?PL|&-<=7|9>5T&vF0&