diff --git a/scsh/bsd/bufpol.scm b/scsh/bsd/bufpol.scm index c6ee0e2..803bdf3 100644 --- a/scsh/bsd/bufpol.scm +++ b/scsh/bsd/bufpol.scm @@ -7,12 +7,7 @@ ;;; These constants are not likely to change from stdio lib to stdio lib, ;;; but you need to check when you do a port. -(define-syntax define-bufpols - (syntax-rules () - ((define-bufpols form ...) - (begin (define-enum-constant "bufpol" . form) ...)))) - -(define-bufpols +(define-enum-constants bufpol (block 0) ; _IOFBF (line 1) ; _IOLBF (none 2)) ; _IONBF diff --git a/scsh/bsd/errno.scm b/scsh/bsd/errno.scm index e7be482..b997a59 100644 --- a/scsh/bsd/errno.scm +++ b/scsh/bsd/errno.scm @@ -5,14 +5,9 @@ ;;; These are the correct values for BSD4.4-Lite-based systems ;;; such as NetBSD 1.0 and FreeBSD 2.0. -(define-syntax define-errnos - (syntax-rules () - ((define-errnos form ...) - (begin (define-enum-constant "errno" . form) ...)))) - (define errno/2big 7) ; 2big is not a legit Scheme symbol. Lose, lose. -(define-errnos +(define-enum-constants errno ;; POSIX: (perm 1) ; Operation not permitted (noent 2) ; No such file or directory diff --git a/scsh/bsd/fdflags.scm b/scsh/bsd/fdflags.scm index 9af54f6..fd342ba 100644 --- a/scsh/bsd/fdflags.scm +++ b/scsh/bsd/fdflags.scm @@ -2,12 +2,7 @@ ;;; Copyright (c) 1993 by Olin Shivers. ;;; Copyright (c) 1994 by Brian D. Carlstrom -(define-syntax define-open-flags - (syntax-rules () - ((define-opens form ...) - (begin (define-enum-constant "open" . form) ...)))) - -(define-open-flags +(define-enum-constants open ;; POSIX (read #x0000) (write #x0001) @@ -16,8 +11,8 @@ (append #x0008) ; set append mode ;; BSD4.4-Lite - (shlock #x0010) ; open with shared file lock - (exlock #x0020) ; open with exclusive file lock + (shared-lock #x0010) ; open with shared file lock + (exclusive-lock #x0020) ; open with exclusive file lock (async #x0040) ; signal pgrep when data ready (fsync #x0080) ; synchronus writes @@ -27,60 +22,34 @@ (exclusive #x0800) ; error if already exists (no-control-tty #x0000)) ; don't assign controlling terminal - - (define open/access-mask (bitwise-ior open/read (bitwise-ior open/write open/read+write))) -;;;; fcntl -;;;; Rough sketch only. Will define a separate proc for each fcntl command. -; -;;;; fcntl commands -;dup -; -;get-flags ; Only gives close-on-exec bit. -;set-flags -; -;get-status ; Returns open flags + get-status flags (below) -;set-status ; Can set: append, sync, async, nbio, nonblocking, no-delay -; -;get-lock -;set-lock -;nonblocking-set-lock -; -;get-record-lock -;set-record-lock -; -;get-owner ; Not POSIX -;set-owner ; Not POSIX -;remote-set-lock ; Not POSIX -;nonblocking-remote-set-lock ; Not POSIX -;remote-get-lock ; Not POSIX -; -;;;; Flags -; -;close-on-exec ; get-flags -; -;async ; get-status -;no-delay ; get-status -;nbio ; get-status -; -;;; These are internal; they are not part of the supported scsh interface. +;;; fcntl() commands +(define-enum-constants fcntl + (dup-fdes 0) ; F_DUPFD + (get-fdes-flags 1) ; F_GETFD + (set-fdes-flags 2) ; F_SETFD + (get-status-flags 3) ; F_GETFL + (set-status-flags 4) ; F_SETFL + (get-owner 5) ; F_GETOWN (Not POSIX) + (set-owner 6) ; F_SETOWN (Not POSIX) + (get-record-lock 7) ; F_GETLK + (set-record-lock-noblock 8) ; F_SETLK + (set-record-lock 9)) ; F_SETLKW -(define fcntl/close-on-exec 1) +;;; fcntl fdes-flags (F_GETFD) -(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-owner 5) ; Not POSIX -(define fcntl/set-owner 6) ; Not POSIX -(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 fdflags/close-on-exec 1) -(define lock/read 1) ; F_RDLCK -(define lock/release 2) ; F_UNLCK -(define lock/write 3) ; F_WRLCK +;;; fcntl status-flags (F_GETFL) +;;; Mostly, these are OPEN/... flags, like OPEN/APPEND. +;;; (define fdstatus/... ...) + +;;; fcntl lock values. + +(define-enum-constants lock + (read 1) ; F_RDLCK + (release 2) ; F_UNLCK + (write 3)) ; F_WRLCK diff --git a/scsh/bsd/signals.scm b/scsh/bsd/signals.scm index 0ce7208..b63955c 100644 --- a/scsh/bsd/signals.scm +++ b/scsh/bsd/signals.scm @@ -2,12 +2,7 @@ ;;; Copyright (c) 1994 by Olin Shivers. ;;; Copyright (c) 1994 by Brian D. Carlstrom. -(define-syntax define-signals - (syntax-rules () - ((define-signals form ...) - (begin (define-enum-constant "signal" . form) ...)))) - -(define-signals +(define-enum-constants signal ;; POSIX (hup 1) ; hangup (int 2) ; interrupt @@ -71,3 +66,9 @@ (usr1 30) ; user defined signal 1 (usr2 31) ; user defined signal 2 ) + +(define signals-ignored-by-default + (list signal/alrm signal/hup signal/int signal/quit ; These are + signal/term signal/usr1 signal/usr2 ; Posix. + signal/info signal/prof signal/vtalrm ; These are + signal/xcpu signal/xfsz signal/io)) ; BSD-specific.