1995-10-17 00:33:40 -04:00
|
|
|
;;; Constant definitions for tty control code (POSIX termios).
|
|
|
|
;;; Copyright (c) 1995 by Brian Carlstrom.
|
|
|
|
;;; Largely rehacked by Olin.
|
|
|
|
|
|
|
|
;;; Values taken from HP-UX /usr/include/sys/termio.h.
|
|
|
|
|
|
|
|
;;; Special Control Characters
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;; Indices into the c_cc[] character array.
|
|
|
|
|
|
|
|
;;; Name Subscript Enabled by
|
|
|
|
;;; ---- --------- ----------
|
|
|
|
;; POSIX
|
|
|
|
(define ttychar/intr 0) ; isig
|
|
|
|
(define ttychar/quit 1) ; isig
|
|
|
|
(define ttychar/erase 2) ; icanon
|
|
|
|
(define ttychar/kill 3) ; icanon
|
|
|
|
(define ttychar/eof 4) ; icanon
|
|
|
|
(define ttychar/eol 5) ; icanon
|
|
|
|
|
|
|
|
(define ttychar/min 11) ; !icanon ; Not exported
|
|
|
|
(define ttychar/time 12) ; !icanon ; Not exported
|
|
|
|
(define ttychar/susp 13) ; isig
|
|
|
|
(define ttychar/start 14) ; ixon, ixoff
|
|
|
|
(define ttychar/stop 15) ; ixon, ixoff
|
|
|
|
|
|
|
|
;; Number of Control Characters - *Not Exported*
|
|
|
|
(define num-ttychars 16)
|
|
|
|
|
|
|
|
|
|
|
|
;;; Flags controllling input processing
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
;; POSIX
|
|
|
|
(define ttyin/ignore-break #x00000001) ; ignbrk
|
|
|
|
(define ttyin/interrupt-on-break #x00000002) ; brkint
|
|
|
|
(define ttyin/ignore-bad-parity-chars #x00000004) ; ignpar
|
|
|
|
(define ttyin/mark-parity-errors #x00000008) ; parmrk
|
|
|
|
(define ttyin/enable-parity #x00000010) ; inpck
|
|
|
|
(define ttyin/strip-8th #x00000020) ; istrip
|
|
|
|
(define ttyin/nl->cr #x00000040) ; inlcr
|
|
|
|
(define ttyin/ignore-cr #x00000080) ; igncr
|
|
|
|
(define ttyin/cr->nl #x00000100) ; icrnl
|
|
|
|
(define ttyin/output-flow-ctl #x00000400) ; ixon
|
|
|
|
(define ttyin/input-flow-ctl #x00001000) ; ixoff
|
|
|
|
|
|
|
|
;; HP-UX
|
|
|
|
(define ttyin/xon-any #x00000800) ; _ixany: Any char will restart after stop.
|
|
|
|
(define ttyin/lowercase #x00002000) ; _iuclc: Map upper-case to lower-case.
|
|
|
|
|
|
|
|
|
|
|
|
;;; Flags controlling output processing
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;; POSIX
|
|
|
|
(define ttyout/process #x00000001) ; opost: enable output processing.
|
|
|
|
|
|
|
|
;; HP-UX
|
|
|
|
(define ttyout/nl->crnl #x00000002) ; onlcr: map nl to cr-nl
|
|
|
|
(define ttyout/uppercase ) ; olcuc
|
|
|
|
(define ttyout/cr->nl ) ; ocrnl
|
|
|
|
(define ttyout/no-col0-cr ) ; onocr
|
|
|
|
(define ttyout/nl-does-cr ) ; onlret
|
|
|
|
(define ttyout/delay-w/fill-char ) ; ofill
|
|
|
|
(define ttyout/fill-w/del ) ; ofdel
|
|
|
|
|
|
|
|
; use the same bits as old delay flags
|
|
|
|
(define ttyout/nl-delay #x00000300) ; \n delay
|
|
|
|
(define ttyout/nl-delay0 #x00000000)
|
|
|
|
(define ttyout/nl-delay1 #x00000100) ; tty 37
|
|
|
|
(define ttyout/nl-delay2 #x00000200) ; vt05
|
|
|
|
(define ttyout/nl-delay3 #x00000300)
|
|
|
|
|
|
|
|
(define ttyout/tab-delay #x00000c00) ; horizontal tab delay
|
|
|
|
(define ttyout/tab-delay0 #x00000000)
|
|
|
|
(define ttyout/tab-delay1 #x00000400) ; tty 37
|
|
|
|
(define ttyout/tab-delay2 #x00000800)
|
|
|
|
(define ttyout/expand-tabs #x00000c00) ; xtabs: expand tabs on output
|
|
|
|
|
|
|
|
(define ttyout/cr-delay #x00003000) ; \r delay
|
|
|
|
(define ttyout/cr-delay0 #x00000000)
|
|
|
|
(define ttyout/cr-delay1 #x00001000) ; tn 300
|
|
|
|
(define ttyout/cr-delay2 #x00002000) ; tty 37
|
|
|
|
(define ttyout/cr-delay3 #x00003000) ; concept 100
|
|
|
|
|
|
|
|
(define ttyout/vtab-delay #x00004000) ; vertical tab delay
|
|
|
|
(define ttyout/vtab-delay0 #x00000000)
|
|
|
|
(define ttyout/vtab-delay1 #x00004000) ; tty 37
|
|
|
|
|
|
|
|
(define ttyout/bs-delay #x00008000) ; \b delay
|
|
|
|
(define ttyout/bs-delay0 #x00000000)
|
|
|
|
(define ttyout/bs-delay1 #x00008000)
|
|
|
|
|
|
|
|
(define ttyout/all-delay (bitwise-ior
|
|
|
|
(bitwise-ior
|
|
|
|
(bitwise-ior ttyout/nl-delay ttyout/tab-delay)
|
|
|
|
(bitwise-ior ttyout/cr-delay ttyout/vtab-delay))
|
|
|
|
ttyout/bs-delay))
|
|
|
|
|
|
|
|
|
|
|
|
;;; Control flags - hardware control of terminal
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
;; POSIX
|
|
|
|
(define ttyc/char-size #x00000300) ; csize: character size mask
|
|
|
|
(define ttyc/char-size5 #x00000000) ; 5 bits (cs5)
|
|
|
|
(define ttyc/char-size6 #x00000100) ; 6 bits (cs6)
|
|
|
|
(define ttyc/char-size7 #x00000200) ; 7 bits (cs7)
|
|
|
|
(define ttyc/char-size8 #x00000300) ; 8 bits (cs8)
|
|
|
|
(define ttyc/2-stop-bits #x00000400) ; cstopb: Send 2 stop bits.
|
|
|
|
(define ttyc/read #x00000800) ; cread: Enable receiver.
|
|
|
|
(define ttyc/enable-parity #x00001000) ; parenb
|
|
|
|
(define ttyc/odd-parity #x00002000) ; parodd
|
|
|
|
(define ttyc/hup-on-close #x00004000) ; hupcl: Hang up on last close.
|
|
|
|
(define ttyc/no-modem-sync #x00008000) ; local: Ignore modem lines.
|
|
|
|
|
|
|
|
;; NeXT
|
|
|
|
(define ttyc/ignore #x00000001) ; ignore control flags
|
|
|
|
(define ttyc/stopb110 #x00010000) ; VAS IST DAS? -Olin
|
|
|
|
(define ttyc/mark-parity #x00020000) ; par1
|
|
|
|
(define ttyc/space-parity #x00040000) ; par0
|
|
|
|
|
|
|
|
|
|
|
|
;;; "Local" flags - dumping ground for other state
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;; Warning: some flags in this structure begin with the
|
|
|
|
;; letter "I" and look like they belong in the input flag.
|
|
|
|
|
|
|
|
;; POSIX
|
|
|
|
(define ttyl/echo-erase #x00000002) ; echoe: Visually erase chars.
|
|
|
|
(define ttyl/echo-kill #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/icanon #x00000020) ; icanon: Canonicalize input.
|
|
|
|
(define ttyl/enable-signals #x00000040) ; isig: Enable ^c, ^z signalling.
|
|
|
|
(define ttyl/extended #x00000080) ; iexten: Enable extensions.
|
|
|
|
(define ttyl/ttou-signal #x00400000) ; itostop: Send SIGTTOU on background output.
|
|
|
|
(define ttyl/no-flush-on-interrupt #x80000000) ; noflsh: Don't flush after interrupt.
|
|
|
|
|
|
|
|
;; NeXT
|
|
|
|
(define ttyl/visual-echo-kill #x00000001) ; echoke: visually erase line kill
|
|
|
|
(define ttyl/echo-crt #x00000100) ; visual erase mode for crt
|
|
|
|
(define ttyl/echo-printer #x00000200) ; visual erase mode for hardcopy
|
|
|
|
(define ttyl/echo-ctl #x00000400) ; echo control chars as ^(char)
|
|
|
|
(define ttyl/alt-word-erase #x00000800) ; use alternate werase algorithm
|
|
|
|
(define ttyl/carrier-sync #x00100000) ; mdmbuf flow control output via carrier
|
|
|
|
(define ttyl/xlcase #x04000000) ; VAS IST DAS?
|
|
|
|
(define ttyl/xeucbksp #x08000000) ; VAS IST DAS?
|
|
|
|
|
|
|
|
;;; NOTE: altwerase xlcase and xeucbksp don't appear in the NeXT tty(4) man
|
|
|
|
;;; page. Where do they appear?
|
|
|
|
|
|
|
|
|
|
|
|
;;; Baud Rates
|
|
|
|
(define baud/0 0)
|
|
|
|
(define baud/50 1)
|
|
|
|
(define baud/75 2)
|
|
|
|
(define baud/110 3)
|
|
|
|
(define baud/134 4)
|
|
|
|
(define baud/150 5)
|
|
|
|
(define baud/200 6)
|
|
|
|
(define baud/300 7)
|
|
|
|
(define baud/600 8)
|
|
|
|
(define baud/1200 9)
|
|
|
|
(define baud/1800 10)
|
|
|
|
(define baud/2400 11)
|
|
|
|
(define baud/4800 12)
|
|
|
|
(define baud/9600 13)
|
|
|
|
(define baud/19200 14)
|
|
|
|
(define baud/38400 15)
|
|
|
|
|
|
|
|
;;; tcflush magic
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(define %flush-tty/input 0) ; TCIFLUSH
|
|
|
|
(define %flush-tty/output 1) ; TCOFLUSH
|
|
|
|
(define %flush-tty/both 2) ; TCIOFLUSH
|
|
|
|
|
|
|
|
;;; tcflow magic
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
(define %tcflow/stop-out 0) ; TCOOFF
|
|
|
|
(define %tcflow/start-out 1) ; TCOON
|
|
|
|
(define %tcflow/stop-in 2) ; TCIOFF
|
|
|
|
(define %tcflow/start-in 3) ; TCION
|