termios.inc 7.4 KB

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