xref: /original-bsd/sys/sys/ioctl.h (revision 552e81d8)
1 /*	ioctl.h	3.9	09/27/80	*/
2 /*
3  * ioctl definitions, and special character and local tty definitions
4  */
5 #ifndef	_IOCTL_
6 #define	_IOCTL_
7 struct tchars {
8 	char	t_intrc;	/* interrupt */
9 	char	t_quitc;	/* quit */
10 	char	t_startc;	/* start output */
11 	char	t_stopc;	/* stop output */
12 	char	t_eofc;		/* end-of-file */
13 	char	t_brkc;		/* input delimiter (like nl) */
14 };
15 struct ltchars {
16 	char	t_suspc;	/* stop process signal */
17 	char	t_dsuspc;	/* delayed stop process signal */
18 	char	t_rprntc;	/* reprint line */
19 	char	t_flushc;	/* flush output (toggles) */
20 	char	t_werasc;	/* word erase */
21 	char	t_lnextc;	/* literal next character */
22 };
23 
24 /*
25  * local mode settings
26  */
27 #define	LCRTBS	01		/* correct backspacing for crt */
28 #define	LPRTERA 02		/* printing terminal \ ... / erase */
29 #define	LCRTERA	04		/* do " \b " to wipe out character */
30 #define	LTILDE	010		/* IIASA - hazeltine tilde kludge */
31 #define	LMDMBUF	020		/* IIASA - start/stop output on carrier intr */
32 #define	LLITOUT	040		/* IIASA - suppress any output translations */
33 #define	LTOSTOP	0100		/* send stop for any background tty output */
34 #define	LFLUSHO	0200		/* flush output sent to terminal */
35 #define	LNOHANG 0400		/* IIASA - don't send hangup on carrier drop */
36 #define	LETXACK 01000		/* IIASA - diablo style buffer hacking */
37 #define	LCRTKIL	02000		/* erase whole line on kill with " \b " */
38 #define	LINTRUP 04000		/* interrupt on every input char - SIGTINT */
39 #define	LCTLECH	010000		/* echo control characters as ^X */
40 #define	LPENDIN	020000		/* tp->t_rawq is waiting to be reread */
41 
42 /* local state */
43 #define	LSBKSL	01		/* state bit for lowercase backslash work */
44 #define	LSQUOT	02		/* last character input was \ */
45 #define	LSERASE	04		/* within a \.../ for LPRTRUB */
46 #define	LSLNCH	010		/* next character is literal */
47 #define	LSTYPEN	020		/* retyping suspended input (LPENDIN) */
48 #define	LSCNTTB	040		/* counting width of tab; leave LFLUSHO alone */
49 
50 /*
51  * tty ioctl commands
52  */
53 #define	TIOCGETD	(('t'<<8)|0)	/* get line discipline */
54 #define	TIOCSETD	(('t'<<8)|1)	/* set line discipline */
55 #define	TIOCHPCL	(('t'<<8)|2)	/* set hangup line on close bit */
56 #define	TIOCMODG	(('t'<<8)|3)	/* modem bits get (???) */
57 #define	TIOCMODS	(('t'<<8)|4)	/* modem bits set (???) */
58 #define	TIOCGETP	(('t'<<8)|8)	/* get parameters - like old gtty */
59 #define	TIOCSETP	(('t'<<8)|9)	/* set parameters - like old stty */
60 #define	TIOCSETN	(('t'<<8)|10)	/* set params w/o flushing buffers */
61 #define	TIOCEXCL	(('t'<<8)|13)	/* set exclusive use of tty */
62 #define	TIOCNXCL	(('t'<<8)|14)	/* reset exclusive use of tty */
63 #define	TIOCFLUSH	(('t'<<8)|16)	/* flush buffers */
64 #define	TIOCSETC	(('t'<<8)|17)	/* set special characters */
65 #define	TIOCGETC	(('t'<<8)|18)	/* get special characters */
66 /* locals, from 127 down */
67 #define	TIOCLBIS	(('t'<<8)|127)	/* bis local mode bits */
68 #define	TIOCLBIC	(('t'<<8)|126)	/* bic local mode bits */
69 #define	TIOCLSET	(('t'<<8)|125)	/* set entire local mode word */
70 #define	TIOCLGET	(('t'<<8)|124)	/* get local modes */
71 #define	TIOCSBRK	(('t'<<8)|123)	/* set break bit */
72 #define	TIOCCBRK	(('t'<<8)|122)	/* clear break bit */
73 #define	TIOCSDTR	(('t'<<8)|121)	/* set data terminal ready */
74 #define	TIOCCDTR	(('t'<<8)|120)	/* clear data terminal ready */
75 #define	TIOCGPGRP	(('t'<<8)|119)	/* get pgrp of tty */
76 #define	TIOCSPGRP	(('t'<<8)|118)	/* set pgrp of tty */
77 #define	TIOCSLTC	(('t'<<8)|117)	/* set local special characters */
78 #define	TIOCGLTC	(('t'<<8)|116)	/* get local special characters */
79 #define	TIOCOUTQ	(('t'<<8)|115)	/* number of chars in output queue */
80 #define	TIOCSTI		(('t'<<8)|114)	/* simulate a terminal in character */
81 
82 #define	OTTYDISC	0
83 #define	NETLDISC	1		/* line discip for berk net */
84 #define	NTTYDISC	2
85 
86 #define	DIOCLSTN	(('d'<<8)|1)
87 #define	DIOCNTRL	(('d'<<8)|2)
88 #define	DIOCMPX		(('d'<<8)|3)
89 #define	DIOCNMPX	(('d'<<8)|4)
90 #define	DIOCSCALL	(('d'<<8)|5)
91 #define	DIOCRCALL	(('d'<<8)|6)
92 #define	DIOCPGRP	(('d'<<8)|7)
93 #define	DIOCGETP	(('d'<<8)|8)
94 #define	DIOCSETP	(('d'<<8)|9)
95 #define	DIOCLOSE	(('d'<<8)|10)
96 #define	DIOCTIME	(('d'<<8)|11)
97 #define	DIOCRESET	(('d'<<8)|12)
98 #define	DIOCSMETA	(('d'<<8)|13)
99 #define	DIOCMERGE	(('d'<<8)|14)
100 #define	DIOCICHAN	(('d'<<8)|15)
101 #define	DIOCPAD		(('d'<<8)|16)
102 #define	DIOCRMETA	(('d'<<8)|17)
103 #define	DIOCXOUT	(('d'<<8)|18)
104 #define	DIOCBMETA	(('d'<<8)|19)
105 #define	DIOCAMETA	(('d'<<8)|20)
106 #define	DIOCSBMETA	(('d'<<8)|21)
107 
108 #define	FIOCLEX		(('f'<<8)|1)
109 #define	FIONCLEX	(('f'<<8)|2)
110 /* another local */
111 #define	FIONREAD	(('f'<<8)|127)	/* get # bytes to read */
112 /* FIONREAD is not implemented on mpx channels yet */
113 
114 #define	MXLSTN		(('x'<<8)|1)
115 #define	MXNBLK		(('x'<<8)|2)
116 
117 /*
118  * These are defined in sys/vcmd.h
119  *
120 #define	VGETSTATE	(('v'<<8)|0)
121 #define	VSETSTATE	(('v'<<8)|1)
122  */
123 #endif
124