diff --git a/scsh/machine/Makefile.inc b/scsh/machine/Makefile.inc deleted file mode 100644 index e69de29..0000000 diff --git a/scsh/machine/bufpol.scm b/scsh/machine/bufpol.scm deleted file mode 100644 index 803bdf3..0000000 --- a/scsh/machine/bufpol.scm +++ /dev/null @@ -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 diff --git a/scsh/machine/errno.scm b/scsh/machine/errno.scm deleted file mode 100644 index b997a59..0000000 --- a/scsh/machine/errno.scm +++ /dev/null @@ -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 diff --git a/scsh/machine/fdflags.scm b/scsh/machine/fdflags.scm deleted file mode 100644 index 3139743..0000000 --- a/scsh/machine/fdflags.scm +++ /dev/null @@ -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 diff --git a/scsh/machine/libansi.c b/scsh/machine/libansi.c deleted file mode 100644 index bcd6e0e..0000000 --- a/scsh/machine/libansi.c +++ /dev/null @@ -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. -*/ diff --git a/scsh/machine/netconst.scm b/scsh/machine/netconst.scm deleted file mode 100644 index 2b12ae8..0000000 --- a/scsh/machine/netconst.scm +++ /dev/null @@ -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: -;;; -;;; -;;; -;;; -;;; -;;;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - -;;; ADDRESS FAMILIES -- -(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 -- -(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 -- -(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 -- -(define internet-address/any #x00000000) -(define internet-address/loopback #x7f000001) -(define internet-address/broadcast #xffffffff) ; must be masked - -;;; errors from host lookup -- -(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 -- -(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 -- -(define level/socket #xffff) ; SOL_SOCKET: options for socket level - -;;; socket options -- -(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 -- -(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 -- -(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)) diff --git a/scsh/machine/packages.scm b/scsh/machine/packages.scm deleted file mode 100644 index 1749fd1..0000000 --- a/scsh/machine/packages.scm +++ /dev/null @@ -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) diff --git a/scsh/machine/signals.scm b/scsh/machine/signals.scm deleted file mode 100644 index 6a4b933..0000000 --- a/scsh/machine/signals.scm +++ /dev/null @@ -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. diff --git a/scsh/machine/signals1.c b/scsh/machine/signals1.c deleted file mode 100644 index 8f077fd..0000000 --- a/scsh/machine/signals1.c +++ /dev/null @@ -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 -*/ diff --git a/scsh/machine/sigset.h b/scsh/machine/sigset.h deleted file mode 100644 index f30fa8c..0000000 --- a/scsh/machine/sigset.h +++ /dev/null @@ -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))) diff --git a/scsh/machine/stdio_dep.c b/scsh/machine/stdio_dep.c deleted file mode 100644 index 39b1efe..0000000 --- a/scsh/machine/stdio_dep.c +++ /dev/null @@ -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 -#include -#include -#include -#include "libcig.h" -#include - -#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;} diff --git a/scsh/machine/stdio_dep.h b/scsh/machine/stdio_dep.h deleted file mode 100644 index 435ebf0..0000000 --- a/scsh/machine/stdio_dep.h +++ /dev/null @@ -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); diff --git a/scsh/machine/sysdep.h b/scsh/machine/sysdep.h deleted file mode 100644 index e69de29..0000000 diff --git a/scsh/machine/time_dep.scm b/scsh/machine/time_dep.scm deleted file mode 100644 index 7f8adf4..0000000 --- a/scsh/machine/time_dep.scm +++ /dev/null @@ -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 - diff --git a/scsh/machine/time_dep1.c b/scsh/machine/time_dep1.c deleted file mode 100644 index 8e799e0..0000000 --- a/scsh/machine/time_dep1.c +++ /dev/null @@ -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 -#include -#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; - } diff --git a/scsh/machine/tty-consts.scm b/scsh/machine/tty-consts.scm deleted file mode 100644 index 51cf348..0000000 --- a/scsh/machine/tty-consts.scm +++ /dev/null @@ -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 diff --git a/scsh/machine/waitcodes.scm b/scsh/machine/waitcodes.scm deleted file mode 100644 index ce370ae..0000000 --- a/scsh/machine/waitcodes.scm +++ /dev/null @@ -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.