DEFINITION MODULE DosSupport;
(*$ NameChk:=FALSE LargeVars:=FALSE *)
(* 9.6.90/bp
 * Dies sind alle Dos-Prozeduren, die ein neues Lock oder
 * FileHandle erzeugen.
 * Die Objekte werden in einer Liste vermerkt und bei
 * Programmende wieder freigegeben.
 *)

FROM SYSTEM IMPORT ADDRESS;
IMPORT d:DosD;

PROCEDURE Open(name:ADDRESS; accessMode:LONGINT)
            :d.FileHandlePtr;
PROCEDURE Close(file:d.FileHandlePtr);
PROCEDURE Lock(name:ADDRESS; accessMode:LONGINT)
            :d.FileLockPtr;
PROCEDURE UnLock(lock:d.FileLockPtr);
PROCEDURE DupLock(lock:d.FileLockPtr)
            :d.FileLockPtr;
PROCEDURE ParentDir(lock:d.FileLockPtr)
            :d.FileLockPtr;
PROCEDURE CreateDir(name:ADDRESS)
            :d.FileLockPtr;

(*
 * Die folgenden Prozeduren sind nur benutzbar,
 * wenn  DosL.dosVersion >= 36 ist!
 * Andernfalls: Programmabbruch!
 *)
PROCEDURE DupLockFromFH(fh:d.FileHandlePtr
		):d.FileLockPtr;

(* Achtung: wandelt bei Erfolg das Lock in ein
 * FileHandle um!
 *)
PROCEDURE OpenFromLock(lock:d.FileLockPtr
		):d.FileHandlePtr;

PROCEDURE ParentOfFH(fh:d.FileHandlePtr
		):d.FileLockPtr;

END DosSupport.def
