termios.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. /* termios type and macro definitions. Linux version.
  2. Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2005
  3. Free Software Foundation, Inc.
  4. This file is part of the GNU C Library.
  5. The GNU C Library is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU Lesser General Public
  7. License as published by the Free Software Foundation; either
  8. version 2.1 of the License, or (at your option) any later version.
  9. The GNU C Library is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. Lesser General Public License for more details.
  13. You should have received a copy of the GNU Lesser General Public
  14. License along with the GNU C Library; if not, see
  15. <http://www.gnu.org/licenses/>. */
  16. #ifndef _TERMIOS_H
  17. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  18. #endif
  19. typedef unsigned char cc_t;
  20. typedef unsigned int speed_t;
  21. typedef unsigned int tcflag_t;
  22. #define NCCS 32
  23. struct termios
  24. {
  25. tcflag_t c_iflag; /* input mode flags */
  26. tcflag_t c_oflag; /* output mode flags */
  27. tcflag_t c_cflag; /* control mode flags */
  28. tcflag_t c_lflag; /* local mode flags */
  29. cc_t c_line; /* line discipline */
  30. cc_t c_cc[NCCS]; /* control characters */
  31. speed_t c_ispeed; /* input speed */
  32. speed_t c_ospeed; /* output speed */
  33. #define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
  34. #define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
  35. };
  36. /* c_cc characters */
  37. #define VINTR 0
  38. #define VQUIT 1
  39. #define VERASE 2
  40. #define VKILL 3
  41. #define VEOF 4
  42. #define VTIME 5
  43. #define VMIN 6
  44. #define VSWTC 7
  45. #define VSTART 8
  46. #define VSTOP 9
  47. #define VSUSP 10
  48. #define VEOL 11
  49. #define VREPRINT 12
  50. #define VDISCARD 13
  51. #define VWERASE 14
  52. #define VLNEXT 15
  53. #define VEOL2 16
  54. /* c_iflag bits */
  55. #define IGNBRK 0000001
  56. #define BRKINT 0000002
  57. #define IGNPAR 0000004
  58. #define PARMRK 0000010
  59. #define INPCK 0000020
  60. #define ISTRIP 0000040
  61. #define INLCR 0000100
  62. #define IGNCR 0000200
  63. #define ICRNL 0000400
  64. #define IUCLC 0001000
  65. #define IXON 0002000
  66. #define IXANY 0004000
  67. #define IXOFF 0010000
  68. #define IMAXBEL 0020000
  69. #define IUTF8 0040000
  70. /* c_oflag bits */
  71. #define OPOST 0000001
  72. #define OLCUC 0000002
  73. #define ONLCR 0000004
  74. #define OCRNL 0000010
  75. #define ONOCR 0000020
  76. #define ONLRET 0000040
  77. #define OFILL 0000100
  78. #define OFDEL 0000200
  79. #if defined __USE_MISC || defined __USE_XOPEN
  80. # define NLDLY 0000400
  81. # define NL0 0000000
  82. # define NL1 0000400
  83. # define CRDLY 0003000
  84. # define CR0 0000000
  85. # define CR1 0001000
  86. # define CR2 0002000
  87. # define CR3 0003000
  88. # define TABDLY 0014000
  89. # define TAB0 0000000
  90. # define TAB1 0004000
  91. # define TAB2 0010000
  92. # define TAB3 0014000
  93. # define BSDLY 0020000
  94. # define BS0 0000000
  95. # define BS1 0020000
  96. # define FFDLY 0100000
  97. # define FF0 0000000
  98. # define FF1 0100000
  99. #endif
  100. #define VTDLY 0040000
  101. #define VT0 0000000
  102. #define VT1 0040000
  103. #ifdef __USE_MISC
  104. # define XTABS 0014000
  105. #endif
  106. /* c_cflag bit meaning */
  107. #ifdef __USE_MISC
  108. # define CBAUD 0010017
  109. #endif
  110. #define B0 0000000 /* hang up */
  111. #define B50 0000001
  112. #define B75 0000002
  113. #define B110 0000003
  114. #define B134 0000004
  115. #define B150 0000005
  116. #define B200 0000006
  117. #define B300 0000007
  118. #define B600 0000010
  119. #define B1200 0000011
  120. #define B1800 0000012
  121. #define B2400 0000013
  122. #define B4800 0000014
  123. #define B9600 0000015
  124. #define B19200 0000016
  125. #define B38400 0000017
  126. #ifdef __USE_MISC
  127. # define EXTA B19200
  128. # define EXTB B38400
  129. #endif
  130. #define CSIZE 0000060
  131. #define CS5 0000000
  132. #define CS6 0000020
  133. #define CS7 0000040
  134. #define CS8 0000060
  135. #define CSTOPB 0000100
  136. #define CREAD 0000200
  137. #define PARENB 0000400
  138. #define PARODD 0001000
  139. #define HUPCL 0002000
  140. #define CLOCAL 0004000
  141. #ifdef __USE_MISC
  142. # define CBAUDEX 0010000
  143. #endif
  144. #define B57600 0010001
  145. #define B115200 0010002
  146. #define B230400 0010003
  147. #define B460800 0010004
  148. #define B921600 0010005
  149. #define B1843200 0010006
  150. #define B6250000 0010007
  151. #ifdef __arch_v32
  152. #define B12500000 0010010
  153. #define __MAX_BAUD B12500000
  154. #else
  155. #define __MAX_BAUD B6250000
  156. #endif
  157. #ifdef __USE_MISC
  158. # define CIBAUD 002003600000 /* input baud rate (not used) */
  159. # define CMSPAR 010000000000 /* mark or space (stick) parity */
  160. # define CRTSCTS 020000000000 /* flow control */
  161. #endif
  162. /* c_lflag bits */
  163. #define ISIG 0000001
  164. #define ICANON 0000002
  165. #if defined __USE_MISC || defined __USE_XOPEN
  166. # define XCASE 0000004
  167. #endif
  168. #define ECHO 0000010
  169. #define ECHOE 0000020
  170. #define ECHOK 0000040
  171. #define ECHONL 0000100
  172. #define NOFLSH 0000200
  173. #define TOSTOP 0000400
  174. #ifdef __USE_MISC
  175. # define ECHOCTL 0001000
  176. # define ECHOPRT 0002000
  177. # define ECHOKE 0004000
  178. # define FLUSHO 0010000
  179. # define PENDIN 0040000
  180. #endif
  181. #define IEXTEN 0100000
  182. /* tcflow() and TCXONC use these */
  183. #define TCOOFF 0
  184. #define TCOON 1
  185. #define TCIOFF 2
  186. #define TCION 3
  187. /* tcflush() and TCFLSH use these */
  188. #define TCIFLUSH 0
  189. #define TCOFLUSH 1
  190. #define TCIOFLUSH 2
  191. /* tcsetattr uses these */
  192. #define TCSANOW 0
  193. #define TCSADRAIN 1
  194. #define TCSAFLUSH 2
  195. #define _IOT_termios /* Hurd ioctl type field. */ \
  196. _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)