1 ; "TTYCHARS, SGTTY, TTYDEV, AND IOCTL.H"
9 <MSETG TTYCHARS-SIZE 14>
37 "ttychars offsets (don't seem to be any ioctls to play with these"
54 <MSETG T-INTRC 1> ; "INTERRUPT "
55 <MSETG T-QUITC 2> ; "QUIT "
56 <MSETG T-STARTC 3> ; "START OUTPUT "
57 <MSETG T-STOPC 4> ; "STOP OUTPUT "
58 <MSETG T-EOFC 5> ; "END-OF-FILE "
59 <MSETG T-BRKC 6> ; "INPUT DELIMITER (LIKE NL) "
62 <MSETG T-SUSPC 1> ; "STOP PROCESS SIGNAL "
63 <MSETG T-DSUSPC 2> ; "DELAYED STOP PROCESS SIGNAL "
64 <MSETG T-RPRNTC 3> ; "REPRINT LINE "
65 <MSETG T-FLUSHC 4> ; "FLUSH OUTPUT (TOGGLES) "
66 <MSETG T-WERASC 5> ; "WORD ERASE "
67 <MSETG T-LNEXTC 6> ; "LITERAL NEXT CHARACTER "
69 <COND (<NOT <GASSIGNED? HEX>>
72 <REPEAT ((NUM 0) DIG BAS)
76 <COND (<AND <G=? <ASCII <SET DIG <1 .FROB>>>
78 <L=? <ASCII .DIG> <ASCII !\9>>>
79 <SET NUM <+ <* .NUM 16>
80 <- <ASCII .DIG> <ASCII !\0>>>>)
81 (<OR <AND <G=? <ASCII .DIG> <ASCII !\A>>
82 <L=? <ASCII .DIG> <ASCII !\F>>
84 <AND <G=? <ASCII .DIG> <ASCII !\a>>
85 <L=? <ASCII .DIG> <ASCII !\f>>
87 <SET NUM <+ <* .NUM 16>
88 <+ 10 <- <ASCII .DIG> <ASCII .BAS>>>>>)
89 (<RETURN #FALSE ("ILLEGAL DIGIT")>)>
90 <SET FROB <REST .FROB>>>>)>
92 ; "IOCTL'S HAVE THE COMMAND ENCODED IN THE LOWER WORD,
93 AND THE SIZE OF ANY IN OR OUT PARAMETERS IN THE UPPER
94 WORD. THE HIGH 2 BITS OF THE UPPER WORD ARE USED
95 TO ENCODE THE IN/OUT STATUS OF THE PARAMETER; FOR NOW
96 WE RESTRICT PARAMETERS TO AT MOST 128 BYTES."
97 <MSETG IOCPARM-MASK <HEX "7F">> ; "PARAMETERS MUST BE < 128 BYTES "
98 <MSETG IOC-VOID <HEX "20000000">> ; "NO PARAMETERS "
99 <MSETG IOC-OUT <HEX "40000000">> ; "COPY OUT PARAMETERS "
100 <MSETG IOC-IN <HEX "80000000">> ; "COPY IN PARAMETERS "
101 <MSETG IOC-INOUT <ORB ,IOC-IN ,IOC-OUT>>
102 ; "THE <HEX "20000000"> IS SO WE CAN DISTINGUISH NEW IOCTL'S FROM OLD "
103 <DEFINE SIZEOF (FROB)
104 <COND (<==? .FROB CHAR> ,CHAR-SIZE)
105 (<==? .FROB INT> ,INT-SIZE)
106 (<==? .FROB TCHARS> ,TCHARS-SIZE)
107 (<==? .FROB LTCHARS> ,LTCHARS-SIZE)
108 (<==? .FROB TTYCHARS> ,TTYCHARS-SIZE)
109 (<==? .FROB SGTTYB> ,SGTTYB-SIZE)>>
111 <DEFINE -IO (X Y) <CHTYPE <ORB ,IOC-VOID <LSH .X 8> .Y> FIX>>
112 <DEFINE -IOR (X Y T) <CHTYPE <ORB ,IOC-OUT <LSH <ANDB <SIZEOF .T>
115 <DEFINE -IOW (X Y T) <CHTYPE <ORB ,IOC-IN <LSH <ANDB <SIZEOF .T> ,IOCPARM-MASK>
118 <DEFINE -IOWR (X Y T) <CHTYPE <ORB ,IOC-INOUT
119 <LSH <ANDB <SIZEOF .T> ,IOCPARM-MASK> 16>
122 ; "TTY IOCTL COMMANDS"
123 <MSETG TIOCGETD <-IOR !\t 0 INT>> ; "GET LINE DISCIPLINE "
124 <MSETG TIOCSETD <-IOW !\t 1 INT>> ; "SET LINE DISCIPLINE "
125 <MSETG TIOCHPCL <-IO !\t 2>> ; "HANG UP ON LAST CLOSE "
126 <MSETG TIOCMODG <-IOR !\t 3 INT>> ; "GET MODEM CONTROL STATE "
127 <MSETG TIOCMODS <-IOW !\t 4 INT>> ; "SET MODEM CONTROL STATE "
128 <MSETG TIOCM-LE *0001*> ; "LINE ENABLE "
129 <MSETG TIOCM-DTR *0002*> ; "DATA TERMINAL READY "
130 <MSETG TIOCM-RTS *0004*> ; "REQUEST TO SEND "
131 <MSETG TIOCM-ST *0010*> ; "SECONDARY TRANSMIT "
132 <MSETG TIOCM-SR *0020*> ; "SECONDARY RECEIVE "
133 <MSETG TIOCM-CTS *0040*> ; "CLEAR TO SEND "
134 <MSETG TIOCM-CAR *0100*> ; "CARRIER DETECT "
135 <MSETG TIOCM-CD TIOCM-CAR>
136 <MSETG TIOCM-RNG *0200*> ; "RING "
137 <MSETG TIOCM-RI TIOCM-RNG>
138 <MSETG TIOCM-DSR *0400*> ; "DATA SET READY "
139 <MSETG TIOCGETP <-IOR !\t 8 SGTTYB>>; "GET PARAMETERS -- GTTY "
140 <MSETG TIOCSETP <-IOW !\t 9 SGTTYB>>; "SET PARAMETERS -- STTY "
141 <MSETG TIOCSETN <-IOW !\t 10 SGTTYB>>; "AS ABOVE BUT NO FLUSHTTY "
142 <MSETG TIOCEXCL <-IO !\t 13>> ; "SET EXCLUSIVE USE OF TTY "
143 <MSETG TIOCNXCL <-IO !\t 14>> ; "RESET EXCLUSIVE USE OF TTY "
144 <MSETG TIOCFLUSH <-IOW !\t 16 INT>> ; "FLUSH BUFFERS "
145 <MSETG TIOCSETC <-IOW !\t 17 TCHARS>>; "SET SPECIAL CHARACTERS "
146 <MSETG TIOCGETC <-IOR !\t 18 TCHARS>>; "GET SPECIAL CHARACTERS "
147 <MSETG TANDEM <HEX "00000001">> ; "SEND STOPC ON OUT Q FULL "
148 <MSETG CBREAK <HEX "00000002">> ; "HALF-COOKED MODE "
149 <MSETG LCASE <HEX "00000004">> ; "SIMULATE LOWER CASE "
150 <MSETG ECHO <HEX "00000008">> ; "ECHO INPUT "
151 <MSETG CRMOD <HEX "00000010">> ; "MAP \R TO \R\N ON OUTPUT "
152 <MSETG RAW <HEX "00000020">> ; "NO I/O PROCESSING "
153 <MSETG ODDP <HEX "00000040">> ; "GET/SEND ODD PARITY "
154 <MSETG EVENP <HEX "00000080">> ; "GET/SEND EVEN PARITY "
155 <MSETG ANYP <HEX "000000C0">> ; "GET ANY PARITY/SEND NONE "
156 <MSETG NLDELAY <HEX "00000300">> ; "\N DELAY "
157 <MSETG NL0 <HEX "00000000">>
158 <MSETG NL1 <HEX "00000100">> ; "TTY 37 "
159 <MSETG NL2 <HEX "00000200">> ; "VT05 "
160 <MSETG NL3 <HEX "00000300">>
161 <MSETG TBDELAY <HEX "00000C00">> ; "HORIZONTAL TAB DELAY "
162 <MSETG TAB0 <HEX "00000000">>
163 <MSETG TAB1 <HEX "00000400">> ; "TTY 37 "
164 <MSETG TAB2 <HEX "00000800">>
165 <MSETG XTABS <HEX "00000C00">> ; "EXPAND TABS ON OUTPUT "
166 <MSETG CRDELAY <HEX "00003000">> ; "\R DELAY "
167 <MSETG CR0 <HEX "00000000">>
168 <MSETG CR1 <HEX "00001000">> ; "TN 300 "
169 <MSETG CR2 <HEX "00002000">> ; "TTY 37 "
170 <MSETG CR3 <HEX "00003000">> ; "CONCEPT 100 "
171 <MSETG VTDELAY <HEX "00004000">> ; "VERTICAL TAB DELAY "
172 <MSETG FF0 <HEX "00000000">>
173 <MSETG FF1 <HEX "00004000">> ; "TTY 37 "
174 <MSETG BSDELAY <HEX "00008000">> ; "\B DELAY "
175 <MSETG BS0 <HEX "00000000">>
176 <MSETG BS1 <HEX "00008000">>
177 <MSETG ALLDELAY <CHTYPE <ORB ,NLDELAY ,TBDELAY ,CRDELAY ,VTDELAY ,BSDELAY> FIX>>
178 <MSETG CRTBS <HEX "00010000">> ; "DO BACKSPACING FOR CRT "
179 <MSETG PRTERA <HEX "00020000">> ; "\ ... / ERASE "
180 <MSETG CRTERA <HEX "00040000">> ; "" \B " TO WIPE OUT CHAR "
181 <MSETG TILDE <HEX "00080000">> ; "HAZELTINE TILDE KLUDGE "
182 <MSETG MDMBUF <HEX "00100000">> ; "START/STOP OUTPUT ON CARRIER INTR "
183 <MSETG LITOUT <HEX "00200000">> ; "LITERAL OUTPUT "
184 <MSETG TOSTOP <HEX "00400000">> ; "SIGSTOP ON BACKGROUND OUTPUT "
185 <MSETG FLUSHO <HEX "00800000">> ; "FLUSH OUTPUT TO TERMINAL "
186 <MSETG NOHANG <HEX "01000000">> ; "NO SIGHUP ON CARRIER DROP "
187 <MSETG L001000 <HEX "02000000">>
188 <MSETG CRTKIL <HEX "04000000">> ; "KILL LINE WITH " \B " "
189 <MSETG L004000 <HEX "08000000">>
190 <MSETG CTLECH <HEX "10000000">> ; "ECHO CONTROL CHARS AS ^X "
191 <MSETG PENDIN <HEX "20000000">> ; "TP->T-RAWQ NEEDS REREAD "
192 <MSETG DECCTQ <HEX "40000000">> ; "ONLY ^Q STARTS AFTER ^S "
193 <MSETG NOFLSH <HEX "80000000">> ; "NO OUTPUT FLUSH ON SIGNAL "
194 ; "LOCALS FROM 127 DOWN "
195 <MSETG TIOCLBIS <-IOW !\t 127 INT>> ; "BIS LOCAL MODE BITS "
196 <MSETG TIOCLBIC <-IOW !\t 126 INT>> ; "BIC LOCAL MODE BITS "
197 <MSETG TIOCLSET <-IOW !\t 125 INT>> ; "SET ENTIRE LOCAL MODE WORD "
198 <MSETG TIOCLGET <-IOR !\t 124 INT>> ; "GET LOCAL MODES "
199 <MSETG LCRTBS <LSH ,CRTBS 16>>
200 <MSETG LPRTERA <LSH ,PRTERA 16>>
201 <MSETG LCRTERA <LSH ,CRTERA 16>>
202 <MSETG LTILDE <LSH ,TILDE 16>>
203 <MSETG LMDMBUF <LSH ,MDMBUF 16>>
204 <MSETG LLITOUT <LSH ,LITOUT 16>>
205 <MSETG LTOSTOP <LSH ,TOSTOP 16>>
206 <MSETG LFLUSHO <LSH ,FLUSHO 16>>
207 <MSETG LNOHANG <LSH ,NOHANG 16>>
208 <MSETG LCRTKIL <LSH ,CRTKIL 16>>
209 <MSETG LCTLECH <LSH ,CTLECH 16>>
210 <MSETG LPENDIN <LSH ,PENDIN 16>>
211 <MSETG LDECCTQ <LSH ,DECCTQ 16>>
212 <MSETG LNOFLSH <LSH ,NOFLSH 16>>
213 <MSETG TIOCSBRK <-IO !\t 123>> ; "SET BREAK BIT "
214 <MSETG TIOCCBRK <-IO !\t 122>> ; "CLEAR BREAK BIT "
215 <MSETG TIOCSDTR <-IO !\t 121>> ; "SET DATA TERMINAL READY "
216 <MSETG TIOCCDTR <-IO !\t 120>> ; "CLEAR DATA TERMINAL READY "
217 <MSETG TIOCGPGRP <-IOR !\t 119 INT>> ; "GET PGRP OF TTY "
218 <MSETG TIOCSPGRP <-IOW !\t 118 INT>> ; "SET PGRP OF TTY "
219 <MSETG TIOCSLTC <-IOW !\t 117 LTCHARS>>; "SET LOCAL SPECIAL CHARS "
220 <MSETG TIOCGLTC <-IOR !\t 116 LTCHARS>>; "GET LOCAL SPECIAL CHARS "
221 <MSETG TIOCOUTQ <-IOR !\t 115 INT>> ; "OUTPUT QUEUE SIZE "
222 <MSETG TIOCSTI <-IOW !\t 114 CHAR>> ; "SIMULATE TERMINAL INPUT "
223 <MSETG TIOCNOTTY <-IO !\t 113>> ; "VOID TTY ASSOCIATION "
224 <MSETG TIOCPKT <-IOW !\t 112 INT>> ; "PTY: SET/CLEAR PACKET MODE "
225 <MSETG TIOCPKT-DATA <HEX "00">> ; "DATA PACKET "
226 <MSETG TIOCPKT-FLUSHREAD <HEX "01">> ; "FLUSH PACKET "
227 <MSETG TIOCPKT-FLUSHWRITE <HEX "02">> ; "FLUSH PACKET "
228 <MSETG TIOCPKT-STOP <HEX "04">> ; "STOP OUTPUT "
229 <MSETG TIOCPKT-START <HEX "08">> ; "START OUTPUT "
230 <MSETG TIOCPKT-NOSTOP <HEX "10">> ; "NO MORE ^S,^Q "
231 <MSETG TIOCPKT-DOSTOP <HEX "20">> ; "NOW DO ^S ^Q "
232 <MSETG TIOCSTOP <-IO !\t 111>> ; "STOP OUTPUT LIKE ^S "
233 <MSETG TIOCSTART <-IO !\t 110>> ; "START OUTPUT LIKE ^Q "
234 <MSETG TIOCMSET <-IOW !\t 109 INT>> ; "SET ALL MODEM BITS "
235 <MSETG TIOCMBIS <-IOW !\t 108 INT>> ; "BIS MODEM BITS "
236 <MSETG TIOCMBIC <-IOW !\t 107 INT>> ; "BIC MODEM BITS "
237 <MSETG TIOCMGET <-IOR !\t 106 INT>> ; "GET ALL MODEM BITS "
238 <MSETG TIOCREMOTE <-IO !\t 105>> ; "REMOTE INPUT EDITING "
240 <MSETG OTTYDISC *0*> ; "OLD V7 STD TTY DRIVER "
241 <MSETG NETLDISC 1> ; "LINE DISCIP FOR BERK NET "
242 <MSETG NTTYDISC 2> ; "NEW TTY DISCIPLINE "
243 <MSETG TABLDISC 3> ; "HITACHI TABLET DISCIPLINE "
244 <MSETG NTABLDISC 4> ; "GTCO TABLET DISCIPLINE "
246 <MSETG FIOCLEX <-IO !\f 1>> ; "SET EXCLUSIVE USE ON FD "
247 <MSETG FIONCLEX <-IO !\f 2>> ; "REMOVE EXCLUSIVE USE "
249 <MSETG FIONREAD <-IOR !\f 127 INT>> ; "GET # BYTES TO READ "
250 <MSETG FIONBIO <-IOW !\f 126 INT>> ; "SET/CLEAR NON-BLOCKING I/O "
251 <MSETG FIOASYNC <-IOW !\f 125 INT>> ; "SET/CLEAR ASYNC I/O "
252 <MSETG FIOSETOWN <-IOW !\f 124 INT>> ; "SET OWNER "
253 <MSETG FIOGETOWN <-IOR !\f 123 INT>> ; "GET OWNER "
255 ; "SOCKET I/O CONTROLS "
256 <MSETG SIOCSHIWAT <-IOW !\s 0 INT>> ; "SET HIGH WATERMARK "
257 <MSETG SIOCGHIWAT <-IOR !\s 1 INT>> ; "GET HIGH WATERMARK "
258 <MSETG SIOCSLOWAT <-IOW !\s 2 INT>> ; "SET LOW WATERMARK "
259 <MSETG SIOCGLOWAT <-IOR !\s 3 INT>> ; "GET LOW WATERMARK "
260 <MSETG SIOCATMARK <-IOR !\s 7 INT>> ; "AT OOB MARK? "
261 <MSETG SIOCSPGRP <-IOW !\s 8 INT>> ; "SET PROCESS GROUP "
262 <MSETG SIOCGPGRP <-IOR !\s 9 INT>> ; "GET PROCESS GROUP "
264 ;<MSETG SIOCADDRT <-IOW !\r 10 RTENTRY>> ; "ADD ROUTE "
265 ;<MSETG SIOCDELRT <-IOW !\r 11 RTENTRY>> ; "DELETE ROUTE "
267 ;<MSETG SIOCSIFADDR <-IOW !\i 12 IFREQ>> ; "SET IFNET ADDRESS "
268 ;<MSETG SIOCGIFADDR <-IOWR !\i 13 IFREQ>> ; "GET IFNET ADDRESS "
269 ;<MSETG SIOCSIFDSTADDR <-IOW !\i 14 IFREQ>> ; "SET P-P ADDRESS "
270 ;<MSETG SIOCGIFDSTADDR <-IOWR !\i 15 IFREQ>> ; "GET P-P ADDRESS "
271 ;<MSETG SIOCSIFFLAGS <-IOW !\i 16 IFREQ>> ; "SET IFNET FLAGS "
272 ;<MSETG SIOCGIFFLAGS <-IOWR !\i 17 IFREQ>> ; "GET IFNET FLAGS "
273 ;<MSETG SIOCGIFCONF <-IOWR !\i 20 IFCONF>> ; "GET IFNET LIST "