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