termios.inc 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. {
  2. $Id$
  3. }
  4. {********************
  5. IOCtl(TermIOS)
  6. ********************}
  7. Const
  8. { Amount of Control Chars }
  9. NCCS = 32;
  10. NCC = 8;
  11. {$ifdef powerpc}
  12. TCGETS = $402c7413;
  13. TCSETS = $802c7414;
  14. TCSETSW = $802c7415;
  15. TCSETSF = $802c7416;
  16. TCGETA = $40147417;
  17. TCSETA = $80147418;
  18. TCSETAW = $80147419;
  19. TCSETAF = $8014741c;
  20. TCSBRK = $2000741d;
  21. TCXONC = $2000741e;
  22. TCFLSH = $2000741f;
  23. TIOCEXCL = $540c;
  24. TIOCNXCL = $540d;
  25. TIOCSCTTY = $540e;
  26. TIOCGPGRP = $40047477;
  27. TIOCSPGRP = $80047476;
  28. TIOCOUTQ = $40047473;
  29. TIOCSTI = $5412;
  30. TIOCGWINSZ = $40087468;
  31. TIOCSWINSZ = $80087467;
  32. TIOCMGET = $5415;
  33. TIOCMBIS = $5416;
  34. TIOCMBIC = $5417;
  35. TIOCMSET = $5418;
  36. TIOCGSOFTCAR = $5419;
  37. TIOCSSOFTCAR = $541a;
  38. FIONREAD = $4004667f;
  39. TIOCINQ = $4004667f;
  40. TIOCLINUX = $541c;
  41. TIOCCONS = $541d;
  42. TIOCGSERIAL = $541e;
  43. TIOCSSERIAL = $541f;
  44. TIOCPKT = $5420;
  45. FIONBIO = $8004667e;
  46. TIOCNOTTY = $5422;
  47. TIOCSETD = $5423;
  48. TIOCGETD = $5424;
  49. TCSBRKP = $5425;
  50. TIOCTTYGSTRUCT = $5426;
  51. FIONCLEX = $20006602;
  52. FIOCLEX = $20006601;
  53. FIOASYNC = $8004667d;
  54. TIOCSERCONFIG = $5453;
  55. TIOCSERGWILD = $5454;
  56. TIOCSERSWILD = $5455;
  57. TIOCGLCKTRMIOS = $5456;
  58. TIOCSLCKTRMIOS = $5457;
  59. TIOCSERGSTRUCT = $5458;
  60. TIOCSERGETLSR = $5459;
  61. TIOCSERGETMULTI = $545a;
  62. TIOCSERSETMULTI = $545b;
  63. TIOCMIWAIT = $545c;
  64. TIOCGICOUNT = $545d;
  65. TIOCPKT_DATA = $0;
  66. TIOCPKT_FLUSHREAD = $1;
  67. TIOCPKT_FLUSHWRITE= $2;
  68. TIOCPKT_STOP = $4;
  69. TIOCPKT_START = $8;
  70. TIOCPKT_NOSTOP = $10;
  71. TIOCPKT_DOSTOP = $20;
  72. {$else}
  73. { For Terminal handling }
  74. TCGETS = $5401;
  75. TCSETS = $5402;
  76. TCSETSW = $5403;
  77. TCSETSF = $5404;
  78. TCGETA = $5405;
  79. TCSETA = $5406;
  80. TCSETAW = $5407;
  81. TCSETAF = $5408;
  82. TCSBRK = $5409;
  83. TCXONC = $540A;
  84. TCFLSH = $540B;
  85. TIOCEXCL = $540C;
  86. TIOCNXCL = $540D;
  87. TIOCSCTTY = $540E;
  88. TIOCGPGRP = $540F;
  89. TIOCSPGRP = $5410;
  90. TIOCOUTQ = $5411;
  91. TIOCSTI = $5412;
  92. TIOCGWINSZ = $5413;
  93. TIOCSWINSZ = $5414;
  94. TIOCMGET = $5415;
  95. TIOCMBIS = $5416;
  96. TIOCMBIC = $5417;
  97. TIOCMSET = $5418;
  98. TIOCGSOFTCAR = $5419;
  99. TIOCSSOFTCAR = $541A;
  100. FIONREAD = $541B;
  101. TIOCINQ = FIONREAD;
  102. TIOCLINUX = $541C;
  103. TIOCCONS = $541D;
  104. TIOCGSERIAL = $541E;
  105. TIOCSSERIAL = $541F;
  106. TIOCPKT = $5420;
  107. FIONBIO = $5421;
  108. TIOCNOTTY = $5422;
  109. TIOCSETD = $5423;
  110. TIOCGETD = $5424;
  111. TCSBRKP = $5425;
  112. TIOCTTYGSTRUCT = $5426;
  113. FIONCLEX = $5450;
  114. FIOCLEX = $5451;
  115. FIOASYNC = $5452;
  116. TIOCSERCONFIG = $5453;
  117. TIOCSERGWILD = $5454;
  118. TIOCSERSWILD = $5455;
  119. TIOCGLCKTRMIOS = $5456;
  120. TIOCSLCKTRMIOS = $5457;
  121. TIOCSERGSTRUCT = $5458;
  122. TIOCSERGETLSR = $5459;
  123. TIOCSERGETMULTI = $545A;
  124. TIOCSERSETMULTI = $545B;
  125. TIOCMIWAIT = $545C;
  126. TIOCGICOUNT = $545D;
  127. TIOCPKT_DATA = 0;
  128. TIOCPKT_FLUSHREAD = 1;
  129. TIOCPKT_FLUSHWRITE = 2;
  130. TIOCPKT_STOP = 4;
  131. TIOCPKT_START = 8;
  132. TIOCPKT_NOSTOP = 16;
  133. TIOCPKT_DOSTOP = 32;
  134. {$endif}
  135. Type
  136. winsize = packed record
  137. ws_row,
  138. ws_col,
  139. ws_xpixel,
  140. ws_ypixel : word;
  141. end;
  142. TWinSize=winsize;
  143. {
  144. Termio = packed record
  145. c_iflag, { input mode flags }
  146. c_oflag, { output mode flags }
  147. c_cflag, { control mode flags }
  148. c_lflag : Word; { local mode flags }
  149. c_line : Word; { line discipline - careful, only High byte in use}
  150. c_cc : array [0..NCC-1] of char;{ control characters }
  151. end;
  152. TTermio=Termio;
  153. }
  154. {$PACKRECORDS C}
  155. Termios = record
  156. c_iflag,
  157. c_oflag,
  158. c_cflag,
  159. c_lflag : cardinal;
  160. c_line : char;
  161. c_cc : array[0..NCCS-1] of byte;
  162. c_ispeed,
  163. c_ospeed : cardinal;
  164. end;
  165. TTermios=Termios;
  166. {$PACKRECORDS Default}
  167. {const
  168. InitCC:array[0..NCCS-1] of byte=(3,34,177,25,4,0,1,0,21,23,32,0,22,17,27,26,0,0,0);}
  169. const
  170. {c_cc characters}
  171. VINTR = 0;
  172. VQUIT = 1;
  173. VERASE = 2;
  174. VKILL = 3;
  175. VEOF = 4;
  176. VTIME = 5;
  177. VMIN = 6;
  178. VSWTC = 7;
  179. VSTART = 8;
  180. VSTOP = 9;
  181. VSUSP = 10;
  182. VEOL = 11;
  183. VREPRINT = 12;
  184. VDISCARD = 13;
  185. VWERASE = 14;
  186. VLNEXT = 15;
  187. VEOL2 = 16;
  188. {c_iflag bits}
  189. IGNBRK = $0000001;
  190. BRKINT = $0000002;
  191. IGNPAR = $0000004;
  192. PARMRK = $0000008;
  193. INPCK = $0000010;
  194. ISTRIP = $0000020;
  195. INLCR = $0000040;
  196. IGNCR = $0000080;
  197. ICRNL = $0000100;
  198. IUCLC = $0000200;
  199. IXON = $0000400;
  200. IXANY = $0000800;
  201. IXOFF = $0001000;
  202. IMAXBEL = $0002000;
  203. {c_oflag bits}
  204. OPOST = $0000001;
  205. OLCUC = $0000002;
  206. ONLCR = $0000004;
  207. OCRNL = $0000008;
  208. ONOCR = $0000010;
  209. ONLRET = $0000020;
  210. OFILL = $0000040;
  211. OFDEL = $0000080;
  212. NLDLY = $0000100;
  213. NL0 = $0000000;
  214. NL1 = $0000100;
  215. CRDLY = $0000600;
  216. CR0 = $0000000;
  217. CR1 = $0000200;
  218. CR2 = $0000400;
  219. CR3 = $0000600;
  220. TABDLY = $0001800;
  221. TAB0 = $0000000;
  222. TAB1 = $0000800;
  223. TAB2 = $0001000;
  224. TAB3 = $0001800;
  225. XTABS = $0001800;
  226. BSDLY = $0002000;
  227. BS0 = $0000000;
  228. BS1 = $0002000;
  229. VTDLY = $0004000;
  230. VT0 = $0000000;
  231. VT1 = $0004000;
  232. FFDLY = $0008000;
  233. FF0 = $0000000;
  234. FF1 = $0008000;
  235. {c_cflag bits}
  236. CBAUD = $000100F;
  237. B0 = $0000000;
  238. B50 = $0000001;
  239. B75 = $0000002;
  240. B110 = $0000003;
  241. B134 = $0000004;
  242. B150 = $0000005;
  243. B200 = $0000006;
  244. B300 = $0000007;
  245. B600 = $0000008;
  246. B1200 = $0000009;
  247. B1800 = $000000A;
  248. B2400 = $000000B;
  249. B4800 = $000000C;
  250. B9600 = $000000D;
  251. B19200 = $000000E;
  252. B38400 = $000000F;
  253. EXTA = B19200;
  254. EXTB = B38400;
  255. CSIZE = $0000030;
  256. CS5 = $0000000;
  257. CS6 = $0000010;
  258. CS7 = $0000020;
  259. CS8 = $0000030;
  260. CSTOPB = $0000040;
  261. CREAD = $0000080;
  262. PARENB = $0000100;
  263. PARODD = $0000200;
  264. HUPCL = $0000400;
  265. CLOCAL = $0000800;
  266. CBAUDEX = $0001000;
  267. B57600 = $0001001;
  268. B115200 = $0001002;
  269. B230400 = $0001003;
  270. B460800 = $0001004;
  271. CIBAUD = $100F0000;
  272. CMSPAR = $40000000;
  273. CRTSCTS = $80000000;
  274. {c_lflag bits}
  275. ISIG = $0000001;
  276. ICANON = $0000002;
  277. XCASE = $0000004;
  278. ECHO = $0000008;
  279. ECHOE = $0000010;
  280. ECHOK = $0000020;
  281. ECHONL = $0000040;
  282. NOFLSH = $0000080;
  283. TOSTOP = $0000100;
  284. ECHOCTL = $0000200;
  285. ECHOPRT = $0000400;
  286. ECHOKE = $0000800;
  287. FLUSHO = $0001000;
  288. PENDIN = $0004000;
  289. IEXTEN = $0008000;
  290. {c_line bits}
  291. TIOCM_LE = $001;
  292. TIOCM_DTR = $002;
  293. TIOCM_RTS = $004;
  294. TIOCM_ST = $008;
  295. TIOCM_SR = $010;
  296. TIOCM_CTS = $020;
  297. TIOCM_CAR = $040;
  298. TIOCM_RNG = $080;
  299. TIOCM_DSR = $100;
  300. TIOCM_CD = TIOCM_CAR;
  301. TIOCM_RI = TIOCM_RNG;
  302. TIOCM_OUT1 = $2000;
  303. TIOCM_OUT2 = $4000;
  304. {TCSetAttr}
  305. TCSANOW = 0;
  306. TCSADRAIN = 1;
  307. TCSAFLUSH = 2;
  308. {TCFlow}
  309. TCOOFF = 0;
  310. TCOON = 1;
  311. TCIOFF = 2;
  312. TCION = 3;
  313. {TCFlush}
  314. TCIFLUSH = 0;
  315. TCOFLUSH = 1;
  316. TCIOFLUSH = 2;
  317. {
  318. $Log$
  319. Revision 1.7 2004-02-21 16:24:47 marco
  320. * ppc ioctl nr fixed
  321. }