<> <> <> <> <> <> <> <<>> <> <<>> EthernetOneFace: CEDAR DEFINITIONS = { BYTE: TYPE = [0..100H); GetNextDevice: PROC [Handle] RETURNS [Handle]; <> GetHostNumber: PROC [Handle] RETURNS [host: BYTE]; <> AddCleanup: PROC [Handle]; <> TurnOn: PROC [handle: Handle, inInterrupt, outInterrupt: WORD]; TurnOff: PROC [handle: Handle]; <> HostArray: TYPE = PACKED ARRAY BYTE OF BOOL; SetInputHosts: PROC [handle: Handle, hosts: LONG POINTER TO HostArray]; < revert to normal mode. TurnOn also sets normal mode.>> <> SetOutputDelay: PROC [handle: Handle, microseconds: CARDINAL]; <> <<>> QueueOutput: PROC [handle: Handle, buffer: LONG POINTER, bytes: NAT, iocb: IOCB]; QueueInput: PROC [handle: Handle, buffer: LONG POINTER, bytes: NAT, iocb: IOCB]; <> MarkKilled: PROC [iocb: IOCB]; <> <<>> GetStatusAndLength: PROC [iocb: IOCB] RETURNS [status: Status, bytes: NAT]; <> GetStatusAndCollisions: PROC [iocb: IOCB] RETURNS [status: Status, collisions: NAT]; <> GetPacketsMissed: PROC [Handle] RETURNS [CARDINAL]; <> Handle: TYPE [2]; 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 crc, crcAndBadAlignment, badAlignmentButOkCrc, killedByDriver, otherError }; <> IOCB: TYPE = LONG POINTER TO ControlBlockRecord; ControlBlockRecord: TYPE; controlBlockSize: READONLY CARDINAL; nullHandle: READONLY Handle; hearSelf: READONLY BOOL; <<>> }.