termbits.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:7k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * termbits stuff for Linux/MIPS.
  3.  *
  4.  * This file is subject to the terms and conditions of the GNU General Public
  5.  * License.  See the file "COPYING" in the main directory of this archive
  6.  * for more details.
  7.  *
  8.  * Copyright (C) 1995, 1996, 2001 Ralf Baechle
  9.  * Copyright (C) 2001  MIPS Technologies, Inc.
  10.  */
  11. #ifndef _ASM_TERMBITS_H
  12. #define _ASM_TERMBITS_H
  13. #include <linux/posix_types.h>
  14. typedef unsigned char cc_t;
  15. typedef unsigned long speed_t;
  16. typedef unsigned long tcflag_t;
  17. /*
  18.  * The ABI says nothing about NCC but seems to use NCCS as
  19.  * replacement for it in struct termio
  20.  */
  21. #define NCCS 23
  22. struct termios {
  23. tcflag_t c_iflag; /* input mode flags */
  24. tcflag_t c_oflag; /* output mode flags */
  25. tcflag_t c_cflag; /* control mode flags */
  26. tcflag_t c_lflag; /* local mode flags */
  27. /*
  28.  * Seems nonexistent in the ABI, but Linux assumes existence ...
  29.  */
  30. cc_t c_line; /* line discipline */
  31. cc_t c_cc[NCCS]; /* control characters */
  32. };
  33. /* c_cc characters */
  34. #define VINTR  0 /* Interrupt character [ISIG].  */
  35. #define VQUIT  1 /* Quit character [ISIG].  */
  36. #define VERASE  2 /* Erase character [ICANON].  */
  37. #define VKILL  3 /* Kill-line character [ICANON].  */
  38. #define VMIN  4 /* Minimum number of bytes read at once [!ICANON].  */
  39. #define VTIME  5 /* Time-out value (tenths of a second) [!ICANON].  */
  40. #define VEOL2  6 /* Second EOL character [ICANON].  */
  41. #define VSWTC  7 /* ??? */
  42. #define VSWTCH VSWTC
  43. #define VSTART  8 /* Start (X-ON) character [IXON, IXOFF].  */
  44. #define VSTOP  9 /* Stop (X-OFF) character [IXON, IXOFF].  */
  45. #define VSUSP 10 /* Suspend character [ISIG].  */
  46. #if 0
  47. /*
  48.  * VDSUSP is not supported
  49.  */
  50. #define VDSUSP 11 /* Delayed suspend character [ISIG].  */
  51. #endif
  52. #define VREPRINT 12 /* Reprint-line character [ICANON].  */
  53. #define VDISCARD 13 /* Discard character [IEXTEN].  */
  54. #define VWERASE 14 /* Word-erase character [ICANON].  */
  55. #define VLNEXT 15 /* Literal-next character [IEXTEN].  */
  56. #define VEOF 16 /* End-of-file character [ICANON].  */
  57. #define VEOL 17 /* End-of-line character [ICANON].  */
  58. /* c_iflag bits */
  59. #define IGNBRK 0000001 /* Ignore break condition.  */
  60. #define BRKINT 0000002 /* Signal interrupt on break.  */
  61. #define IGNPAR 0000004 /* Ignore characters with parity errors.  */
  62. #define PARMRK 0000010 /* Mark parity and framing errors.  */
  63. #define INPCK 0000020 /* Enable input parity check.  */
  64. #define ISTRIP 0000040 /* Strip 8th bit off characters.  */
  65. #define INLCR 0000100 /* Map NL to CR on input.  */
  66. #define IGNCR 0000200 /* Ignore CR.  */
  67. #define ICRNL 0000400 /* Map CR to NL on input.  */
  68. #define IUCLC 0001000 /* Map upper case to lower case on input.  */
  69. #define IXON 0002000 /* Enable start/stop output control.  */
  70. #define IXANY 0004000 /* Any character will restart after stop.  */
  71. #define IXOFF 0010000 /* Enable start/stop input control.  */
  72. #define IMAXBEL 0020000 /* Ring bell when input queue is full.  */
  73. /* c_oflag bits */
  74. #define OPOST 0000001 /* Perform output processing.  */
  75. #define OLCUC 0000002 /* Map lower case to upper case on output.  */
  76. #define ONLCR 0000004 /* Map NL to CR-NL on output.  */
  77. #define OCRNL 0000010
  78. #define ONOCR 0000020
  79. #define ONLRET 0000040
  80. #define OFILL 0000100
  81. #define OFDEL 0000200
  82. #define NLDLY 0000400
  83. #define   NL0 0000000
  84. #define   NL1 0000400
  85. #define CRDLY 0003000
  86. #define   CR0 0000000
  87. #define   CR1 0001000
  88. #define   CR2 0002000
  89. #define   CR3 0003000
  90. #define TABDLY 0014000
  91. #define   TAB0 0000000
  92. #define   TAB1 0004000
  93. #define   TAB2 0010000
  94. #define   TAB3 0014000
  95. #define   XTABS 0014000
  96. #define BSDLY 0020000
  97. #define   BS0 0000000
  98. #define   BS1 0020000
  99. #define VTDLY 0040000
  100. #define   VT0 0000000
  101. #define   VT1 0040000
  102. #define FFDLY 0100000
  103. #define   FF0 0000000
  104. #define   FF1 0100000
  105. /*
  106. #define PAGEOUT ???
  107. #define WRAP    ???
  108.  */
  109. /* c_cflag bit meaning */
  110. #define CBAUD 0010017
  111. #define  B0 0000000 /* hang up */
  112. #define  B50 0000001
  113. #define  B75 0000002
  114. #define  B110 0000003
  115. #define  B134 0000004
  116. #define  B150 0000005
  117. #define  B200 0000006
  118. #define  B300 0000007
  119. #define  B600 0000010
  120. #define  B1200 0000011
  121. #define  B1800 0000012
  122. #define  B2400 0000013
  123. #define  B4800 0000014
  124. #define  B9600 0000015
  125. #define  B19200 0000016
  126. #define  B38400 0000017
  127. #define EXTA B19200
  128. #define EXTB B38400
  129. #define CSIZE 0000060 /* Number of bits per byte (mask).  */
  130. #define   CS5 0000000 /* 5 bits per byte.  */
  131. #define   CS6 0000020 /* 6 bits per byte.  */
  132. #define   CS7 0000040 /* 7 bits per byte.  */
  133. #define   CS8 0000060 /* 8 bits per byte.  */
  134. #define CSTOPB 0000100 /* Two stop bits instead of one.  */
  135. #define CREAD 0000200 /* Enable receiver.  */
  136. #define PARENB 0000400 /* Parity enable.  */
  137. #define PARODD 0001000 /* Odd parity instead of even.  */
  138. #define HUPCL 0002000 /* Hang up on last close.  */
  139. #define CLOCAL 0004000 /* Ignore modem status lines.  */
  140. #define CBAUDEX 0010000
  141. #define    B57600 0010001
  142. #define   B115200 0010002
  143. #define   B230400 0010003
  144. #define   B460800 0010004
  145. #define   B500000 0010005
  146. #define   B576000 0010006
  147. #define   B921600 0010007
  148. #define  B1000000 0010010
  149. #define  B1152000 0010011
  150. #define  B1500000 0010012
  151. #define  B2000000 0010013
  152. #define  B2500000 0010014
  153. #define  B3000000 0010015
  154. #define  B3500000 0010016
  155. #define  B4000000 0010017
  156. #define CIBAUD   002003600000 /* input baud rate (not used) */
  157. #define CMSPAR    010000000000 /* mark or space (stick) parity */
  158. #define CRTSCTS   020000000000 /* flow control */
  159. /* c_lflag bits */
  160. #define ISIG 0000001 /* Enable signals.  */
  161. #define ICANON 0000002 /* Do erase and kill processing.  */
  162. #define XCASE 0000004
  163. #define ECHO 0000010 /* Enable echo.  */
  164. #define ECHOE 0000020 /* Visual erase for ERASE.  */
  165. #define ECHOK 0000040 /* Echo NL after KILL.  */
  166. #define ECHONL 0000100 /* Echo NL even if ECHO is off.  */
  167. #define NOFLSH 0000200 /* Disable flush after interrupt.  */
  168. #define IEXTEN 0000400 /* Enable DISCARD and LNEXT.  */
  169. #define ECHOCTL 0001000 /* Echo control characters as ^X.  */
  170. #define ECHOPRT 0002000 /* Hardcopy visual erase.  */
  171. #define ECHOKE 0004000 /* Visual erase for KILL.  */
  172. #define FLUSHO 0020000
  173. #define PENDIN 0040000 /* Retype pending input (state).  */
  174. #define TOSTOP 0100000 /* Send SIGTTOU for background output.  */
  175. #define ITOSTOP TOSTOP
  176. /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
  177. #define TIOCSER_TEMT    0x01 /* Transmitter physically empty */
  178. /* tcflow() and TCXONC use these */
  179. #define TCOOFF 0 /* Suspend output.  */
  180. #define TCOON 1 /* Restart suspended output.  */
  181. #define TCIOFF 2 /* Send a STOP character.  */
  182. #define TCION 3 /* Send a START character.  */
  183. /* tcflush() and TCFLSH use these */
  184. #define TCIFLUSH 0 /* Discard data received but not yet read.  */
  185. #define TCOFLUSH 1 /* Discard data written but not yet sent.  */
  186. #define TCIOFLUSH 2 /* Discard all pending data.  */
  187. /* tcsetattr uses these */
  188. #define TCSANOW TCSETS /* Change immediately.  */
  189. #define TCSADRAIN TCSETSW /* Change when pending output is written.  */
  190. #define TCSAFLUSH TCSETSF /* Flush pending input before changing.  */
  191. #endif /* _ASM_TERMBITS_H */