-- EthernetHeadDorado.mesa (last edited by: Taft on: December 10, 1980 10:11 AM)
-- Stub version to satisfy imports

DIRECTORY
HeadStartChain USING [Start],
SpecialSystem USING [ProcessorID],
EthernetFace;

EthernetHeadDorado: PROGRAM
IMPORTS RemainingStartChain: HeadStartChain
EXPORTS EthernetFace, HeadStartChain =
BEGIN OPEN EthernetFace;

Device: TYPE = RECORD [WORD];
IOCB: TYPE = LONG POINTER TO IOControlBlock;
IOControlBlock: TYPE = RECORD [WORD];

-- EXPORTed TYPEs
DeviceHandle: PUBLIC TYPE = Device;
ControlBlockRecord: PUBLIC TYPE = IOControlBlock;

-- EXPORTed variables

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: SpecialSystem.ProcessorID,
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;

Start: PUBLIC PROCEDURE =
BEGIN --
Start this module (and rest of chain)
RemainingStartChain.Start[]
END;

END. -- EthernetHeadDorado.