DEFINITION MODULE RTgen ; (* Description: provides a generic device interface between ISO channels and the underlying PIM style FIO procedure calls. *) FROM RTgenif IMPORT GenDevIF ; FROM IOLink IMPORT DeviceId, DeviceTablePtr; FROM IOConsts IMPORT ReadResults ; FROM SYSTEM IMPORT ADDRESS ; TYPE ChanDev ; DeviceType = (seqfile, streamfile, programargs, stdchans, term, socket, rndfile) ; (* InitChanDev - initialize and return a ChanDev. *) PROCEDURE InitChanDev (t: DeviceType; d: DeviceId; g: GenDevIF) : ChanDev ; (* KillChanDev - deallocates, g. *) PROCEDURE KillChanDev (g: GenDevIF) : GenDevIF ; (* RaiseEOFinLook - returns TRUE if the Look procedure should raise an exception if it sees end of file. *) PROCEDURE RaiseEOFinLook (g: ChanDev) : BOOLEAN ; (* RaiseEOFinSkip - returns TRUE if the Skip procedure should raise an exception if it sees end of file. *) PROCEDURE RaiseEOFinSkip (g: ChanDev) : BOOLEAN ; PROCEDURE doLook (g: ChanDev; d: DeviceTablePtr; VAR ch: CHAR; VAR r: ReadResults) ; PROCEDURE doSkip (g: ChanDev; d: DeviceTablePtr) ; PROCEDURE doSkipLook (g: ChanDev; d: DeviceTablePtr; VAR ch: CHAR; VAR r: ReadResults) ; PROCEDURE doWriteLn (g: ChanDev; d: DeviceTablePtr) ; PROCEDURE doReadText (g: ChanDev; d: DeviceTablePtr; to: ADDRESS; maxChars: CARDINAL; VAR charsRead: CARDINAL) ; PROCEDURE doWriteText (g: ChanDev; d: DeviceTablePtr; from: ADDRESS; charsToWrite: CARDINAL) ; PROCEDURE doReadLocs (g: ChanDev; d: DeviceTablePtr; to: ADDRESS; maxLocs: CARDINAL; VAR locsRead: CARDINAL) ; PROCEDURE doWriteLocs (g: ChanDev; d: DeviceTablePtr; from: ADDRESS; locsToWrite: CARDINAL) ; (* checkErrno - checks a number of errno conditions and raises appropriate ISO exceptions if they occur. *) PROCEDURE checkErrno (g: ChanDev; d: DeviceTablePtr) ; END RTgen.