-- File: TedDefs.mesa, Last Edit: HGM May 16, 1979 7:18 PM

-- Copyright Xerox Corporation 1979, 1980

DIRECTORY
CommUtilDefs: FROM "CommUtilDefs" USING [InterruptLevel],
AltoEthernetDefs: FROM "AltoEthernetDefs" USING [
EthernetDeviceBlockHandle, standardEthernet,
SioParameter, standardInput, standardOutput, standardReset],
DriverDefs: FROM "DriverDefs" USING [NetworkObject],
BufferDefs: FROM "BufferDefs" USING [
BufferType, Buffer, PupBuffer, RppBuffer, QueueObject],
PupTypes: FROM "PupTypes" USING [PupHostID],
DriverTypes: FROM "DriverTypes" USING [
ethernetEncapsulationBytes, ethernetEncapsulationOffset];

TedDefs: DEFINITIONS =
BEGIN

ethernetEncapsulationOffset: CARDINAL = DriverTypes.ethernetEncapsulationOffset;
ethernetEncapsulationBytes: CARDINAL = DriverTypes.ethernetEncapsulationBytes;


myDevice: AltoEthernetDefs.EthernetDeviceBlockHandle = AltoEthernetDefs.standardEthernet;
interruptLevel: CommUtilDefs.InterruptLevel = 5;
interruptBit: WORD = 40B; -- BITSHIFT[1,interruptLevel];
inputCommand: AltoEthernetDefs.SioParameter = AltoEthernetDefs.standardInput;
outputCommand: AltoEthernetDefs.SioParameter = AltoEthernetDefs.standardOutput;
resetCommand: AltoEthernetDefs.SioParameter = AltoEthernetDefs.standardReset;


Interrupt: PROCEDURE;
Watcher: PROCEDURE;
DecapsulateBuffer: PROCEDURE [BufferDefs.Buffer] RETURNS [BufferDefs.BufferType];
EncapsulatePup: PROCEDURE [BufferDefs.PupBuffer, PupTypes.PupHostID];
EncapsulateRpp: PROCEDURE [BufferDefs.RppBuffer, PupTypes.PupHostID];
SendBuffer: PROCEDURE [BufferDefs.Buffer];

myNetwork: DriverDefs.NetworkObject;

lock: MONITORLOCK;
hardware: CONDITION;
tedPleaseStop: BOOLEAN;
timer: CONDITION;
nextBufferPointer: POINTER;
currentInputBuffer, nextInputBuffer: BufferDefs.Buffer;
outputQueue: BufferDefs.QueueObject;
currentOutputBuffer: BufferDefs.Buffer;
timeSendStarted: CARDINAL;

TedCold, TedIn, TedLocked, TedOut: PROGRAM;
END.