<> <> <> <> <<>> DIRECTORY NSPilotSystem USING [HostNumber]; NewEthernetFace: DEFINITIONS = BEGIN <<>> <> <<>> GetNextDevice: PROCEDURE [DeviceHandle] RETURNS [DeviceHandle]; <> AddCleanup: PROCEDURE [DeviceHandle]; RemoveCleanup: PROCEDURE [DeviceHandle]; <> <> < [a: CARDINAL[0..32768), b: CARDINAL, c: CARDINAL],>> < [a: CARDINAL[0..32768), b: CARDINAL, c: CARDINAL],>> <> <> TurnOn: PROCEDURE [device: DeviceHandle, host: NSPilotSystem.HostNumber, inInterrupt, outInterrupt: WORD, globalState: GlobalStatePtr]; TurnOff: PROCEDURE [device: DeviceHandle]; <> QueueOutput: PROCEDURE [device: DeviceHandle, buffer: LONG POINTER, length: CARDINAL, cb: ControlBlock]; QueueInput: PROCEDURE [device: DeviceHandle, buffer: LONG POINTER, length: CARDINAL, cb: ControlBlock]; <> GetStatus: PROCEDURE [cb: ControlBlock] RETURNS [status: Status]; <> GetRetries: PROCEDURE [cb: ControlBlock] RETURNS [CARDINAL]; <> GetPacketLength: PROCEDURE [cb: ControlBlock] RETURNS [CARDINAL]; <> GetPacketsMissed: PROCEDURE [DeviceHandle] RETURNS [CARDINAL]; <> <<>> DeviceHandle: TYPE[1]; GlobalStatePtr: TYPE = LONG POINTER; Status: TYPE = { pending, ok, overrun, -- Input data arrived when FIFO was full underrun, -- Output FIFO went empty before end of packet was set packetTooLong, -- Input packet didn't fit into buffer tooManyCollisions, -- More than 16 attempts to transmit the same packet lateCollision, -- Somebody stepped on the packet after a round trip time crc, crcAndBadAlignment, badAlignmentButOkCrc, -- aka Dribble spare1, spare2, spare3, otherError}; <> ControlBlock: TYPE = LONG POINTER TO ControlBlockRecord; ControlBlockRecord: TYPE; <<>> <> globalStateSize: READONLY CARDINAL; controlBlockSize: READONLY CARDINAL; nullDeviceHandle: READONLY DeviceHandle; hearSelf: READONLY BOOLEAN; <<>> END. LOG Time: September 5, 1980 12:16 AM By: HGM Action: Create from EthernetOneFace Time: May 6, 1983 1:00 pm By: ADB Action: Minor changes for Cedar nucleus conversion Time: April 3, 1984 10:11:51 am PST By: WSO Action: Minor changes for testing