Avoids making copy of \10MBLOCALNDB as \MAIKO.10MB.NDB for \MAIKO.ETHER-INTERRUPT
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
|
||||
|
||||
(FILECREATED "25-Oct-2021 15:12:33" |{DSK}<home>larry>medley>sources>MAIKOETHER.;2| 28792
|
||||
(FILECREATED "30-Dec-2025 19:09:34" |{DSK}<Users>briggs>projects>medley>sources>MAIKOETHER.;7| 26899
|
||||
|
||||
|changes| |to:| (FNS \\DISPLAYLINE)
|
||||
(VARS MAIKOETHERCOMS)
|
||||
:EDIT-BY |nhb|
|
||||
|
||||
|previous| |date:| "25-Mar-2021 09:50:57" |{DSK}<home>larry>medley>sources>MAIKOETHER.;1|)
|
||||
:CHANGES-TO (VARS MAIKOETHERCOMS)
|
||||
|
||||
:PREVIOUS-DATE "30-Dec-2025 18:50:46" |{DSK}<Users>briggs>projects>medley>sources>MAIKOETHER.;6|
|
||||
)
|
||||
|
||||
; Copyright (c) 1988-1991, 2021 by Venue & Xerox Corporation.
|
||||
|
||||
(PRETTYCOMPRINT MAIKOETHERCOMS)
|
||||
|
||||
@@ -23,10 +23,6 @@
|
||||
(DECLARE\: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
|
||||
10MBDRIVER)
|
||||
(GLOBALVARS \\MAIKO.INPUT.PACKET |\\ETHERtopMonitor|)
|
||||
|
||||
(* |;;| "The NDB for Maiko's 10MB connection; used by \\MAIKO.ETHER-INTERRUPT:")
|
||||
|
||||
(GLOBALVARS \\MAIKO.10MB.NDB)
|
||||
(GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR))
|
||||
(ADDVARS (\\MAIKO.MOVDS (\\MAIKO.10MBSTARTDRIVER \\10MB.STARTDRIVER)
|
||||
(\\MAIKO.10MBWATCHER \\10MBWATCHER)
|
||||
@@ -35,9 +31,13 @@
|
||||
(\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER)
|
||||
(\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER)
|
||||
(\\MAIKO.CHECKSUM \\CHECKSUM)))
|
||||
(COMS (* \; "MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.")
|
||||
(COMS
|
||||
(* |;;| "MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.")
|
||||
|
||||
(FNS \\MAIKO.ETHER-INTERRUPT))
|
||||
(COMS (* \; "MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing.")
|
||||
(COMS
|
||||
(* |;;| "MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing.")
|
||||
|
||||
(FNS \\MAIKO.CONSOLE-LOG-PRINT))
|
||||
(COMS
|
||||
(* |;;| "Asynchronous I/O handling")
|
||||
@@ -48,13 +48,12 @@
|
||||
(DEFINEQ
|
||||
|
||||
(\\10MB.RESTART.ETHER
|
||||
(LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER")
|
||||
(LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER")
|
||||
(SUBRCALL ETHER-RESUME)))
|
||||
|
||||
(\\10MB.STARTDRIVER
|
||||
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 5-Apr-89 15:03 by snow")
|
||||
(DECLARE (GLOBALVARS \\MAIKO.INPUT.PACKET \\10MB.EXPECTED.RECEIVE.INTERVAL
|
||||
\\10MB.INPUT.TIMEOUT))
|
||||
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 5-Apr-89 15:03 by snow")
|
||||
(DECLARE (GLOBALVARS \\MAIKO.INPUT.PACKET \\10MB.EXPECTED.RECEIVE.INTERVAL \\10MB.INPUT.TIMEOUT))
|
||||
(SUBRCALL ETHER-SUSPEND)
|
||||
(OR (\\INIT.ETHER.BUFFER.POOL)
|
||||
(ERROR "Unable to create buffer pool"))
|
||||
@@ -65,21 +64,17 @@
|
||||
0 0)
|
||||
(PROG ((CSB (|fetch| NDBCSB |of| NDB)))
|
||||
(OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)))
|
||||
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with|
|
||||
\\ES.PENDING)
|
||||
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of|
|
||||
\\MAIKO.INPUT.PACKET
|
||||
))
|
||||
(|replace| NDBWATCHER |of| NDB |with| (ADD.PROCESS (LIST '\\10MBWATCHER
|
||||
(KWOTE NDB))
|
||||
'RESTARTABLE
|
||||
'SYSTEM
|
||||
'AFTEREXIT
|
||||
'DELETE))
|
||||
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
|
||||
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| \\MAIKO.INPUT.PACKET))
|
||||
(|replace| NDBWATCHER |of| NDB |with| (ADD.PROCESS (LIST '\\10MBWATCHER (KWOTE NDB))
|
||||
'RESTARTABLE
|
||||
'SYSTEM
|
||||
'AFTEREXIT
|
||||
'DELETE))
|
||||
(RETURN NDB))))
|
||||
|
||||
(\\10MB.TURNOFFETHER
|
||||
(LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER")
|
||||
(LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER")
|
||||
(SUBRCALL ETHER-SUSPEND)))
|
||||
|
||||
(\\10MB.TURNONETHER
|
||||
@@ -92,20 +87,16 @@
|
||||
|
||||
(PROG ((CSB (|fetch| NDBCSB |of| NDB)))
|
||||
(\\MAIKO.ETHERSUSPEND)
|
||||
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB
|
||||
(LOCF (|fetch| DLETHERNET
|
||||
|of| \\IOPAGE)))))
|
||||
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (LOCF (|fetch| DLETHERNET |of| \\IOPAGE
|
||||
)))))
|
||||
(|replace| DLFIRSTOCB |of| CSB |with| 0)
|
||||
(|replace| DLFIRSTICB |of| CSB |with| 0)
|
||||
(AND NSHOSTNUMBER (COND
|
||||
((EQ NSHOSTNUMBER T)
|
||||
(\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
|
||||
(LOCF (|fetch| (IFPAGE |NSHost0|) |of|
|
||||
|\\InterfacePage|)
|
||||
)
|
||||
(LOCF (|fetch| (IFPAGE |NSHost0|) |of| |\\InterfacePage|))
|
||||
\\#WDS.NSHOSTNUMBER))
|
||||
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of|
|
||||
CSB))
|
||||
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
|
||||
NSHOSTNUMBER))))
|
||||
(AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT))
|
||||
(AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT))
|
||||
@@ -117,7 +108,7 @@
|
||||
(RETURN NDB))))
|
||||
|
||||
(\\10MBSENDPACKET
|
||||
(LAMBDA (NDB PACKET) (* \; "Edited 11-May-88 16:10 by MASINTER")
|
||||
(LAMBDA (NDB PACKET) (* \; "Edited 11-May-88 16:10 by MASINTER")
|
||||
(PROG NIL
|
||||
(COND
|
||||
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWPUT)))
|
||||
@@ -125,23 +116,23 @@
|
||||
((OR (|fetch| 10MBMULTICASTP |of| PACKET)
|
||||
(EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTHOSTBASE |of| PACKET)))
|
||||
(* \;
|
||||
"We would hear this packet if our hardware let us, so fake receipt")
|
||||
"We would hear this packet if our hardware let us, so fake receipt")
|
||||
(PROG ((COPYPACKET (\\ALLOCATE.ETHERPACKET)))
|
||||
(\\BLT (LOCF (|fetch| 10MBLENGTH |of| COPYPACKET))
|
||||
(LOCF (|fetch| 10MBLENGTH |of| PACKET))
|
||||
(ADD1 (|fetch| 10MBLENGTH |of| PACKET)))
|
||||
(* \;
|
||||
"Copy all data that would have been transmitted")
|
||||
"Copy all data that would have been transmitted")
|
||||
(|replace| EPNETWORK |of| COPYPACKET |with| NDB)
|
||||
(|replace| EPTYPE |of| COPYPACKET
|
||||
|with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|
||||
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|
||||
|when| (EQ TYPE (CAR PAIR)) |do|
|
||||
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|
||||
|when| (EQ TYPE (CAR PAIR)) |do|
|
||||
|
||||
(* |;;| "TYPE is the raw type of the etherpacket. These do not always correspond one-to-one with the EPTYPE constants we use (in particular, for pups), so translate if necessary.")
|
||||
|
||||
(RETURN (CDR PAIR))
|
||||
|finally| (RETURN TYPE)))
|
||||
(RETURN (CDR PAIR))
|
||||
|finally| (RETURN TYPE)))
|
||||
(COND
|
||||
(\\RAWTRACING (\\MAYBEPRINTPACKET COPYPACKET 'RAWGET)))
|
||||
(\\HANDLE.RAW.PACKET COPYPACKET))))
|
||||
@@ -154,20 +145,21 @@
|
||||
(RETURN T))))
|
||||
|
||||
(\\10MBWATCHER
|
||||
(LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER")
|
||||
(LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER")
|
||||
|
||||
(* |;;| "merge message and packet reading")
|
||||
|
||||
(PROG ((CNTR 0)
|
||||
MESSAGE-BUFFER MESSAGE-LENGTH PACKET)
|
||||
LP (IF (SUBRCALL MESSAGE-READP)
|
||||
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ
|
||||
(OR MESSAGE-BUFFER
|
||||
(SETQ MESSAGE-BUFFER
|
||||
(ALLOCSTRING 1024)))
|
||||
1024))
|
||||
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
|
||||
ELSE "?? system message: polling failed")))
|
||||
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ (OR MESSAGE-BUFFER
|
||||
(SETQ
|
||||
MESSAGE-BUFFER
|
||||
(ALLOCSTRING
|
||||
1024)))
|
||||
1024))
|
||||
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
|
||||
ELSE "?? system message: polling failed")))
|
||||
(UNINTERRUPTABLY
|
||||
(SUBRCALL ETHER-CHECK)
|
||||
(SETQ PACKET (\\MAIKO.INPUT.INTERRUPT NDB)))
|
||||
@@ -182,31 +174,31 @@
|
||||
(GO LP))))
|
||||
|
||||
(\\MAIKO.10MBSENDPACKET
|
||||
(LAMBDA (NDB PACKET) (* \; "Edited 31-Oct-89 14:10 by bvm")
|
||||
(LAMBDA (NDB PACKET) (* \; "Edited 31-Oct-89 14:10 by bvm")
|
||||
(PROG NIL
|
||||
(COND
|
||||
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWPUT)))
|
||||
(COND
|
||||
((OR (|fetch| 10MBMULTICASTP |of| PACKET)
|
||||
(EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTNSADDRESSBASE |of| PACKET
|
||||
)))(* \;
|
||||
"We would hear this packet if our hardware let us, so fake receipt")
|
||||
(EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTNSADDRESSBASE |of| PACKET)))
|
||||
(* \;
|
||||
"We would hear this packet if our hardware let us, so fake receipt")
|
||||
(PROG ((COPYPACKET (\\ALLOCATE.ETHERPACKET)))
|
||||
(\\BLT (LOCF (|fetch| 10MBLENGTH |of| COPYPACKET))
|
||||
(LOCF (|fetch| 10MBLENGTH |of| PACKET))
|
||||
(ADD1 (|fetch| 10MBLENGTH |of| PACKET)))
|
||||
(* \;
|
||||
"Copy all data that would have been transmitted")
|
||||
"Copy all data that would have been transmitted")
|
||||
(|replace| EPNETWORK |of| COPYPACKET |with| NDB)
|
||||
(|replace| EPTYPE |of| COPYPACKET
|
||||
|with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|
||||
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|
||||
|when| (EQ TYPE (CAR PAIR)) |do|
|
||||
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|
||||
|when| (EQ TYPE (CAR PAIR)) |do|
|
||||
|
||||
(* |;;| "TYPE is the raw type of the etherpacket. These do not always correspond one-to-one with the EPTYPE constants we use (in particular, for pups), so translate if necessary.")
|
||||
|
||||
(RETURN (CDR PAIR))
|
||||
|finally| (RETURN TYPE)))
|
||||
(RETURN (CDR PAIR))
|
||||
|finally| (RETURN TYPE)))
|
||||
(COND
|
||||
(\\RAWTRACING (\\MAYBEPRINTPACKET COPYPACKET 'RAWGET)))
|
||||
(\\HANDLE.RAW.PACKET COPYPACKET))))
|
||||
@@ -219,20 +211,21 @@
|
||||
(RETURN T))))
|
||||
|
||||
(\\MAIKO.10MBWATCHER
|
||||
(LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER")
|
||||
(LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER")
|
||||
|
||||
(* |;;| "merge message and packet reading")
|
||||
|
||||
(PROG ((CNTR 0)
|
||||
MESSAGE-BUFFER MESSAGE-LENGTH PACKET)
|
||||
LP (IF (SUBRCALL MESSAGE-READP)
|
||||
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ
|
||||
(OR MESSAGE-BUFFER
|
||||
(SETQ MESSAGE-BUFFER
|
||||
(ALLOCSTRING 1024)))
|
||||
1024))
|
||||
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
|
||||
ELSE "?? system message: polling failed")))
|
||||
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ (OR MESSAGE-BUFFER
|
||||
(SETQ
|
||||
MESSAGE-BUFFER
|
||||
(ALLOCSTRING
|
||||
1024)))
|
||||
1024))
|
||||
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
|
||||
ELSE "?? system message: polling failed")))
|
||||
(UNINTERRUPTABLY
|
||||
(SUBRCALL ETHER-CHECK)
|
||||
(SETQ PACKET (\\MAIKO.INPUT.INTERRUPT NDB)))
|
||||
@@ -247,15 +240,15 @@
|
||||
(GO LP))))
|
||||
|
||||
(\\MAIKO.ETHERRESUME
|
||||
(LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER")
|
||||
(LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER")
|
||||
(SUBRCALL ETHER-RESUME)))
|
||||
|
||||
(\\MAIKO.ETHERSUSPEND
|
||||
(LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER")
|
||||
(LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER")
|
||||
(SUBRCALL ETHER-SUSPEND)))
|
||||
|
||||
(\\MAIKO.INPUT.INTERRUPT
|
||||
(LAMBDA (NDB) (* \; "Edited 11-May-88 16:05 by MASINTER")
|
||||
(LAMBDA (NDB) (* \; "Edited 11-May-88 16:05 by MASINTER")
|
||||
|
||||
(* |;;| "This routine gets called when 10MB input signals an interrupt. See if the \\MAIKO.INPUT.PACKET has indeed been processed, and if so, take care of it")
|
||||
|
||||
@@ -266,43 +259,38 @@
|
||||
(|replace| 10MBLENGTH |of| PACKET |with| LENGTH)
|
||||
(\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET)))
|
||||
(|replace| EPNETWORK |of| PACKET |with| NDB)
|
||||
(|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in|
|
||||
\\10MBTYPE.TRANSLATIONS
|
||||
|bind| (TYPE _
|
||||
(|fetch|
|
||||
10MBTYPE
|
||||
|of| PACKET
|
||||
))
|
||||
|when| (EQ TYPE (CAR PAIR))
|
||||
|do| (RETURN (CDR PAIR))
|
||||
|finally| (RETURN TYPE)))
|
||||
(|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|
||||
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|
||||
|when| (EQ TYPE (CAR PAIR))
|
||||
|do| (RETURN (CDR PAIR))
|
||||
|finally| (RETURN TYPE)))
|
||||
(COND
|
||||
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET)))
|
||||
(RETURN (PROG1 PACKET
|
||||
(SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))
|
||||
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB)
|
||||
|with| \\ES.PENDING)
|
||||
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE
|
||||
|of| \\MAIKO.INPUT.PACKET))))
|
||||
)
|
||||
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
|
||||
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of|
|
||||
\\MAIKO.INPUT.PACKET
|
||||
)))))
|
||||
(T (RETURN NIL))))))
|
||||
|
||||
(\\NS.SETTIME
|
||||
(LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER")
|
||||
(LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER")
|
||||
(CL:UNLESS (AND RETFLG (NOT (STRINGP RETFLG)))
|
||||
(SETQ |\\TimeZoneComp| (SUBRCALL GETUNIXTIME 8 NIL)))
|
||||
(\\PROCESS.RESET.TIMERS)
|
||||
(DAYTIME)))
|
||||
|
||||
(\\PUP.SETTIME
|
||||
(LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER")
|
||||
(LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER")
|
||||
(CL:UNLESS (AND RETFLG (NOT (STRINGP RETFLG)))
|
||||
(SETQ |\\TimeZoneComp| (SUBRCALL GETUNIXTIME 8 NIL)))
|
||||
(\\PROCESS.RESET.TIMERS)
|
||||
(DAYTIME)))
|
||||
|
||||
(\\MAIKO.10MBSTARTDRIVER
|
||||
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 4-May-91 15:50 by jds")
|
||||
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 30-Dec-2025 18:50 by nhb")
|
||||
(* \; "Edited 4-May-91 15:50 by jds")
|
||||
|
||||
(* |;;| "Start the \"driver\" for the 10MB ethernet on Sun Medley. In particular, turn on the C ehternet code, queue up the first input packet, and start the \\10MBWATCHER process.")
|
||||
|
||||
@@ -312,13 +300,11 @@
|
||||
(|replace| NDBTQ |of| NDB |with| (|create| SYSQUEUE))
|
||||
(SETQ \\10MB.RAWPACKETQ (|create| SYSQUEUE))
|
||||
(SETQ \\10MB.INPUT.TIMEOUT (TIMES \\RCLKSECOND \\10MB.EXPECTED.RECEIVE.INTERVAL))
|
||||
(SETQ \\MAIKO.10MB.NDB NDB)
|
||||
(\\10MB.TURNONETHER NDB NIL NIL (OR MYNSNUMBER T)
|
||||
0 0)
|
||||
(PROG ((CSB (|fetch| NDBCSB |of| NDB)))
|
||||
(OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)))
|
||||
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with|
|
||||
\\ES.PENDING)
|
||||
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
|
||||
(AND (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of|
|
||||
\\MAIKO.INPUT.PACKET
|
||||
))
|
||||
@@ -340,20 +326,16 @@
|
||||
|
||||
(PROG ((CSB (|fetch| NDBCSB |of| NDB)))
|
||||
(\\MAIKO.ETHERSUSPEND)
|
||||
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB
|
||||
(LOCF (|fetch| DLETHERNET
|
||||
|of| \\IOPAGE)))))
|
||||
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (LOCF (|fetch| DLETHERNET |of| \\IOPAGE
|
||||
)))))
|
||||
(|replace| DLFIRSTOCB |of| CSB |with| 0)
|
||||
(|replace| DLFIRSTICB |of| CSB |with| 0)
|
||||
(AND NSHOSTNUMBER (COND
|
||||
((EQ NSHOSTNUMBER T)
|
||||
(\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
|
||||
(LOCF (|fetch| (IFPAGE |NSHost0|) |of|
|
||||
|\\InterfacePage|)
|
||||
)
|
||||
(LOCF (|fetch| (IFPAGE |NSHost0|) |of| |\\InterfacePage|))
|
||||
\\#WDS.NSHOSTNUMBER))
|
||||
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of|
|
||||
CSB))
|
||||
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
|
||||
NSHOSTNUMBER))))
|
||||
(AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT))
|
||||
(AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT))
|
||||
@@ -365,14 +347,14 @@
|
||||
(RETURN NDB))))
|
||||
|
||||
(\\MAIKO.10MB.RESTART.ETHER
|
||||
(LAMBDA (NDB) (* \; "Edited 11-May-88 16:08 by MASINTER")
|
||||
(LAMBDA (NDB) (* \; "Edited 11-May-88 16:08 by MASINTER")
|
||||
|
||||
(* |;;;| "Kick the Ethernet receiver task to restart the Ethernet receiver task. This function gets called when the 10MBDRIVER thinks the Ethernet has been accidentally disabled")
|
||||
|
||||
(SUBRCALL ETHER-RESUME)))
|
||||
|
||||
(\\MAIKO.CHECKSUM
|
||||
(LAMBDA (BASE NWORDS INITSUM) (* \; "Edited 20-May-88 11:48 by MASINTER")
|
||||
(LAMBDA (BASE NWORDS INITSUM) (* \; "Edited 20-May-88 11:48 by MASINTER")
|
||||
(SUBRCALL CHECK-SUM BASE NWORDS INITSUM)))
|
||||
)
|
||||
|
||||
@@ -391,41 +373,37 @@
|
||||
|
||||
(DECLARE\: DOEVAL@COMPILE DONTCOPY
|
||||
|
||||
(GLOBALVARS \\MAIKO.10MB.NDB)
|
||||
)
|
||||
|
||||
(DECLARE\: DOEVAL@COMPILE DONTCOPY
|
||||
|
||||
(GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR)
|
||||
)
|
||||
)
|
||||
|
||||
(ADDTOVAR \\MAIKO.MOVDS (\\MAIKO.10MBSTARTDRIVER \\10MB.STARTDRIVER)
|
||||
(\\MAIKO.10MBWATCHER \\10MBWATCHER)
|
||||
(\\MAIKO.10MBSENDPACKET \\10MBSENDPACKET)
|
||||
(\\MAIKO.ETHERSUSPEND \\10MB.TURNOFFETHER)
|
||||
(\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER)
|
||||
(\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER)
|
||||
(\\MAIKO.CHECKSUM \\CHECKSUM))
|
||||
(\\MAIKO.10MBWATCHER \\10MBWATCHER)
|
||||
(\\MAIKO.10MBSENDPACKET \\10MBSENDPACKET)
|
||||
(\\MAIKO.ETHERSUSPEND \\10MB.TURNOFFETHER)
|
||||
(\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER)
|
||||
(\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER)
|
||||
(\\MAIKO.CHECKSUM \\CHECKSUM))
|
||||
|
||||
|
||||
|
||||
(* \;
|
||||
(* |;;|
|
||||
"MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.")
|
||||
|
||||
(DEFINEQ
|
||||
|
||||
(\\MAIKO.ETHER-INTERRUPT
|
||||
(LAMBDA NIL (* \; "Edited 4-May-91 13:46 by jds")
|
||||
(LAMBDA NIL (* \; "Edited 30-Dec-2025 18:36 by nhb")
|
||||
(* \; "Edited 4-May-91 13:46 by jds")
|
||||
|
||||
(* |;;| "This routine gets called when 10MB input signals an interrupt. See if the \\MAIKO.INPUT.PACKET has indeed been processed, and if so, take care of it")
|
||||
|
||||
(PROG ((NDB \\MAIKO.10MB.NDB)
|
||||
(PROG ((NDB \\10MBLOCALNDB)
|
||||
LENGTH)
|
||||
|
||||
(* |;;| "First, turn off the interrupt flag:")
|
||||
|
||||
(REPLACE (INTERRUPTSTATE ETHERINTERRUPT) OF \\INTERRUPTSTATE WITH NIL)
|
||||
(|replace| (INTERRUPTSTATE ETHERINTERRUPT) |of| \\INTERRUPTSTATE |with| NIL)
|
||||
|
||||
(* |;;| "Now handle it:")
|
||||
|
||||
@@ -437,33 +415,27 @@
|
||||
|
||||
READ-MORE-LOOP
|
||||
(COND
|
||||
((NEQ (SETQ LENGTH (|fetch| DLFIRSTICB |of| (|fetch| NDBCSB
|
||||
|of| NDB)))
|
||||
((NEQ (SETQ LENGTH (|fetch| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB)))
|
||||
\\ES.PENDING)
|
||||
(|replace| 10MBLENGTH |of| PACKET |with| LENGTH)
|
||||
(\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET)))
|
||||
(|replace| EPNETWORK |of| PACKET |with| NDB)
|
||||
(|replace| EPTYPE |of| PACKET
|
||||
|with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|
||||
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET
|
||||
))
|
||||
|when| (EQ TYPE (CAR PAIR))
|
||||
|do| (RETURN (CDR PAIR)) |finally| (RETURN
|
||||
TYPE)))
|
||||
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|
||||
|when| (EQ TYPE (CAR PAIR)) |do| (RETURN (CDR PAIR))
|
||||
|finally| (RETURN TYPE)))
|
||||
(COND
|
||||
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET)))
|
||||
(\\HANDLE.RAW.PACKET PACKET)
|
||||
(SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))
|
||||
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB)
|
||||
|with| \\ES.PENDING)
|
||||
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
|
||||
(COND
|
||||
((SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE
|
||||
|of|
|
||||
\\MAIKO.INPUT.PACKET)
|
||||
)
|
||||
|of| \\MAIKO.INPUT.PACKET))
|
||||
|
||||
(* |;;|
|
||||
"Returned T, so there's another packet waiting already. Process it.")
|
||||
"Returned T, so there's another packet waiting already. Process it.")
|
||||
|
||||
(SETQ PACKET \\MAIKO.INPUT.PACKET)
|
||||
(GO READ-MORE-LOOP)))))))))))
|
||||
@@ -471,7 +443,7 @@
|
||||
|
||||
|
||||
|
||||
(* \;
|
||||
(* |;;|
|
||||
"MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing."
|
||||
)
|
||||
|
||||
@@ -527,14 +499,13 @@
|
||||
(RPAQ \\MAIKO.IO-INTERRUPT-FLAGS (\\CREATECELL \\FIXP))
|
||||
|
||||
(RPAQQ \\MAIKO.IO-INTERRUPT-VECTOR NIL)
|
||||
(PUTPROPS MAIKOETHER COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 1991 2021))
|
||||
(DECLARE\: DONTCOPY
|
||||
(FILEMAP (NIL (2591 22216 (\\10MB.RESTART.ETHER 2601 . 2761) (\\10MB.STARTDRIVER 2763 . 4522) (
|
||||
\\10MB.TURNOFFETHER 4524 . 4684) (\\10MB.TURNONETHER 4686 . 7056) (\\10MBSENDPACKET 7058 . 9429) (
|
||||
\\10MBWATCHER 9431 . 10770) (\\MAIKO.10MBSENDPACKET 10772 . 13150) (\\MAIKO.10MBWATCHER 13152 . 14497)
|
||||
(\\MAIKO.ETHERRESUME 14499 . 14658) (\\MAIKO.ETHERSUSPEND 14660 . 14821) (\\MAIKO.INPUT.INTERRUPT
|
||||
14823 . 17085) (\\NS.SETTIME 17087 . 17367) (\\PUP.SETTIME 17369 . 17650) (\\MAIKO.10MBSTARTDRIVER
|
||||
17652 . 19307) (\\MAIKO.10MBTURNONETHER 19309 . 21684) (\\MAIKO.10MB.RESTART.ETHER 21686 . 22039) (
|
||||
\\MAIKO.CHECKSUM 22041 . 22214)) (23271 26336 (\\MAIKO.ETHER-INTERRUPT 23281 . 26334)) (26458 27821 (
|
||||
\\MAIKO.CONSOLE-LOG-PRINT 26468 . 27819)) (27867 28547 (\\MAIKO.IO-INTERRUPT 27877 . 28545)))))
|
||||
(FILEMAP (NIL (2301 20787 (\\10MB.RESTART.ETHER 2311 . 2475) (\\10MB.STARTDRIVER 2477 . 3863) (
|
||||
\\10MB.TURNOFFETHER 3865 . 4029) (\\10MB.TURNONETHER 4031 . 6121) (\\10MBSENDPACKET 6123 . 8481) (
|
||||
\\10MBWATCHER 8483 . 9926) (\\MAIKO.10MBSENDPACKET 9928 . 12296) (\\MAIKO.10MBWATCHER 12298 . 13747) (
|
||||
\\MAIKO.ETHERRESUME 13749 . 13912) (\\MAIKO.ETHERSUSPEND 13914 . 14079) (\\MAIKO.INPUT.INTERRUPT 14081
|
||||
. 15925) (\\NS.SETTIME 15927 . 16211) (\\PUP.SETTIME 16213 . 16498) (\\MAIKO.10MBSTARTDRIVER 16500 .
|
||||
18150) (\\MAIKO.10MBTURNONETHER 18152 . 20247) (\\MAIKO.10MB.RESTART.ETHER 20249 . 20606) (
|
||||
\\MAIKO.CHECKSUM 20608 . 20785)) (21751 24528 (\\MAIKO.ETHER-INTERRUPT 21761 . 24526)) (24652 26015 (
|
||||
\\MAIKO.CONSOLE-LOG-PRINT 24662 . 26013)) (26061 26741 (\\MAIKO.IO-INTERRUPT 26071 . 26739)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user