179 lines
4.5 KiB
C
179 lines
4.5 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1991-1996 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
termios.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module contains the primitive system data types described in section
|
||
|
7.1.2.1 of IEEE P1003.1-1990
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _TERMIOS_
|
||
|
#define _TERMIOS_
|
||
|
|
||
|
#include <sys/types.h>
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
typedef unsigned long cc_t;
|
||
|
typedef unsigned long speed_t;
|
||
|
typedef unsigned long tcflag_t;
|
||
|
|
||
|
#define NCCS 11
|
||
|
|
||
|
struct termios {
|
||
|
tcflag_t c_iflag; /* input modes */
|
||
|
tcflag_t c_oflag; /* output modes */
|
||
|
tcflag_t c_cflag; /* control modes */
|
||
|
tcflag_t c_lflag; /* local modes */
|
||
|
speed_t c_ispeed; /* input speed */
|
||
|
speed_t c_ospeed; /* output speed */
|
||
|
cc_t c_cc[NCCS]; /* control characters */
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* Input modes, for c_iflag member
|
||
|
*/
|
||
|
|
||
|
#define BRKINT 0x00000001 /* signal interrupt on break */
|
||
|
#define ICRNL 0x00000002 /* map CR to NL on input */
|
||
|
#define IGNBRK 0x00000004 /* ignore break condition */
|
||
|
#define IGNCR 0x00000008 /* ignore CR */
|
||
|
#define IGNPAR 0x00000010 /* ignore characters with parity errors */
|
||
|
#define INLCR 0x00000020 /* map NL to CR on input */
|
||
|
#define INPCK 0x00000040 /* Enable input parity check */
|
||
|
#define ISTRIP 0x00000080 /* strip character */
|
||
|
#define IXOFF 0x00000100 /* enable start/stop input control */
|
||
|
#define IXON 0x00000200 /* enable start/stop output control */
|
||
|
#define PARMRK 0x00000400 /* mark parity errors */
|
||
|
|
||
|
/*
|
||
|
* Output modes, for c_oflag member
|
||
|
*/
|
||
|
|
||
|
#define OPOST 0x00000001 /* perform output processing */
|
||
|
#define ONLCR 0x00000002 /* map NL to ASCII CR-NL on output */
|
||
|
#define ONLRET 0x00000004 /* NL performs ASCII CR function */
|
||
|
#define OCRNL 0x00000008 /* map ASCII CR to NL on output */
|
||
|
#define ONOCR 0x00000010 /* No ASCII CR output at column 0. */
|
||
|
|
||
|
/*
|
||
|
* Control modes, for c_cflag member
|
||
|
*/
|
||
|
|
||
|
#define CLOCAL 0x00000001 /* ignore modem status lines */
|
||
|
#define CREAD 0x00000002 /* enable receiver */
|
||
|
#define CSIZE 0x000000F0 /* number of bits per byte */
|
||
|
#define CS5 0x00000010 /* 5 bits */
|
||
|
#define CS6 0x00000020 /* 6 bits */
|
||
|
#define CS7 0x00000040 /* 7 bits */
|
||
|
#define CS8 0x00000080 /* 8 bits */
|
||
|
#define CSTOPB 0x00000100 /* send two stop bits, else one */
|
||
|
#define HUPCL 0x00000200 /* hang up on last close */
|
||
|
#define PARENB 0x00000400 /* parity enable */
|
||
|
#define PARODD 0x00000800 /* odd parity, else even */
|
||
|
|
||
|
/*
|
||
|
* Local modes, for c_lflag member
|
||
|
*/
|
||
|
|
||
|
#define ECHO 0x00000001 /* enable echo */
|
||
|
#define ECHOE 0x00000002 /* echo ERASE as an error-correcting backspace */
|
||
|
#define ECHOK 0x00000004 /* echo KILL */
|
||
|
#define ECHONL 0x00000008 /* echo '\n' */
|
||
|
#define ICANON 0x00000010 /* canonical input (erase and kill processing) */
|
||
|
#define IEXTEN 0x00000020 /* enable extended functions */
|
||
|
#define ISIG 0x00000040 /* enable signals */
|
||
|
#define NOFLSH 0x00000080 /* disable flush after intr, quit, or suspend */
|
||
|
#define TOSTOP 0x00000100 /* send SIGTTOU for background output */
|
||
|
|
||
|
/*
|
||
|
* Indices into c_cc array
|
||
|
*/
|
||
|
|
||
|
#define VEOF 0 /* EOF character */
|
||
|
#define VEOL 1 /* EOL character */
|
||
|
#define VERASE 2 /* ERASE character */
|
||
|
#define VINTR 3 /* INTR character */
|
||
|
#define VKILL 4 /* KILL character */
|
||
|
#define VMIN 5 /* MIN value */
|
||
|
#define VQUIT 6 /* QUIT character */
|
||
|
#define VSUSP 7 /* SUSP character */
|
||
|
#define VTIME 8 /* TIME value */
|
||
|
#define VSTART 9 /* START character */
|
||
|
#define VSTOP 10 /* STOP character */
|
||
|
|
||
|
/*
|
||
|
* Values for speed_t's
|
||
|
*/
|
||
|
|
||
|
#define B0 0
|
||
|
#define B50 1
|
||
|
#define B75 2
|
||
|
#define B110 3
|
||
|
#define B134 4
|
||
|
#define B150 5
|
||
|
#define B200 6
|
||
|
#define B300 7
|
||
|
#define B600 8
|
||
|
#define B1200 9
|
||
|
#define B1800 10
|
||
|
#define B2400 11
|
||
|
#define B4800 12
|
||
|
#define B9600 13
|
||
|
#define B19200 14
|
||
|
#define B38400 15
|
||
|
|
||
|
/*
|
||
|
* Optional actions for tcsetattr()
|
||
|
*/
|
||
|
#define TCSANOW 1
|
||
|
#define TCSADRAIN 2
|
||
|
#define TCSAFLUSH 3
|
||
|
|
||
|
/*
|
||
|
* Queue selectors for tcflush()
|
||
|
*/
|
||
|
|
||
|
#define TCIFLUSH 0
|
||
|
#define TCOFLUSH 1
|
||
|
#define TCIOFLUSH 2
|
||
|
|
||
|
/*
|
||
|
* Actions for tcflow()
|
||
|
*/
|
||
|
|
||
|
#define TCOOFF 0
|
||
|
#define TCOON 1
|
||
|
#define TCIOFF 2
|
||
|
#define TCION 3
|
||
|
|
||
|
|
||
|
int __cdecl tcgetattr(int, struct termios *);
|
||
|
int __cdecl tcsetattr(int, int, const struct termios *);
|
||
|
int __cdecl tcsendbreak(int, int);
|
||
|
int __cdecl tcdrain(int);
|
||
|
int __cdecl tcflush(int, int);
|
||
|
int __cdecl tcflow(int, int);
|
||
|
|
||
|
pid_t __cdecl tcgetpgrp(int);
|
||
|
int __cdecl tcsetpgrp(int, pid_t);
|
||
|
|
||
|
speed_t __cdecl cfgetospeed(const struct termios *);
|
||
|
int __cdecl cfsetospeed(struct termios *, speed_t);
|
||
|
speed_t __cdecl cfgetispeed(const struct termios *);
|
||
|
int __cdecl cfsetispeed(struct termios *, speed_t);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* _TERMIOS_ */
|