(*!m2iso+gm2*) (* Copyright (c) 2017 Modula-2 Software Foundation *) DEFINITION MODULE FOR "C" fcntl; (* GNU Modula-2 ISO version *) (* Modula-2 interface to POSIX fcntl *) FROM SysTypes IMPORT INT, ModeT; TYPE OpenFlags = INT; OpenStatus = INT; CONST OpenReadOnly = 0; OpenWriteOnly = 1; OpenReadWrite = 2; OpenNonBlocking = OpenReadWrite * 2; OpenAppend = OpenNonBlocking * 2; OpenSharedLock = OpenAppend * 2; OpenExclusiveLock = OpenSharedLock * 2; OpenAsync = OpenExclusiveLock * 2; OpenSync = OpenAsync * 2; OpenNoFollow = OpenSync * 2; OpenCreate = OpenNoFollow * 2; OpenTruncate = OpenCreate * 2; OpenExclusive = OpenTruncate * 2; OpenSyncData = 65536; OpenSyncRead = OpenSyncData * 2; OpenDirectory = 2097152; OpenCloseOnExec = OpenDirectory * 2; ModeUserExec = 1; ModeUserWrite = 2; ModeUserRead = ModeUserWrite * 2; ModeUserAll = ModeUserExec + ModeUserWrite + ModeUserRead; ModeGrpExec = ModeUserRead * 2; ModeGrpWrite = ModeGrpExec * 2; ModeGrpRead = ModeGrpWrite * 2; ModeGrpAll = ModeGrpExec + ModeGrpWrite + ModeGrpRead; ModeOwnerExec = ModeGrpRead * 2; ModeOwnerWrite = ModeOwnerExec * 2; ModeOwnerRead = ModeOwnerWrite * 2; ModeOwnerAll = ModeOwnerExec + ModeOwnerWrite + ModeOwnerRead; ModeAll = ModeUserAll + ModeGrpAll + ModeOwnerAll; PROCEDURE open(path: ARRAY OF CHAR; oflags: OpenFlags; sflags: ModeT): OpenStatus; END fcntl.