xref: /dflybsd-src/include/termios.h (revision 9d4f17d13bf5d8bcd1e924ee709578e6f59bc958)
15c08cc45SSascha Wildner /*
25c08cc45SSascha Wildner  * Copyright (c) 1988, 1989, 1993, 1994
35c08cc45SSascha Wildner  *	The Regents of the University of California.  All rights reserved.
45c08cc45SSascha Wildner  *
55c08cc45SSascha Wildner  * Redistribution and use in source and binary forms, with or without
65c08cc45SSascha Wildner  * modification, are permitted provided that the following conditions
75c08cc45SSascha Wildner  * are met:
85c08cc45SSascha Wildner  * 1. Redistributions of source code must retain the above copyright
95c08cc45SSascha Wildner  *    notice, this list of conditions and the following disclaimer.
105c08cc45SSascha Wildner  * 2. Redistributions in binary form must reproduce the above copyright
115c08cc45SSascha Wildner  *    notice, this list of conditions and the following disclaimer in the
125c08cc45SSascha Wildner  *    documentation and/or other materials provided with the distribution.
135c08cc45SSascha Wildner  * 3. Neither the name of the University nor the names of its contributors
145c08cc45SSascha Wildner  *    may be used to endorse or promote products derived from this software
155c08cc45SSascha Wildner  *    without specific prior written permission.
165c08cc45SSascha Wildner  *
175c08cc45SSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
185c08cc45SSascha Wildner  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
195c08cc45SSascha Wildner  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
205c08cc45SSascha Wildner  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
215c08cc45SSascha Wildner  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
225c08cc45SSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
235c08cc45SSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
245c08cc45SSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
255c08cc45SSascha Wildner  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
265c08cc45SSascha Wildner  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
275c08cc45SSascha Wildner  * SUCH DAMAGE.
285c08cc45SSascha Wildner  *
295c08cc45SSascha Wildner  *	@(#)termios.h	8.3 (Berkeley) 3/28/94
305c08cc45SSascha Wildner  * $FreeBSD: src/sys/sys/termios.h,v 1.13.2.1 2001/03/06 06:31:44 jhb Exp $
315c08cc45SSascha Wildner  */
325c08cc45SSascha Wildner 
335c08cc45SSascha Wildner #ifndef _TERMIOS_H_
345c08cc45SSascha Wildner #define	_TERMIOS_H_
355c08cc45SSascha Wildner 
365c08cc45SSascha Wildner #include <sys/cdefs.h>
375c08cc45SSascha Wildner #include <sys/_termios.h>
385c08cc45SSascha Wildner /* Needed by tcgetsid(3). */
39*9d4f17d1Szrj #include <machine/stdint.h>
400562dafcSSascha Wildner 
415c08cc45SSascha Wildner #ifndef _PID_T_DECLARED
425c08cc45SSascha Wildner typedef	__pid_t	pid_t;
435c08cc45SSascha Wildner #define	_PID_T_DECLARED
445c08cc45SSascha Wildner #endif
455c08cc45SSascha Wildner 
465c08cc45SSascha Wildner /*
475c08cc45SSascha Wildner  * Commands passed to tcsetattr() for setting the termios structure.
485c08cc45SSascha Wildner  */
495c08cc45SSascha Wildner #define	TCSANOW		0		/* make change immediate */
505c08cc45SSascha Wildner #define	TCSADRAIN	1		/* drain output, then change */
515c08cc45SSascha Wildner #define	TCSAFLUSH	2		/* drain output, flush input */
525c08cc45SSascha Wildner #if __BSD_VISIBLE
535c08cc45SSascha Wildner #define	TCSASOFT	0x10		/* flag - don't alter h.w. state */
545c08cc45SSascha Wildner #endif
555c08cc45SSascha Wildner 
565c08cc45SSascha Wildner #define	TCIFLUSH	1
575c08cc45SSascha Wildner #define	TCOFLUSH	2
585c08cc45SSascha Wildner #define	TCIOFLUSH	3
595c08cc45SSascha Wildner #define	TCOOFF		1
605c08cc45SSascha Wildner #define	TCOON		2
615c08cc45SSascha Wildner #define	TCIOFF		3
625c08cc45SSascha Wildner #define	TCION		4
635c08cc45SSascha Wildner 
645c08cc45SSascha Wildner __BEGIN_DECLS
655c08cc45SSascha Wildner speed_t	cfgetispeed(const struct termios *);
665c08cc45SSascha Wildner speed_t	cfgetospeed(const struct termios *);
675c08cc45SSascha Wildner int	cfsetispeed(struct termios *, speed_t);
685c08cc45SSascha Wildner int	cfsetospeed(struct termios *, speed_t);
695c08cc45SSascha Wildner int	tcgetattr(int, struct termios *);
705c08cc45SSascha Wildner int	tcsetattr(int, int, const struct termios *);
715c08cc45SSascha Wildner int	tcdrain(int);
725c08cc45SSascha Wildner int	tcflow(int, int);
735c08cc45SSascha Wildner int	tcflush(int, int);
745c08cc45SSascha Wildner int	tcsendbreak(int, int);
755c08cc45SSascha Wildner 
765c08cc45SSascha Wildner #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
775c08cc45SSascha Wildner pid_t	tcgetsid(int);
785c08cc45SSascha Wildner #endif	/* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */
795c08cc45SSascha Wildner 
805c08cc45SSascha Wildner #if __BSD_VISIBLE
815c08cc45SSascha Wildner void	cfmakeraw(struct termios *);
825c08cc45SSascha Wildner void	cfmakesane(struct termios *);
835c08cc45SSascha Wildner int	cfsetspeed(struct termios *, speed_t);
845c08cc45SSascha Wildner int	tcsetsid(int, pid_t);
855c08cc45SSascha Wildner #endif /* __BSD_VISIBLE */
865c08cc45SSascha Wildner __END_DECLS
875c08cc45SSascha Wildner 
885c08cc45SSascha Wildner #endif /* !_TERMIOS_H_ */
895c08cc45SSascha Wildner 
905c08cc45SSascha Wildner #if __BSD_VISIBLE
910562dafcSSascha Wildner #include <sys/ttycom.h>
925c08cc45SSascha Wildner #include <sys/ttydefaults.h>
935c08cc45SSascha Wildner #endif
94