diff options
Diffstat (limited to '')
-rw-r--r-- | public/sdk/inc/posix/termios.h | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/public/sdk/inc/posix/termios.h b/public/sdk/inc/posix/termios.h new file mode 100644 index 000000000..2c294afb8 --- /dev/null +++ b/public/sdk/inc/posix/termios.h @@ -0,0 +1,178 @@ +/*++ + +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 _CRTAPI1 tcgetattr(int, struct termios *); +int _CRTAPI1 tcsetattr(int, int, const struct termios *); +int _CRTAPI1 tcsendbreak(int, int); +int _CRTAPI1 tcdrain(int); +int _CRTAPI1 tcflush(int, int); +int _CRTAPI1 tcflow(int, int); + +pid_t _CRTAPI1 tcgetpgrp(int); +int _CRTAPI1 tcsetpgrp(int, pid_t); + +speed_t _CRTAPI1 cfgetospeed(const struct termios *); +int _CRTAPI1 cfsetospeed(struct termios *, speed_t); +speed_t _CRTAPI1 cfgetispeed(const struct termios *); +int _CRTAPI1 cfsetispeed(struct termios *, speed_t); + +#ifdef __cplusplus +} +#endif + +#endif /* _TERMIOS_ */ |