;;; Flags for open(2) and fcntl(2). ;;; Copyright (c) 1993 by Olin Shivers. ;;; Copyright (c) 1994 by Brian D. Carlstrom. (define-syntax define-open-flags (syntax-rules () ((define-errnos form ...) (begin (define-enum-constant "open" . form) ...)))) (define-open-flags (read #o000) (write #o001) (read+write #o002) (append #o00010) (create #o01000) (exclusive #o04000) (no-control-tty #o20000000) (nonblocking #o4000000) (truncate #o2000) ;;; Not POSIX. (no-delay #o0004) (sync #o100000) ; (blkinuse #o10000) ; (blkandset (bitwise-ior #o10000 #o20000)) (termio #o10000000) ) (define open/access-mask (bitwise-ior open/read (bitwise-ior open/write open/read+write))) (define fcntl/close-on-exec 1) (define fcntl/dupfd 0) (define fcntl/get-fd-flags 1) (define fcntl/set-fd-flags 2) (define fcntl/get-file-flags 3) (define fcntl/set-file-flags 4) (define fcntl/get-record-lock 7) ; F_GETLK (define fcntl/set-record-lock-noblock 8) ; F_SETLK (define fcntl/set-record-lock 9) ; F_SETLKW (define lock/read 1) ; F_RDLCK (define lock/write 2) ; F_WRLCK (define lock/release 3) ; F_UNLCK