(*# call(o_a_size=>off) *) (*# call(o_a_copy=>off) *) DEFINITION MODULE FIOx; IMPORT FIO; (* Copyright (C) 1988,1989,1990 Jensen & Partners International *) CONST NO_ERROR = 0; DISK_FULL = MAX(CARDINAL); PAST_EOF = MAX(CARDINAL)-1; INVALID_PARAMETER = 87; RetryCountDefaultValue = 5; DelayDefaultValue = 300; TYPE File = CARDINAL; LockRec = RECORD pos, len : LONGCARD; END; CountProc = PROCEDURE(): CARDINAL; DelayProc = PROCEDURE(); LockRecPtr = POINTER TO LockRec; MultiMode = (_multi_yes,_multi_no,_multi_file); CONST NULL = LockRecPtr(NIL); VAR RetryCount : CountProc; Delay : DelayProc; PROCEDURE Multi(): MultiMode; PROCEDURE MultiFile(f: File): BOOLEAN; PROCEDURE Lock(f: File; x: LockRec): BOOLEAN; PROCEDURE UnLock(f: File; x: LockRec); (*# save *) (*# call(o_a_size=>on) *) PROCEDURE LockRange(f: File; x: ARRAY OF LockRec): BOOLEAN; PROCEDURE UnLockRange(f: File; x: ARRAY OF LockRec); (*# restore *) PROCEDURE Open(Name: ARRAY OF CHAR; Share,ReadOnly,Create: BOOLEAN): File; PROCEDURE Truncate(f: File; l: LONGCARD); PROCEDURE Read(f: File; VAR b: ARRAY OF BYTE; c: CARDINAL); PROCEDURE Write(f: File; b: ARRAY OF BYTE; c: CARDINAL); PROCEDURE Error() : CARDINAL; CONST (* PROCEDURE Close(VAR f: File); PROCEDURE Seek(f: File; p: LONGCARD); PROCEDURE Size(f: File): LONGCARD; PROCEDURE Flush(f: File); *) Close ::= FIO.Close; Seek ::= FIO.Seek; Size ::= FIO.Size; Flush ::= FIO.Flush; END FIOx.