(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP") (FILECREATED "16-May-90 16:04:03" {DSK}local>lde>lispcore>sources>DOVEETHERDECLS.;2 14397 changes to%: (VARS DOVEETHERDECLSCOMS) previous date%: "17-Dec-86 18:38:00" {DSK}local>lde>lispcore>sources>DOVEETHERDECLS.;1) (* ; " Copyright (c) 1986, 1990 by Venue & Xerox Corporation. All rights reserved. ") (PRETTYCOMPRINT DOVEETHERDECLSCOMS) (RPAQQ DOVEETHERDECLSCOMS ((FILES MESATYPES) (RECORDS Dove.EtherSCB) (RECORDS Dove.EtherAddr Dove.EtherConfigure Dove.EtherDumpStatus Dove.EtherFCB Dove.Etheri586Status Dove.EtherIOCB Dove.EtherCommandIOCB Dove.EtherIOIOCB Dove.EtherMulticastAddr Dove.EtherTransmit Dove.RxBufferDesc Dove.RxFrameDesc Dove.TimeDomainRFL) (FUNCTIONS \DoveEther.DoOutput) (CONSTANTS \DoveEther.MulticastAddr \DoveEther.QueuePtrSize \DoveEther.ClientConditionSize \DoveEther.IOIOCBLength \DoveEther.RequestON \DoveEther.RequestOFF) (CONSTANTS * DoveEther.IOCBTypes) (CONSTANTS * DoveEther.ActionCommands))) (FILESLOAD MESATYPES) (DECLARE%: EVAL@COMPILE (MESARECORD Dove.EtherSCB ((stat BITS 4) (NIL BITS 1) (cus BITS 3) (* command unit status) (NIL BITS 1) (rus BITS 3) (* receive unit status) (NIL BITS 4) (ack BITS 4) (* acknowledge int) (NIL BITS 1) (cuc BITS 3) (* command unit command) (reset FLAG) (ruc BITS 3) (* receive unit command) (NIL BITS 4) (cblOffset WORD) (rfaOffset WORD) (crcErrs WORD) (alnErrs WORD) (rscErrs WORD) (ovrnErrs WORD))) ) (DECLARE%: EVAL@COMPILE (BLOCKRECORD Dove.EtherAddr ((id 3 WORD))) (MESARECORD Dove.EtherConfigure ((NIL BITS 4) (ByteCount BITS 4) (NIL BITS 4) (FifoLimit BITS 4) (SaveBadFrames FLAG) (SyncReady FLAG) (NIL BITS 6) (ExternalLoopBack FLAG) (InternalLoopBack FLAG) (PreambleLength BITS 2) (AddrTypeLoc BITS 1) (AddrLength BITS 3) (ExpBackoffMethod BITS 1) (AccContRes BITS 3) (NIL BITS 1) (LinearPolarity BITS 3) (InterframeSpacing BYTE) (SlotTimeLow BYTE) (RetryNumber BITS 4) (NIL BITS 1) (SlotTimeHigh BITS 3) (Padding FLAG) (BitStuffing FLAG) (CRC16 FLAG) (NoCRCInsertion FLAG) (TxNoCRS FLAG) (NRZEncoding FLAG) (BroadcastDisable FLAG) (PromiscuousMode FLAG) (InternalCDT FLAG) (CDTFilter BITS 3) (InternalCRS FLAG) (CRSFilter BITS 3) (MinFrameLength BYTE) (NIL BYTE))) (BLOCKRECORD Dove.EtherDumpStatus ((Buffer WORD))) (MESARECORD Dove.EtherFCB ((mesaOutQueue Dove.QueueBlock) (mesaInQueue Dove.QueueBlock) (mesaClientStateRequest WORD) (scb Dove.EtherSCB) (etherOutWorkMask WORD) (etherInWorkMask WORD) (etherLockMask WORD) (mesaInClientState WORD) (mesaOutClientState WORD))) (BLOCKRECORD Dove.Etheri586Status ((completion FLAG) (busy FLAG) (okay FLAG)) (BLOCKRECORD Dove.Etheri586Status ((NIL BITS 3) (* receiveframe variant) (unused FLAG) (crcErr FLAG) (alnErr FLAG) (rscErr FLAG) (ovrnErr FLAG) (frameTooShort FLAG) (noEOFFlag FLAG) (NIL BITS 6))) (BLOCKRECORD Dove.Etheri586Status ((NIL BITS 3) (* command variant.  Mainly for transmit) (aborted FLAG) (NIL FLAG) (noCRS FLAG) (lossOfCTS FLAG) (underrun FLAG) (deferred FLAG) (sqeTest FLAG) (tooManyCollisions FLAG) (NIL BITS 1) (collisions BITS 4)))) (MESARECORD Dove.EtherIOCB ((next Dove.OpieAddress) (* Next IOCB in IO queue) (ClientCondition 3 WORD) (* Gets notifed in Mesaland when IO  is complete) (i586Status WORD) (* Status from the Dove ethernet  coprocessor) (Status BYTE) (* IO status?) (IOCBType BITS 4) (* What type of IO operation is  this?) (Action BITS 4) (* Used only for Command variant) ) [ACCESSFNS ((nextIOCB (fetch (Dove.OpieAddress LispPointer) of (fetch (Dove.EtherIOCB next) of DATUM)) (replace (Dove.OpieAddress LispPointer) of (fetch (Dove.EtherIOCB next) of DATUM) with NEWVALUE] (BLOCKRECORD Dove.EtherIOCB ((NIL 6 WORD) (done FLAG) (handled FLAG) (okay FLAG) (frameTooLong FLAG) (interruptTimeout FLAG) (NIL BITS 2) (isDequeued FLAG)))) (MESARECORD Dove.EtherCommandIOCB ((iocbCommon Dove.EtherIOCB) (select 7 WORD))) (MESARECORD Dove.EtherIOIOCB ((iocbCommon Dove.EtherIOCB) (address Dove.OpieAddress) (length WORD) (count WORD)) [ACCESSFNS ((bufferAddress (fetch (Dove.OpieAddress LispPointer) of (fetch (Dove.EtherIOIOCB address) of DATUM)) (replace (Dove.OpieAddress LispPointer) of (fetch (Dove.EtherIOIOCB address) of DATUM) with NEWVALUE]) (BLOCKRECORD Dove.EtherMulticastAddr ((ByteCount WORD) (MulticastID1 3 WORD) (MulticastID2 3 WORD))) (BLOCKRECORD Dove.EtherTransmit ((BdPtr WORD) (DestAddr 3 WORD) (Type WORD))) (BLOCKRECORD Dove.RxBufferDesc ((EndOfFrame FLAG) (Filled FLAG) (ActualCount BITS 14) (Next WORD) (BufAddrIOPReal WORD) (EndOfList FLAG) (Unused FLAG) (Size BITS 14))) (BLOCKRECORD Dove.RxFrameDesc ((Status WORD) (EndOfList FLAG) (Suspend FLAG) (NIL BITS 14) (Link WORD) (BDPtr WORD) (DestAddr 3 WORD) (SourceAddr 3 WORD) (Type WORD))) (BLOCKRECORD Dove.TimeDomainRFL ((LinkOK FLAG) (XcvrProblem FLAG) (Open FLAG) (Short FLAG) (NIL FLAG) (Time BITS 11))) ) (DEFMACRO \DoveEther.DoOutput (IOCB) `(PROGN (\DoveEther.Initiate ,IOCB) (until (fetch (Dove.EtherIOCB done) of ,IOCB)) (\DoveEther.DeQueue (fetch (Dove.EtherFCB mesaOutQueue) of \DoveEther.FCBPointer) ,IOCB) (fetch (Dove.EtherIOCB okay) of ,IOCB))) (DECLARE%: EVAL@COMPILE (RPAQQ \DoveEther.MulticastAddr 3) (RPAQQ \DoveEther.QueuePtrSize 6) (RPAQQ \DoveEther.ClientConditionSize 3) (RPAQQ \DoveEther.IOIOCBLength 11) (RPAQQ \DoveEther.RequestON 1) (RPAQQ \DoveEther.RequestOFF 0) (CONSTANTS \DoveEther.MulticastAddr \DoveEther.QueuePtrSize \DoveEther.ClientConditionSize \DoveEther.IOIOCBLength \DoveEther.RequestON \DoveEther.RequestOFF) ) (RPAQQ DoveEther.IOCBTypes ((DoveEther.commandIOCBType 0) (DoveEther.outputIOCBType 1) (DoveEther.resetIOCBType 2) (DoveEther.startRUIOCBType 3) (DoveEther.inputIOCBType 15))) (DECLARE%: EVAL@COMPILE (RPAQQ DoveEther.commandIOCBType 0) (RPAQQ DoveEther.outputIOCBType 1) (RPAQQ DoveEther.resetIOCBType 2) (RPAQQ DoveEther.startRUIOCBType 3) (RPAQQ DoveEther.inputIOCBType 15) (CONSTANTS (DoveEther.commandIOCBType 0) (DoveEther.outputIOCBType 1) (DoveEther.resetIOCBType 2) (DoveEther.startRUIOCBType 3) (DoveEther.inputIOCBType 15)) ) (RPAQQ DoveEther.ActionCommands ((DoveEther.actionNop 0) (DoveEther.actionIndividualAddr 1) (DoveEther.actionConfigure 2) (DoveEther.actionMulticastAddr 3) (DoveEther.actionTransmit 4) (DoveEther.actionTimeDomainRfl 5) (DoveEther.actionDumpStatus 6) (DoveEther.actionDiagnose 7))) (DECLARE%: EVAL@COMPILE (RPAQQ DoveEther.actionNop 0) (RPAQQ DoveEther.actionIndividualAddr 1) (RPAQQ DoveEther.actionConfigure 2) (RPAQQ DoveEther.actionMulticastAddr 3) (RPAQQ DoveEther.actionTransmit 4) (RPAQQ DoveEther.actionTimeDomainRfl 5) (RPAQQ DoveEther.actionDumpStatus 6) (RPAQQ DoveEther.actionDiagnose 7) (CONSTANTS (DoveEther.actionNop 0) (DoveEther.actionIndividualAddr 1) (DoveEther.actionConfigure 2) (DoveEther.actionMulticastAddr 3) (DoveEther.actionTransmit 4) (DoveEther.actionTimeDomainRfl 5) (DoveEther.actionDumpStatus 6) (DoveEther.actionDiagnose 7)) ) (PUTPROPS DOVEETHERDECLS COPYRIGHT ("Venue & Xerox Corporation" 1986 1990)) (DECLARE%: DONTCOPY (FILEMAP (NIL))) STOP