removed accidentally added directory machine
This commit is contained in:
parent
0c55bd5ec3
commit
dacfeca1ad
|
@ -1,13 +0,0 @@
|
||||||
;;; Flags that control buffering policy.
|
|
||||||
;;; Copyright (c) 1993 by Olin Shivers.
|
|
||||||
;;; Copyright (c) 1995 by Brian D. Carlstrom.
|
|
||||||
|
|
||||||
;;; These are for the SET-PORT-BUFFERING procedure, essentially a Scheme
|
|
||||||
;;; analog of the setbuf(3S) stdio call. We use the actual stdio values.
|
|
||||||
;;; These constants are not likely to change from stdio lib to stdio lib,
|
|
||||||
;;; but you need to check when you do a port.
|
|
||||||
|
|
||||||
(define-enum-constants bufpol
|
|
||||||
(block 0) ; _IOFBF
|
|
||||||
(line 1) ; _IOLBF
|
|
||||||
(none 2)) ; _IONBF
|
|
|
@ -1,133 +0,0 @@
|
||||||
;;; Errno constant definitions.
|
|
||||||
;;; Copyright (c) 1993 by Olin Shivers.
|
|
||||||
;;; Copyright (c) 1994 by Brian D. Carlstrom.
|
|
||||||
|
|
||||||
;;; These are the correct values for BSD4.4-Lite-based systems
|
|
||||||
;;; such as NetBSD 1.0 and FreeBSD 2.0.
|
|
||||||
|
|
||||||
(define errno/2big 7) ; 2big is not a legit Scheme symbol. Lose, lose.
|
|
||||||
|
|
||||||
(define-enum-constants errno
|
|
||||||
;; POSIX:
|
|
||||||
(perm 1) ; Operation not permitted
|
|
||||||
(noent 2) ; No such file or directory
|
|
||||||
(srch 3) ; No such process
|
|
||||||
(intr 4) ; Interrupted function call
|
|
||||||
(io 5) ; Input/output error
|
|
||||||
(nxio 6) ; No such device or address
|
|
||||||
; (2big 7) ; Arg list too long
|
|
||||||
(noexec 8) ; Exec format error
|
|
||||||
(badf 9) ; Bad file descriptor
|
|
||||||
(child 10) ; No child processes
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(deadlk 11) ; Resource deadlock avoided
|
|
||||||
;; POSIX:
|
|
||||||
(nomem 12) ; Not enough space
|
|
||||||
(acces 13) ; Permission denied
|
|
||||||
(fault 14) ; Bad address
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(notblk 15) ; Block device required
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(busy 16) ; Resource busy
|
|
||||||
(exist 17) ; File exists
|
|
||||||
(xdev 18) ; Improper link
|
|
||||||
(nodev 19) ; No such device
|
|
||||||
(notdir 20) ; Not a directory
|
|
||||||
(isdir 21) ; Is a directory
|
|
||||||
(inval 22) ; Invalid argument
|
|
||||||
(nfile 23) ; Too many open files in system
|
|
||||||
(mfile 24) ; Too many open files
|
|
||||||
(notty 25) ; Inappropriate I/O control operation
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(txtbsy 26) ; Text file busy
|
|
||||||
;; POSIX
|
|
||||||
(fbig 27) ; File too large
|
|
||||||
(nospc 28) ; No space left on device
|
|
||||||
(spipe 29) ; Invalid seek
|
|
||||||
(rofs 30) ; Read-only file system
|
|
||||||
(mlink 31) ; Too many links
|
|
||||||
(pipe 32) ; Broken pipe
|
|
||||||
|
|
||||||
;; Strict ANSI
|
|
||||||
;; math software
|
|
||||||
(dom 33) ; Domain error
|
|
||||||
(range 34) ; Result too large
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(again 35) ; Resource temporarily unavaile (note overlap)
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
;; non-blocking and interrupt i/o
|
|
||||||
(wouldblock 35) ; Operation would block
|
|
||||||
(inprogress 36) ; Operation now in progress
|
|
||||||
(already 37) ; Operation already in progress
|
|
||||||
|
|
||||||
;; ipc/network software
|
|
||||||
|
|
||||||
;; argument errors
|
|
||||||
(notsock 38) ; Socket operation on non-socket
|
|
||||||
(destaddrreq 39) ; Destination address required
|
|
||||||
(msgsize 40) ; Message too long
|
|
||||||
(prototype 41) ; Protocol wrong type for socket
|
|
||||||
(noprotoopt 42) ; Protocol not available
|
|
||||||
(protonosupport 43) ; Protocol not supported
|
|
||||||
(socktnosupport 44) ; Socket type not supported
|
|
||||||
(opnotsupp 45) ; Operation not supported on socket
|
|
||||||
(pfnosupport 46) ; Protocol family not supported
|
|
||||||
(afnosupport 47) ; Address family not supported by protocol family
|
|
||||||
(addrinuse 48) ; Address already in use
|
|
||||||
(addrnotavail 49) ; Can't assign requested address
|
|
||||||
|
|
||||||
;; operational errors
|
|
||||||
(netdown 50) ; Network is down
|
|
||||||
(netunreach 51) ; Network is unreachable
|
|
||||||
(netreset 52) ; Network dropped connection on reset
|
|
||||||
(connaborted 53) ; Software caused connection abort
|
|
||||||
(connreset 54) ; Connection reset by peer
|
|
||||||
(nobufs 55) ; No buffer space available
|
|
||||||
(isconn 56) ; Socket is already connected
|
|
||||||
(notconn 57) ; Socket is not connected
|
|
||||||
(shutdown 58) ; Can't send after socket shutdown
|
|
||||||
(toomanyrefs 59) ; Too many references: can't splice
|
|
||||||
(timedout 60) ; Connection timed out
|
|
||||||
(connrefused 61) ; Connection refused
|
|
||||||
|
|
||||||
(loop 62) ; Too many levels of symbolic links
|
|
||||||
|
|
||||||
;; POSIX:
|
|
||||||
(nametoolong 63) ; File name too long
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(hostdown 64) ; Host is down
|
|
||||||
(hostunreach 65) ; No route to host
|
|
||||||
|
|
||||||
;; POSIX:
|
|
||||||
(notempty 66) ; Directory not empty
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
;; quotas & mush
|
|
||||||
(proclim 67) ; Too many processes
|
|
||||||
(users 68) ; Too many users
|
|
||||||
(dquot 69) ; Disc quota exceeded
|
|
||||||
|
|
||||||
;; Network File System
|
|
||||||
(stale 70) ; Stale NFS file handle
|
|
||||||
(remote 71) ; Too many levels of remote in path
|
|
||||||
(badrpc 72) ; RPC struct is bad
|
|
||||||
(rpcmismatch 73) ; RPC version wrong
|
|
||||||
(progunavail 74) ; RPC prog. not avail
|
|
||||||
(progmismatch 75) ; Program version wrong
|
|
||||||
(procunavail 76) ; Bad procedure for program
|
|
||||||
|
|
||||||
;; SystemV Record Locking
|
|
||||||
(nolck 77) ; No locks available
|
|
||||||
;; POSIX
|
|
||||||
(nosys 78) ; Function not implemented
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(ftype 79) ; Inappropriate file type or format
|
|
||||||
(auth 80) ; Authentication error
|
|
||||||
(needauth 81) ; Need authenticator
|
|
||||||
(last 81)) ; Must be equal largest errno
|
|
|
@ -1,55 +0,0 @@
|
||||||
;;; Flags for open(2) and fcntl(2).
|
|
||||||
;;; Copyright (c) 1993 by Olin Shivers.
|
|
||||||
;;; Copyright (c) 1994 by Brian D. Carlstrom
|
|
||||||
|
|
||||||
(define-enum-constants open
|
|
||||||
;; POSIX
|
|
||||||
(read #x0000)
|
|
||||||
(write #x0001)
|
|
||||||
(read+write #x0002)
|
|
||||||
(non-blocking #x0004) ; no delay
|
|
||||||
(append #x0008) ; set append mode
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(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
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(create #x0200) ; create if nonexistant
|
|
||||||
(truncate #x0400) ; truncate to zero length
|
|
||||||
(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() 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-no-block 8) ; F_SETLK
|
|
||||||
(set-record-lock 9)) ; F_SETLKW
|
|
||||||
|
|
||||||
;;; fcntl fdes-flags (F_GETFD)
|
|
||||||
|
|
||||||
(define fdflags/close-on-exec 1)
|
|
||||||
|
|
||||||
;;; 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
|
|
|
@ -1,3 +0,0 @@
|
||||||
/* OS-dependent support for what is supposed to be the standard ANSI C Library.
|
|
||||||
** Copyright (c) 1996 by Brian D. Carlstrom.
|
|
||||||
*/
|
|
|
@ -1,139 +0,0 @@
|
||||||
;;; Magic Numbers for Networking
|
|
||||||
;;; Copyright (c) 1994 by Brian D. Carlstrom.
|
|
||||||
|
|
||||||
;;; magic numbers not from header file
|
|
||||||
;;; but from man page
|
|
||||||
;;; why can't unix make up its mind
|
|
||||||
(define shutdown/receives 0)
|
|
||||||
(define shutdown/sends 1)
|
|
||||||
(define shutdown/sends+receives 2)
|
|
||||||
|
|
||||||
;;;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
||||||
;;; BELOW THIS POINT ARE BITS FROM:
|
|
||||||
;;; <sys/socket.h>
|
|
||||||
;;; <sys/un.h>
|
|
||||||
;;; <netinet/in.h>
|
|
||||||
;;; <netinet/tcp.h>
|
|
||||||
;;; <netdb.h>
|
|
||||||
;;;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
||||||
|
|
||||||
;;; ADDRESS FAMILIES -- <sys/socket.h>
|
|
||||||
(define address-family/unspecified 0) ; unspecified
|
|
||||||
(define address-family/unix 1) ; local to host (pipes, portals)
|
|
||||||
(define address-family/internet 2) ; internetwork: UDP, TCP, etc.
|
|
||||||
|
|
||||||
;;; SOCKET TYPES -- <sys/socket.h>
|
|
||||||
(define socket-type/stream 1) ; stream socket
|
|
||||||
(define socket-type/datagram 2) ; datagram socket
|
|
||||||
(define socket-type/raw 3) ; raw-protocol interface
|
|
||||||
;;(define socket-type/rdm 4) ; reliably-delivered message
|
|
||||||
;;(define socket-type/seqpacket 5) ; sequenced packet stream
|
|
||||||
|
|
||||||
;;; PROTOCOL FAMILIES -- <sys/socket.h>
|
|
||||||
(define protocol-family/unspecified 0) ; unspecified
|
|
||||||
(define protocol-family/unix 1) ; local to host (pipes, portals)
|
|
||||||
(define protocol-family/internet 2) ; internetwork: UDP, TCP, etc.
|
|
||||||
|
|
||||||
;;; Well know addresses -- <netinet/in.h>
|
|
||||||
(define internet-address/any #x00000000)
|
|
||||||
(define internet-address/loopback #x7f000001)
|
|
||||||
(define internet-address/broadcast #xffffffff) ; must be masked
|
|
||||||
|
|
||||||
;;; errors from host lookup -- <netdb.h>
|
|
||||||
(define herror/host-not-found 1) ;Authoritative Answer Host not found
|
|
||||||
(define herror/try-again 2) ;Non-Authoritive Host not found, or SERVERFAIL
|
|
||||||
(define herror/no-recovery 3) ;Non recoverable errors, FORMERR, REFUSED, NOTIMP
|
|
||||||
(define herror/no-data 4) ;Valid name, no data record of requested type
|
|
||||||
(define herror/no-address herror/no-data) ;no address, look for MX record
|
|
||||||
|
|
||||||
;;; flags for send/recv -- <sys/socket.h>
|
|
||||||
(define message/out-of-band 1) ; process out-of-band data
|
|
||||||
(define message/peek 2) ; peek at incoming message
|
|
||||||
(define message/dont-route 4) ; send without using routing tables
|
|
||||||
(define message/eor 8) ; data completes record
|
|
||||||
(define message/trunc #x10) ; data discarded before delivery
|
|
||||||
(define message/ctrunc #x20) ; control data lost before delivery
|
|
||||||
(define message/wait-all #x40) ; wait for full request or error
|
|
||||||
(define message/dont-wait #x80) ; this message should be nonblocking
|
|
||||||
|
|
||||||
;;; protocol level for socket options -- <sys/socket.h>
|
|
||||||
(define level/socket #xffff) ; SOL_SOCKET: options for socket level
|
|
||||||
|
|
||||||
;;; socket options -- <sys/socket.h>
|
|
||||||
(define socket/debug #x0001) ; turn on debugging info recording
|
|
||||||
(define socket/accept-connect #x0002) ; socket has had listen()
|
|
||||||
(define socket/reuse-address #x0004) ; allow local address reuse
|
|
||||||
(define socket/keep-alive #x0008) ; keep connections alive
|
|
||||||
(define socket/dont-route #x0010) ; just use interface addresses
|
|
||||||
(define socket/broadcast #x0020) ; permit sending of broadcast msgs
|
|
||||||
(define socket/use-loop-back #x0040) ; bypass hardware when possible
|
|
||||||
(define socket/linger #x0080) ; linger on close if data present
|
|
||||||
(define socket/oob-inline #x0100) ; leave received OOB data in line
|
|
||||||
(define socket/reuse-port #x0200) ; allow local address & port reuse
|
|
||||||
;(define socket/use-privileged #x4000) ; allocate from privileged port area
|
|
||||||
;(define socket/cant-signal #x8000) ; prevent SIGPIPE on SS_CANTSENDMORE
|
|
||||||
(define socket/send-buffer #x1001) ; send buffer size
|
|
||||||
(define socket/receive-buffer #x1002) ; receive buffer size
|
|
||||||
(define socket/send-low-water #x1003) ; send low-water mark
|
|
||||||
(define socket/receive-low-water #x1004) ; receive low-water mark
|
|
||||||
(define socket/send-timeout #x1005) ; send timeout
|
|
||||||
(define socket/receive-timeout #x1006) ; receive timeout
|
|
||||||
(define socket/error #x1007) ; get error status and clear
|
|
||||||
(define socket/type #x1008) ; get socket type
|
|
||||||
|
|
||||||
;;; ip options -- <netinet/in.h>
|
|
||||||
(define ip/options 1 ) ; buf/ip/opts; set/get ip options
|
|
||||||
(define ip/header-included 2 ) ; int; header is included with data
|
|
||||||
(define ip/type-of-service 3 ) ; int; ip type of service and preced.
|
|
||||||
(define ip/time-to-live 4 ) ; int; ip time to live
|
|
||||||
(define ip/receive-options 5 ) ; bool; receive all ip opts w/dgram
|
|
||||||
(define ip/response-options 6 ) ; bool; receive ip opts for response
|
|
||||||
(define ip/destination-address 7 ) ; bool; receive ip dst addr w/dgram
|
|
||||||
(define ip/ret-options 8 ) ; ip_opts; set/get ip options
|
|
||||||
(define ip/multicast-if 9 ) ; u_char; set/get ip multicast i/f
|
|
||||||
(define ip/multicast-ttl 10 ) ; u_char; set/get ip multicast ttl
|
|
||||||
(define ip/multicast-loop 11 ) ; u_char; set/get ip multicast loopback
|
|
||||||
(define ip/add-membership 12 ) ; ip_mreq; add an ip group membership
|
|
||||||
(define ip/drop-membership 13 ) ; ip_mreq; drop an ip group membership
|
|
||||||
|
|
||||||
;;; tcp options -- <netinet/tcp.h>
|
|
||||||
(define tcp/no-delay #x01) ; don't delay send to coalesce packets
|
|
||||||
(define tcp/max-segment #x02) ; set maximum segment size
|
|
||||||
|
|
||||||
;;; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
||||||
;;; OPTION SETS FOR SOCKET-OPTION AND SET-SOCKET-OPTION
|
|
||||||
|
|
||||||
;;; Boolean Options
|
|
||||||
(define options/boolean
|
|
||||||
(list socket/debug
|
|
||||||
socket/accept-connect
|
|
||||||
socket/reuse-address
|
|
||||||
socket/keep-alive
|
|
||||||
socket/dont-route
|
|
||||||
socket/broadcast
|
|
||||||
socket/use-loop-back
|
|
||||||
socket/oob-inline
|
|
||||||
socket/reuse-port ;BSD4.4-Lite
|
|
||||||
; socket/use-privileged
|
|
||||||
; socket/cant-signal
|
|
||||||
tcp/no-delay))
|
|
||||||
|
|
||||||
;;; Integer Options
|
|
||||||
(define options/value
|
|
||||||
(list socket/send-buffer
|
|
||||||
socket/receive-buffer
|
|
||||||
socket/send-low-water
|
|
||||||
socket/receive-low-water
|
|
||||||
socket/error
|
|
||||||
socket/type
|
|
||||||
ip/time-to-live
|
|
||||||
tcp/max-segment))
|
|
||||||
|
|
||||||
;;; #f or Positive Integer
|
|
||||||
(define options/linger
|
|
||||||
(list socket/linger))
|
|
||||||
|
|
||||||
;;; Real Number
|
|
||||||
(define options/timeout
|
|
||||||
(list socket/send-timeout
|
|
||||||
socket/receive-timeout))
|
|
|
@ -1,137 +0,0 @@
|
||||||
;;; Interfaces and packages for the BSD4.4-Lite specific parts of scsh.
|
|
||||||
;;; Copyright (c) 1994 by Olin Shivers.
|
|
||||||
;;; Copyright (c) 1994 by Brian D. Carlstrom.
|
|
||||||
|
|
||||||
(define-interface bsd44lite-fdflags-extras-interface
|
|
||||||
(export open/shared-lock
|
|
||||||
open/exclusive-lock
|
|
||||||
open/async
|
|
||||||
open/fsync
|
|
||||||
fcntl/get-owner
|
|
||||||
fcntl/set-owner))
|
|
||||||
|
|
||||||
(define-interface bsd44lite-errno-extras-interface
|
|
||||||
(export errno/notblk
|
|
||||||
errno/txtbsy
|
|
||||||
errno/wouldblock
|
|
||||||
errno/inprogress
|
|
||||||
errno/already
|
|
||||||
errno/notsock
|
|
||||||
errno/destaddrreq
|
|
||||||
errno/msgsize
|
|
||||||
errno/prototype
|
|
||||||
errno/noprotoopt
|
|
||||||
errno/protonosupport
|
|
||||||
errno/socktnosupport
|
|
||||||
errno/opnotsupp
|
|
||||||
errno/pfnosupport
|
|
||||||
errno/afnosupport
|
|
||||||
errno/addrinuse
|
|
||||||
errno/addrnotavail
|
|
||||||
errno/netdown
|
|
||||||
errno/netunreach
|
|
||||||
errno/netreset
|
|
||||||
errno/connaborted
|
|
||||||
errno/connreset
|
|
||||||
errno/nobufs
|
|
||||||
errno/isconn
|
|
||||||
errno/notconn
|
|
||||||
errno/shutdown
|
|
||||||
errno/toomanyrefs
|
|
||||||
errno/timedout
|
|
||||||
errno/connrefused
|
|
||||||
errno/loop
|
|
||||||
errno/hostdown
|
|
||||||
errno/hostunreach
|
|
||||||
errno/proclim
|
|
||||||
errno/users
|
|
||||||
errno/dquot
|
|
||||||
errno/stale
|
|
||||||
errno/remote
|
|
||||||
errno/badrpc
|
|
||||||
errno/rpcmismatch
|
|
||||||
errno/progunavail
|
|
||||||
errno/progmismatch
|
|
||||||
errno/ftype
|
|
||||||
errno/auth
|
|
||||||
errno/needauth
|
|
||||||
errno/last))
|
|
||||||
|
|
||||||
(define-interface bsd44lite-signals-extras-interface
|
|
||||||
(export signal/trap
|
|
||||||
signal/emt
|
|
||||||
signal/bus
|
|
||||||
signal/sys
|
|
||||||
signal/urg
|
|
||||||
signal/cld
|
|
||||||
signal/io
|
|
||||||
signal/xcpu
|
|
||||||
signal/xfsz
|
|
||||||
signal/vtalrm
|
|
||||||
signal/prof
|
|
||||||
signal/winch
|
|
||||||
signal/info))
|
|
||||||
|
|
||||||
(define-interface bsd44lite-network-extras-interface
|
|
||||||
(export socket/debug
|
|
||||||
socket/accept-connect
|
|
||||||
socket/reuse-address
|
|
||||||
socket/keep-alive
|
|
||||||
socket/dont-route
|
|
||||||
socket/broadcast
|
|
||||||
socket/use-loop-back
|
|
||||||
socket/linger
|
|
||||||
socket/oob-inline
|
|
||||||
socket/reuse-port ;bsd44lite
|
|
||||||
; socket/use-privileged
|
|
||||||
; socket/cant-signal
|
|
||||||
socket/send-buffer
|
|
||||||
socket/receive-buffer
|
|
||||||
socket/send-low-water
|
|
||||||
socket/receive-low-water
|
|
||||||
socket/send-timeout
|
|
||||||
socket/receive-timeout
|
|
||||||
socket/error
|
|
||||||
socket/type
|
|
||||||
;;; all ip/* but ip/options and ip/time-to-live bsd44lite only
|
|
||||||
ip/options
|
|
||||||
ip/header-included
|
|
||||||
ip/type-of-service
|
|
||||||
ip/time-to-live
|
|
||||||
ip/receive-options
|
|
||||||
ip/response-options
|
|
||||||
ip/destination-address
|
|
||||||
ip/ret-options
|
|
||||||
ip/multicast-if
|
|
||||||
ip/multicast-ttl
|
|
||||||
ip/multicast-loop
|
|
||||||
ip/add-membership
|
|
||||||
ip/drop-membership
|
|
||||||
tcp/no-delay
|
|
||||||
tcp/max-segment
|
|
||||||
message/eor
|
|
||||||
message/trunc
|
|
||||||
message/ctrunc
|
|
||||||
message/wait-all
|
|
||||||
message/dont-wait))
|
|
||||||
|
|
||||||
(define-interface bsd44lite-extras-interface
|
|
||||||
(compound-interface bsd44lite-errno-extras-interface
|
|
||||||
bsd44lite-fdflags-extras-interface
|
|
||||||
bsd44lite-network-extras-interface
|
|
||||||
bsd44lite-signals-extras-interface))
|
|
||||||
|
|
||||||
(define-interface bsd44lite-defs-interface
|
|
||||||
(compound-interface bsd44lite-extras-interface
|
|
||||||
sockets-network-interface
|
|
||||||
posix-errno-interface
|
|
||||||
posix-fdflags-interface
|
|
||||||
posix-signals-interface
|
|
||||||
signals-internals-interface))
|
|
||||||
|
|
||||||
(define-structure bsd44lite-defs bsd44lite-defs-interface
|
|
||||||
(open scheme bitwise defenum-package)
|
|
||||||
(files fdflags errno signals netconst))
|
|
||||||
|
|
||||||
(define-interface os-extras-interface bsd44lite-extras-interface)
|
|
||||||
(define os-dependent bsd44lite-defs)
|
|
|
@ -1,72 +0,0 @@
|
||||||
;;; Signal constant definitions for BSD4.4-Lite
|
|
||||||
;;; Copyright (c) 1994 by Olin Shivers.
|
|
||||||
;;; Copyright (c) 1994 by Brian D. Carlstrom.
|
|
||||||
|
|
||||||
(define-enum-constants signal
|
|
||||||
;; POSIX
|
|
||||||
(hup 1) ; hangup
|
|
||||||
(int 2) ; interrupt
|
|
||||||
(quit 3) ; quit
|
|
||||||
(ill 4) ; illegal instruction (not reset when caught)
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(trap 5) ; trace trap (not reset when caught)
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(iot 6) ; IOT instruction
|
|
||||||
(abrt 6) ; used by abort, replace SIGIOT in the future
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(emt 7) ; EMT instruction
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(fpe 8) ; floating point exception
|
|
||||||
(kill 9) ; kill (cannot be caught or ignored)
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(bus 10) ; bus error
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(segv 11) ; segmentation violation
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(sys 12) ; bad argument to system call
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(pipe 13) ; write on a pipe with no one to read it
|
|
||||||
(alrm 14) ; alarm clock
|
|
||||||
(term 15) ; software termination signal from kill
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(urg 16) ; urgent condition on IO channel
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(stop 17) ; sendable stop signal not from tty
|
|
||||||
(tstp 18) ; stop signal from tty
|
|
||||||
(cont 19) ; continue a stopped process
|
|
||||||
(chld 20) ; to parent on child stop or exit
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(cld 20) ; System V name for SIGCHLD
|
|
||||||
|
|
||||||
;; POSIX
|
|
||||||
(ttin 21) ; to readers pgrp upon background tty read
|
|
||||||
(ttou 22) ; like TTIN for output if (tp->t_local<OSTOP)
|
|
||||||
|
|
||||||
;; BSD4.4-Lite
|
|
||||||
(io 23) ; input/output possible signal
|
|
||||||
(xcpu 24) ; exceeded CPU time limit
|
|
||||||
(xfsz 25) ; exceeded file size limit
|
|
||||||
(vtalrm 26) ; virtual time alarm
|
|
||||||
(prof 27) ; profiling time alarm
|
|
||||||
(winch 28) ; window changed
|
|
||||||
(info 29) ; information request
|
|
||||||
|
|
||||||
;; User defined
|
|
||||||
(usr1 30) ; user defined signal 1
|
|
||||||
(usr2 31) ; user defined signal 2
|
|
||||||
)
|
|
||||||
|
|
||||||
(define signals-ignored-by-default
|
|
||||||
(list signal/chld signal/cont ; These are Posix.
|
|
||||||
signal/info signal/io signal/urg signal/winch)) ; These are BSD.
|
|
|
@ -1,129 +0,0 @@
|
||||||
/* Need to turn off synchronous error signals (SIGPIPE, SIGSYS). */
|
|
||||||
|
|
||||||
#include "../scsh_aux.h"
|
|
||||||
|
|
||||||
/* Make sure our exports match up w/the implementation: */
|
|
||||||
#include "../signals1.h"
|
|
||||||
|
|
||||||
/* This table converts Unix signal numbers to S48/scsh interrupt numbers.
|
|
||||||
** If the signal doesn't have an interrupt number, the entry is -1.
|
|
||||||
** (Only asynchronous signals have interrupt numbers.)
|
|
||||||
**
|
|
||||||
** Note that we bake into this table the integer values of the signals --
|
|
||||||
** i.e., we assume that SIGHUP=1, SIGALRM=15, etc. So this definition is
|
|
||||||
** very system-dependent.
|
|
||||||
*/
|
|
||||||
const int sig2int[] = {
|
|
||||||
-1, /* 0 is not a signal */
|
|
||||||
scshint_hup, /* SIGHUP */
|
|
||||||
scshint_keyboard, /* SIGINT */
|
|
||||||
scshint_quit, /* SIGQUIT */
|
|
||||||
-1, /* SIGILL */
|
|
||||||
-1, /* SIGTRAP */
|
|
||||||
-1, /* SIGABRT & SIGIOT */
|
|
||||||
-1, /* SIGEMT */
|
|
||||||
-1, /* SIGFPE */
|
|
||||||
-1, /* SIGKILL */
|
|
||||||
-1, /* SIGBUS */
|
|
||||||
-1, /* SIGSEGV */
|
|
||||||
-1, /* SIGSYS */
|
|
||||||
-1, /* SIGPIPE */
|
|
||||||
scshint_alarm, /* SIGALRM */
|
|
||||||
scshint_term, /* SIGTERM */
|
|
||||||
scshint_urg, /* SIGURG */
|
|
||||||
-1, /* SIGSTOP */
|
|
||||||
scshint_tstp, /* SIGTSTP */
|
|
||||||
scshint_cont, /* SIGCONT */
|
|
||||||
scshint_chld, /* SIGCHLD */
|
|
||||||
-1, /* scshint_ttyin, /* SIGTTIN */
|
|
||||||
-1, /* scshint_ttou, /* SIGTTOU */
|
|
||||||
scshint_io, /* SIGIO */
|
|
||||||
scshint_xcpu, /* SIGXCPU */
|
|
||||||
scshint_xfsz, /* SIGXFSZ */
|
|
||||||
scshint_vtalrm, /* SIGVTALRM */
|
|
||||||
scshint_prof, /* SIGPROF */
|
|
||||||
scshint_winch, /* SIGWINCH */
|
|
||||||
scshint_info, /* SIGINFO */
|
|
||||||
scshint_usr1, /* SIGUSR1 */
|
|
||||||
scshint_usr2 /* SIGUSR2 */
|
|
||||||
};
|
|
||||||
|
|
||||||
const int max_sig = 31; /* SIGUSR2 */
|
|
||||||
|
|
||||||
/*
|
|
||||||
scshint_alarm
|
|
||||||
scshint_keyboard
|
|
||||||
scshint_memory_shortage
|
|
||||||
scshint_chld
|
|
||||||
scshint_cont
|
|
||||||
scshint_hup
|
|
||||||
scshint_quit
|
|
||||||
scshint_term
|
|
||||||
scshint_tstp
|
|
||||||
scshint_usr1
|
|
||||||
scshint_usr2
|
|
||||||
scshint_info
|
|
||||||
scshint_io
|
|
||||||
scshint_poll
|
|
||||||
scshint_prof
|
|
||||||
scshint_pwr
|
|
||||||
scshint_urg
|
|
||||||
scshint_vtalrm
|
|
||||||
scshint_winch
|
|
||||||
scshint_xcpu
|
|
||||||
scshint_xfsz
|
|
||||||
|
|
||||||
SIGALRM
|
|
||||||
SIGCHLD
|
|
||||||
SIGCONT
|
|
||||||
SIGHUP
|
|
||||||
SIGINFO
|
|
||||||
SIGINT
|
|
||||||
SIGIO
|
|
||||||
SIGPROF
|
|
||||||
SIGQUIT
|
|
||||||
SIGTERM
|
|
||||||
SIGTSTP
|
|
||||||
SIGTTIN
|
|
||||||
SIGTTOU
|
|
||||||
SIGURG
|
|
||||||
SIGUSR1
|
|
||||||
SIGUSR2
|
|
||||||
SIGVTALRM
|
|
||||||
SIGWINCH
|
|
||||||
SIGXCPU
|
|
||||||
SIGXFSZ
|
|
||||||
|
|
||||||
SIGHUP 1
|
|
||||||
SIGINT 2
|
|
||||||
SIGQUIT 3
|
|
||||||
SIGILL 4
|
|
||||||
SIGTRAP 5
|
|
||||||
SIGABRT 6
|
|
||||||
SIGIOT SIGABRT
|
|
||||||
SIGEMT 7
|
|
||||||
SIGFPE 8
|
|
||||||
SIGKILL 9
|
|
||||||
SIGBUS 10
|
|
||||||
SIGSEGV 11
|
|
||||||
SIGSYS 12
|
|
||||||
SIGPIPE 13
|
|
||||||
SIGALRM 14
|
|
||||||
SIGTERM 15
|
|
||||||
SIGURG 16
|
|
||||||
SIGSTOP 17
|
|
||||||
SIGTSTP 18
|
|
||||||
SIGCONT 19
|
|
||||||
SIGCHLD 20
|
|
||||||
SIGTTIN 21
|
|
||||||
SIGTTOU 22
|
|
||||||
SIGIO 23
|
|
||||||
SIGXCPU 24
|
|
||||||
SIGXFSZ 25
|
|
||||||
SIGVTALRM 26
|
|
||||||
SIGPROF 27
|
|
||||||
SIGWINCH 28
|
|
||||||
SIGINFO 29
|
|
||||||
SIGUSR1 30
|
|
||||||
SIGUSR2 31
|
|
||||||
*/
|
|
|
@ -1,10 +0,0 @@
|
||||||
/* Convert between a lo24/hi integer-pair bitset and a sigset_t value.
|
|
||||||
** These macros are OS-dependent, and must be defined per-OS.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define make_sigset(maskp, hi, lo) (*maskp=((hi)<<24)|(lo))
|
|
||||||
|
|
||||||
/* Not a procedure: */
|
|
||||||
#define split_sigset(mask, hip, lop) \
|
|
||||||
((*(hip)=(mask>>24)&0xff), \
|
|
||||||
(*(lop)=(mask&0xffffff)))
|
|
|
@ -1,83 +0,0 @@
|
||||||
/* Copyright (c) 1994 by Olin Shivers.
|
|
||||||
** Copyright (c) 1994-1995 by Brian D. Carlstrom.
|
|
||||||
**
|
|
||||||
** This file implements the char-ready? procedure for file descriptors
|
|
||||||
** and Scsh's fdports. It is not Posix, so it must be implemented for
|
|
||||||
** each OS to which scsh is ported.
|
|
||||||
**
|
|
||||||
** This version assumes two things:
|
|
||||||
** - the existence of select to tell if there is data
|
|
||||||
** available for the file descriptor.
|
|
||||||
** - the existence of the _cnt field in the stdio FILE struct, telling
|
|
||||||
** if there is any buffered input in the struct.
|
|
||||||
**
|
|
||||||
** Most Unixes have these things, so this file should work for them.
|
|
||||||
** However, Your Mileage May Vary.
|
|
||||||
**
|
|
||||||
** You could also replace the select() with a iotctl(FIONREAD) call, if you
|
|
||||||
** had one but not the other.
|
|
||||||
** -Olin&Brian
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include "libcig.h"
|
|
||||||
#include <errno.h>
|
|
||||||
|
|
||||||
#include "stdio_dep.h" /* Make sure the .h interface agrees with the code. */
|
|
||||||
|
|
||||||
/* These two procs return #t if data ready, #f data not ready,
|
|
||||||
** and errno if error.
|
|
||||||
*/
|
|
||||||
|
|
||||||
s48_value char_ready_fdes(int fd)
|
|
||||||
{
|
|
||||||
fd_set readfds;
|
|
||||||
struct timeval timeout;
|
|
||||||
int result;
|
|
||||||
|
|
||||||
FD_ZERO(&readfds);
|
|
||||||
FD_SET(fd,&readfds);
|
|
||||||
|
|
||||||
timeout.tv_sec=0;
|
|
||||||
timeout.tv_usec=0;
|
|
||||||
|
|
||||||
result=select(fd+1, &readfds, NULL, NULL, &timeout);
|
|
||||||
|
|
||||||
if(result == -1 )
|
|
||||||
return(s48_enter_fixnum(errno));
|
|
||||||
if(result)
|
|
||||||
return(S48_TRUE);
|
|
||||||
return(S48_FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
s48_value stream_char_readyp(FILE *f)
|
|
||||||
{
|
|
||||||
int fd = fileno(f);
|
|
||||||
return f->_r > 0 ? S48_TRUE : char_ready_fdes(fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setfileno(FILE *fs, int fd)
|
|
||||||
{
|
|
||||||
fileno(fs) = fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
int fbufcount(FILE* fs)
|
|
||||||
{
|
|
||||||
return(fs->_r);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns true if there is no buffered data in stream FS
|
|
||||||
** (or there is no buffering, period.)
|
|
||||||
*/
|
|
||||||
|
|
||||||
int ibuf_empty(FILE *fs) {return fs->_r <= 0;}
|
|
||||||
|
|
||||||
|
|
||||||
/* Returns true if the buffer in stream FS is full
|
|
||||||
** (or there is no buffering, period).
|
|
||||||
*/
|
|
||||||
|
|
||||||
int obuf_full(FILE *fs) {return fs->_w <= 0;}
|
|
|
@ -1,13 +0,0 @@
|
||||||
/* Exports from stdio_dep.h. */
|
|
||||||
|
|
||||||
s48_value char_ready_fdes(int fd);
|
|
||||||
|
|
||||||
s48_value stream_char_readyp(FILE *f);
|
|
||||||
|
|
||||||
void setfileno(FILE *fs, int fd);
|
|
||||||
|
|
||||||
int fbufcount(FILE* fs);
|
|
||||||
|
|
||||||
int ibuf_empty(FILE *fs);
|
|
||||||
|
|
||||||
int obuf_full(FILE *fs);
|
|
|
@ -1,8 +0,0 @@
|
||||||
;;; OS-dependent time stuff
|
|
||||||
;;; Copyright (c) 1995 by Olin Shivers.
|
|
||||||
|
|
||||||
;;; This suffices for BSD systems with the gettimeofday()
|
|
||||||
;;; microsecond-resolution timer.
|
|
||||||
|
|
||||||
(define (ticks/sec) 1000000) ; usec
|
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
/* OS-dependent support for fine-grained timer.
|
|
||||||
** Copyright (c) 1995 by Olin Shivers.
|
|
||||||
**
|
|
||||||
** We return the current time in seconds and sub-second "ticks" where the
|
|
||||||
** number of ticks/second is OS dependent (and is defined in time_dep.scm).
|
|
||||||
** This definition works on any BSD Unix with the gettimeofday()
|
|
||||||
** microsecond-resolution timer.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include "scheme48.h"
|
|
||||||
#include "../time1.h"
|
|
||||||
|
|
||||||
/* Sux because it's dependent on 32-bitness. */
|
|
||||||
#define hi8(i) (((i)>>24) & 0xff)
|
|
||||||
#define lo24(i) ((i) & 0xffffff)
|
|
||||||
#define comp8_24(hi, lo) (((hi)<<24) + (lo))
|
|
||||||
|
|
||||||
s48_value time_plus_ticks(int *hi_secs, int *lo_secs,
|
|
||||||
int *hi_ticks, int *lo_ticks)
|
|
||||||
{
|
|
||||||
struct timeval t;
|
|
||||||
struct timezone tz;
|
|
||||||
|
|
||||||
if( gettimeofday(&t, &tz) ) return s48_enter_fixnum(errno);
|
|
||||||
|
|
||||||
{ long int secs = t.tv_sec;
|
|
||||||
long int ticks = t.tv_usec;
|
|
||||||
|
|
||||||
*hi_secs = hi8(secs);
|
|
||||||
*lo_secs = lo24(secs);
|
|
||||||
*hi_ticks = hi8(ticks);
|
|
||||||
*lo_ticks = lo24(ticks);
|
|
||||||
}
|
|
||||||
|
|
||||||
return S48_FALSE;
|
|
||||||
}
|
|
|
@ -1,220 +0,0 @@
|
||||||
;;; Constant definitions for tty control code (POSIX termios).
|
|
||||||
;;; Copyright (c) 1995 by Brian Carlstrom.
|
|
||||||
;;; Largely rehacked by Olin.
|
|
||||||
;;; Constants from NetBSD header files substituted by Bill Sommerfeld
|
|
||||||
|
|
||||||
;;; These constants are for NetBSD 1.1 pre-alpha
|
|
||||||
;;; and are taken from /usr/include/sys/termios.h. These should
|
|
||||||
;;; work with any BSD4.4-Lite derived system (such as FreeBSD).
|
|
||||||
|
|
||||||
;;; Non-standard (POSIX, SVR4, 4.3+BSD) things:
|
|
||||||
;;; - Some of the baud rates.
|
|
||||||
|
|
||||||
|
|
||||||
;;; Special Control Characters
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;;; Indices into the c_cc[] character array.
|
|
||||||
|
|
||||||
;;; Name Subscript Enabled by
|
|
||||||
;;; ---- --------- ----------
|
|
||||||
;;; POSIX
|
|
||||||
(define ttychar/eof 0) ; ^d icanon
|
|
||||||
(define ttychar/eol 1) ; icanon
|
|
||||||
|
|
||||||
(define ttychar/delete-char 3) ; ^? icanon
|
|
||||||
|
|
||||||
(define ttychar/delete-line 5) ; ^u icanon
|
|
||||||
|
|
||||||
(define ttychar/interrupt 8) ; ^c isig
|
|
||||||
(define ttychar/quit 9) ; ^\ isig
|
|
||||||
(define ttychar/suspend 10) ; ^z isig
|
|
||||||
|
|
||||||
(define ttychar/start 12) ; ^q ixon, ixoff
|
|
||||||
(define ttychar/stop 13) ; ^s ixon, ixoff
|
|
||||||
(define ttychar/min 16) ; !icanon ; Not exported
|
|
||||||
(define ttychar/time 17) ; !icanon ; Not exported
|
|
||||||
|
|
||||||
;;; SVR4 & 4.3+BSD
|
|
||||||
(define ttychar/eol2 2) ; icanon
|
|
||||||
(define ttychar/delete-word 4) ; ^w icanon
|
|
||||||
(define ttychar/reprint 6) ; ^r icanon
|
|
||||||
(define ttychar/delayed-suspend 11) ; ^y isig
|
|
||||||
(define ttychar/literal-next 14) ; ^v iexten
|
|
||||||
(define ttychar/discard 15) ; ^o iexten
|
|
||||||
|
|
||||||
;;; 4.3+BSD
|
|
||||||
(define ttychar/status 18) ; ^t icanon
|
|
||||||
|
|
||||||
;;; Length of control-char string -- *Not Exported*
|
|
||||||
(define num-ttychars 20)
|
|
||||||
|
|
||||||
;;; Magic "disable feature" tty character
|
|
||||||
(define disable-tty-char (ascii->char #xff)) ; _POSIX_VDISABLE
|
|
||||||
|
|
||||||
;;; Flags controllling input processing
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;;; POSIX
|
|
||||||
(define ttyin/ignore-break #x00001) ; ignbrk
|
|
||||||
(define ttyin/interrupt-on-break #x00002) ; brkint
|
|
||||||
(define ttyin/ignore-bad-parity-chars #x00004) ; ignpar
|
|
||||||
(define ttyin/mark-parity-errors #x00008) ; parmrk
|
|
||||||
(define ttyin/check-parity #x00010) ; inpck
|
|
||||||
(define ttyin/7bits #x00020) ; istrip
|
|
||||||
(define ttyin/nl->cr #x00040) ; inlcr
|
|
||||||
(define ttyin/ignore-cr #x00080) ; igncr
|
|
||||||
(define ttyin/cr->nl #x00100) ; icrnl
|
|
||||||
(define ttyin/output-flow-ctl #x00200) ; ixon
|
|
||||||
(define ttyin/input-flow-ctl #x00400) ; ixoff
|
|
||||||
|
|
||||||
;;; SVR4 & 4.3+BSD
|
|
||||||
(define ttyin/xon-any #x00800) ; ixany: Any char restarts after stop
|
|
||||||
(define ttyin/beep-on-overflow #x02000) ; imaxbel: queue full => ring bell
|
|
||||||
|
|
||||||
;;; SVR4
|
|
||||||
(define ttyin/lowercase #f) ; iuclc: Map upper-case to lower case
|
|
||||||
|
|
||||||
|
|
||||||
;;; Flags controlling output processing
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;;; POSIX
|
|
||||||
(define ttyout/enable #x000001) ; opost: enable output processing
|
|
||||||
|
|
||||||
;;; SVR4 & 4.3+BSD
|
|
||||||
(define ttyout/nl->crnl #x000002) ; onlcr: map nl to cr-nl
|
|
||||||
|
|
||||||
;;; 4.3+BSD
|
|
||||||
(define ttyout/discard-eot #x000008) ; onoeot
|
|
||||||
(define ttyout/expand-tabs #x000004) ; oxtabs (NOT xtabs)
|
|
||||||
|
|
||||||
;;; SVR4
|
|
||||||
(define ttyout/cr->nl #f) ; ocrnl
|
|
||||||
(define ttyout/fill-w/del #f) ; ofdel
|
|
||||||
(define ttyout/delay-w/fill-char #f) ; ofill
|
|
||||||
(define ttyout/uppercase #f) ; olcuc
|
|
||||||
(define ttyout/nl-does-cr #f) ; onlret
|
|
||||||
(define ttyout/no-col0-cr #f) ; onocr
|
|
||||||
|
|
||||||
;;; Newline delay
|
|
||||||
(define ttyout/nl-delay #f) ; mask (nldly)
|
|
||||||
(define ttyout/nl-delay0 #f)
|
|
||||||
(define ttyout/nl-delay1 #f) ; tty 37
|
|
||||||
|
|
||||||
;;; Horizontal-tab delay
|
|
||||||
(define ttyout/tab-delay #f) ; mask (tabdly)
|
|
||||||
(define ttyout/tab-delay0 #f)
|
|
||||||
(define ttyout/tab-delay1 #f) ; tty 37
|
|
||||||
(define ttyout/tab-delay2 #f)
|
|
||||||
(define ttyout/tab-delayx #f) ; Expand tabs (xtabs, tab3)
|
|
||||||
|
|
||||||
;;; Carriage-return delay
|
|
||||||
(define ttyout/cr-delay #f) ; mask (crdly)
|
|
||||||
(define ttyout/cr-delay0 #f)
|
|
||||||
(define ttyout/cr-delay1 #f) ; tn 300
|
|
||||||
(define ttyout/cr-delay2 #f) ; tty 37
|
|
||||||
(define ttyout/cr-delay3 #f) ; concept 100
|
|
||||||
|
|
||||||
;;; Vertical tab delay
|
|
||||||
(define ttyout/vtab-delay #f) ; mask (vtdly)
|
|
||||||
(define ttyout/vtab-delay0 #f)
|
|
||||||
(define ttyout/vtab-delay1 #f) ; tty 37
|
|
||||||
|
|
||||||
;;; Backspace delay
|
|
||||||
(define ttyout/bs-delay #f) ; mask (bsdly)
|
|
||||||
(define ttyout/bs-delay0 #f)
|
|
||||||
(define ttyout/bs-delay1 #f)
|
|
||||||
|
|
||||||
;;; Form-feed delay
|
|
||||||
(define ttyout/ff-delay #f) ; mask (ffdly)
|
|
||||||
(define ttyout/ff-delay0 #f)
|
|
||||||
(define ttyout/ff-delay1 #f)
|
|
||||||
|
|
||||||
(define ttyout/all-delay #f)
|
|
||||||
|
|
||||||
;;; Control flags - hacking the serial-line.
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;;; POSIX
|
|
||||||
(define ttyc/char-size #x00300) ; csize: character size mask
|
|
||||||
(define ttyc/char-size5 #x00000) ; 5 bits (cs5)
|
|
||||||
(define ttyc/char-size6 #x00100) ; 6 bits (cs6)
|
|
||||||
(define ttyc/char-size7 #x00200) ; 7 bits (cs7)
|
|
||||||
(define ttyc/char-size8 #x00300) ; 8 bits (cs8)
|
|
||||||
(define ttyc/2-stop-bits #x00400) ; cstopb: Send 2 stop bits.
|
|
||||||
(define ttyc/enable-read #x00800) ; cread: Enable receiver.
|
|
||||||
(define ttyc/enable-parity #x01000) ; parenb
|
|
||||||
(define ttyc/odd-parity #x02000) ; parodd
|
|
||||||
(define ttyc/hup-on-close #x04000) ; hupcl: Hang up on last close.
|
|
||||||
(define ttyc/no-modem-sync #x08000) ; clocal: Ignore modem lines.
|
|
||||||
|
|
||||||
;;; 4.3+BSD
|
|
||||||
(define ttyc/ignore-flags #x00001) ; cignore: ignore control flags
|
|
||||||
(define ttyc/CTS-output-flow-ctl #x00010000) ; ccts_oflow: CTS flow control of output
|
|
||||||
(define ttyc/RTS-input-flow-ctl #x00010000) ; crts_iflow: RTS flow control of input
|
|
||||||
(define ttyc/carrier-flow-ctl #x00100000) ; mdmbuf
|
|
||||||
|
|
||||||
;;; Local flags -- hacking the tty driver / user interface.
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;;; POSIX
|
|
||||||
(define ttyl/visual-delete #x00000002) ; echoe: Visually erase chars
|
|
||||||
(define ttyl/echo-delete-line #x00000004) ; echok: Echo nl after line kill
|
|
||||||
(define ttyl/echo #x00000008) ; echo: Enable echoing
|
|
||||||
(define ttyl/echo-nl #x00000010) ; echonl: Echo nl even if echo is off
|
|
||||||
(define ttyl/canonical #x00000100) ; icanon: Canonicalize input
|
|
||||||
(define ttyl/enable-signals #x00000080) ; isig: Enable ^c, ^z signalling
|
|
||||||
(define ttyl/extended #x00000400) ; iexten: Enable extensions
|
|
||||||
(define ttyl/ttou-signal #x00400000) ; tostop: SIGTTOU on background output
|
|
||||||
(define ttyl/no-flush-on-interrupt #x80000000) ; noflsh
|
|
||||||
|
|
||||||
;;; SVR4 & 4.3+BSD
|
|
||||||
(define ttyl/visual-delete-line #x00000001); echoke: visually erase a line-kill
|
|
||||||
(define ttyl/hardcopy-delete #x00000020); echoprt: visual erase for hardcopy
|
|
||||||
(define ttyl/echo-ctl #x00000040); echoctl: echo control chars as "^X"
|
|
||||||
(define ttyl/flush-output #x00800000); flusho: output is being flushed
|
|
||||||
(define ttyl/reprint-unread-chars #x20000000); pendin: retype pending input
|
|
||||||
|
|
||||||
;;; 4.3+BSD
|
|
||||||
(define ttyl/alt-delete-word #x00000200) ; altwerase
|
|
||||||
(define ttyl/no-kernel-status #x02000000) ; nokerninfo: no kernel status on ^T
|
|
||||||
|
|
||||||
;;; SVR4
|
|
||||||
(define ttyl/case-map #f) ; xcase: canonical upper/lower presentation
|
|
||||||
|
|
||||||
;;; Vector of (speed . code) pairs.
|
|
||||||
|
|
||||||
(define baud-rates '#((0 . 0) (50 . 50) (75 . 75)
|
|
||||||
(110 . 110) (134 . 134) (150 . 150)
|
|
||||||
(200 . 200) (300 . 300) (600 . 600)
|
|
||||||
(1200 . 1200) (1800 . 1800) (2400 . 2400)
|
|
||||||
(4800 . 4800) (7200 . 7200) (9600 . 9600)
|
|
||||||
(14400 . 14400) (19200 . 19200) (28800 . 28800)
|
|
||||||
(38400 . 38400) (19200 . exta) (38400 . extb)
|
|
||||||
(57600 . 57600) (76800 . 76800) (115200 . 115200)
|
|
||||||
(230400 . 230400)))
|
|
||||||
|
|
||||||
;;; tcflush() constants
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(define %flush-tty/input 1) ; TCIFLUSH
|
|
||||||
(define %flush-tty/output 2) ; TCOFLUSH
|
|
||||||
(define %flush-tty/both 3) ; TCIOFLUSH
|
|
||||||
|
|
||||||
|
|
||||||
;;; tcflow() constants
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(define %tcflow/start-out 2) ; TCOON
|
|
||||||
(define %tcflow/stop-out 1) ; TCOOFF
|
|
||||||
(define %tcflow/start-in 4) ; TCION
|
|
||||||
(define %tcflow/stop-in 3) ; TCIOFF
|
|
||||||
|
|
||||||
|
|
||||||
;;; tcsetattr() constants
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(define %set-tty-info/now 0) ; TCSANOW Make change immediately.
|
|
||||||
(define %set-tty-info/drain 1) ; TCSADRAIN Drain output, then change.
|
|
||||||
(define %set-tty-info/flush 2) ; TCSAFLUSH Drain output, flush input.
|
|
||||||
(define %set-tty-info/soft #x10) ; flag: don't alter h.w. state
|
|
|
@ -1,40 +0,0 @@
|
||||||
;;; Scsh routines for analysing exit codes returned by WAIT.
|
|
||||||
;;; Copyright (c) 1994 by Olin Shivers.
|
|
||||||
;;;
|
|
||||||
;;; To port these to a new OS, consult /usr/include/sys/wait.h,
|
|
||||||
;;; and check the WIFEXITED, WEXITSTATUS, WIFSTOPPED, WSTOPSIG,
|
|
||||||
;;; WIFSIGNALED, and WTERMSIG macros for the magic fields they use.
|
|
||||||
;;; These definitions are for BSD4.4-Lite.
|
|
||||||
;;;
|
|
||||||
;;; I could have done a portable version by making C calls for this,
|
|
||||||
;;; but it's such overkill.
|
|
||||||
|
|
||||||
|
|
||||||
;;; If process terminated normally, return the exit code, otw #f.
|
|
||||||
|
|
||||||
(define (status:exit-val status)
|
|
||||||
(and (zero? (bitwise-and #x7F status))
|
|
||||||
(arithmetic-shift status -8)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;;; If the process was suspended, return the suspending signal, otw #f.
|
|
||||||
|
|
||||||
(define (status:stop-sig status)
|
|
||||||
(and (= #x7F (bitwise-and status #x7F))
|
|
||||||
(arithmetic-shift status -8)))
|
|
||||||
|
|
||||||
|
|
||||||
;;; If the process terminated abnormally,
|
|
||||||
;;; return the terminating signal, otw #f.
|
|
||||||
|
|
||||||
(define (status:term-sig status)
|
|
||||||
(let ((termsig (bitwise-and status #x7F)))
|
|
||||||
(and (not (zero? termsig)) ; Didn't exit.
|
|
||||||
(not (= #x7F)) ; Not suspended.
|
|
||||||
termsig)))
|
|
||||||
|
|
||||||
|
|
||||||
;;; Flags.
|
|
||||||
(define wait/poll 1) ; Don't hang if nothing to wait for.
|
|
||||||
(define wait/stopped-children 2) ; Report on suspended subprocs, too.
|
|
Loading…
Reference in New Issue