<> <> <> DIRECTORY EthernetFace; EthernetHeadDorado: PROGRAM EXPORTS EthernetFace = BEGIN OPEN EthernetFace; Device: TYPE = RECORD [WORD]; IOCB: TYPE = LONG POINTER TO IOControlBlock; IOControlBlock: TYPE = RECORD [WORD]; DeviceHandle: PUBLIC TYPE = Device; ControlBlockRecord: PUBLIC TYPE = IOControlBlock; nullDeviceHandle: PUBLIC DeviceHandle _ LOOPHOLE[123456B]; globalStateSize: PUBLIC CARDINAL _ 0; controlBlockSize: PUBLIC CARDINAL _ 0; hearSelf: PUBLIC BOOLEAN _ TRUE; CantGetHere: ERROR = CODE; QueueOutput: PUBLIC PROCEDURE [ device: Device, buffer: LONG POINTER, length: CARDINAL, cb: IOCB] = BEGIN ERROR CantGetHere; END; QueueInput: PUBLIC PROCEDURE [ device: Device, buffer: LONG POINTER, length: CARDINAL, cb: IOCB] = BEGIN ERROR CantGetHere; END; GetStatus: PUBLIC PROCEDURE [cb: IOCB] RETURNS [status: Status] = BEGIN ERROR CantGetHere; END; GetRetries: PUBLIC PROCEDURE [cb: IOCB] RETURNS [CARDINAL] = BEGIN ERROR CantGetHere; END; GetPacketLength: PUBLIC PROCEDURE [cb: IOCB] RETURNS [CARDINAL] = BEGIN ERROR CantGetHere; END; GetPacketsMissed: PUBLIC PROCEDURE [device: Device] RETURNS [CARDINAL] = BEGIN ERROR CantGetHere; END; GetNextDevice: PUBLIC PROCEDURE [device: Device] RETURNS [Device] = BEGIN RETURN[nullDeviceHandle]; END; TurnOn: PUBLIC PROCEDURE [ device: Device, host: physical HostNumber, inInterrupt, outInterrupt: WORD, globalState: GlobalStatePtr] = BEGIN END; TurnOff: PUBLIC PROCEDURE [device: Device] = BEGIN END; AddCleanup: PUBLIC PROCEDURE [device: Device] = BEGIN END; RemoveCleanup: PUBLIC PROCEDURE [device: Device] = BEGIN END; END. -- EthernetHeadDorado.