<> <> <> <<>> <> <<>> DIRECTORY VersatecFace; VersatecHeadSunImpl: CEDAR PROGRAM EXPORTS VersatecFace ~ BEGIN OPEN VersatecFace; Initialize: PUBLIC PROC RETURNS [ok: BOOL] ~ { <> DoIt: PROC RETURNS [ok: BOOL] ~ TRUSTED MACHINE CODE { "SVInitialize" }; RETURN[DoIt[]]; }; <<>> Finalize: PUBLIC PROC ~ { <> DoIt: PROC ~ TRUSTED MACHINE CODE { "SVFinalize" }; DoIt[]; }; <<>> OnLine: PUBLIC PROC RETURNS [onLine: BOOL] ~ { DoIt: PROC RETURNS [onLine: BOOL] ~ TRUSTED MACHINE CODE {"SVOnLine"}; RETURN[DoIt[]]; }; Ready: PUBLIC PROC RETURNS [ready: BOOL] ~ { DoIt: PROC RETURNS [ready: BOOL] ~ TRUSTED MACHINE CODE {"SVReady"}; RETURN[DoIt[]]; }; Reset: PUBLIC PROC ~ { <> DoIt: PROC ~ TRUSTED MACHINE CODE { "SVReset" }; DoIt[]; }; <<>> SetMode: PUBLIC PROC [mode: Mode] ~ { <> DoIt: PROC [mode: Mode] ~ TRUSTED MACHINE CODE { "SVSetMode" }; DoIt[mode]; }; <<>> SendRCommand: PUBLIC PROC [cmd: RCommand] RETURNS [ok: BOOL] ~ { <> <> DoIt: PROC [cmd: RCommand] RETURNS [ok: BOOL] ~ TRUSTED MACHINE CODE { "SVSendRCommand" }; RETURN[DoIt[cmd]]; }; <<>> SendOneByte: PUBLIC PROC [data: BYTE] RETURNS [ok: BOOL] ~ { <> DoIt: PROC [data: BYTE] RETURNS [ok: BOOL] ~ TRUSTED MACHINE CODE { "SVSendOneByte" }; RETURN[DoIt[data]]; }; <<>> SendBuffer: PUBLIC PROC [addr: BufferAddress, bytes: CARD, dmaPerTransferCount: CARD ¬ 0] RETURNS [ok: BOOL] ~ { <> DoIt: PROC [addr: BufferAddress, bytes, dmaPerTransferCount: CARD] RETURNS [ok: BOOL] ~ TRUSTED MACHINE CODE { "SVSendBuffer" }; RETURN[DoIt[addr, bytes, dmaPerTransferCount]]; }; <<>> Abort: PUBLIC PROC ~ { <> DoIt: PROC ~ TRUSTED MACHINE CODE { "SVAbort" }; DoIt[]; }; Init: PROC ~ TRUSTED MACHINE CODE { <> "SVStartUp" }; <<>> Init[]; <<>> END.