termios.inc 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 1999-2004 by Marco van de Voort
  4. member of the Free Pascal development team
  5. ioctls constants for linux
  6. See the file COPYING.FPC, included in this distribution,
  7. for details about the copyright.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. **********************************************************************}
  12. {********************
  13. IOCtl(TermIOS)
  14. ********************}
  15. Const
  16. { Amount of Control Chars }
  17. NCCS = 32;
  18. NCC = 8;
  19. {$ifdef cpupowerpc}
  20. TCGETS = $402c7413;
  21. TCSETS = $802c7414;
  22. TCSETSW = $802c7415;
  23. TCSETSF = $802c7416;
  24. TCGETA = $40147417;
  25. TCSETA = $80147418;
  26. TCSETAW = $80147419;
  27. TCSETAF = $8014741c;
  28. TCSBRK = $2000741d;
  29. TCXONC = $2000741e;
  30. TCFLSH = $2000741f;
  31. TIOCEXCL = $540c;
  32. TIOCNXCL = $540d;
  33. TIOCSCTTY = $540e;
  34. TIOCGPGRP = $40047477;
  35. TIOCSPGRP = $80047476;
  36. TIOCOUTQ = $40047473;
  37. TIOCSTI = $5412;
  38. TIOCGWINSZ = $40087468;
  39. TIOCSWINSZ = $80087467;
  40. TIOCMGET = $5415;
  41. TIOCMBIS = $5416;
  42. TIOCMBIC = $5417;
  43. TIOCMSET = $5418;
  44. TIOCGSOFTCAR = $5419;
  45. TIOCSSOFTCAR = $541a;
  46. FIONREAD = $4004667f;
  47. TIOCINQ = $4004667f;
  48. TIOCLINUX = $541c;
  49. TIOCCONS = $541d;
  50. TIOCGSERIAL = $541e;
  51. TIOCSSERIAL = $541f;
  52. TIOCPKT = $5420;
  53. FIONBIO = $8004667e;
  54. TIOCNOTTY = $5422;
  55. TIOCSETD = $5423;
  56. TIOCGETD = $5424;
  57. TCSBRKP = $5425;
  58. TIOCTTYGSTRUCT = $5426;
  59. FIONCLEX = $20006602;
  60. FIOCLEX = $20006601;
  61. FIOASYNC = $8004667d;
  62. TIOCSERCONFIG = $5453;
  63. TIOCSERGWILD = $5454;
  64. TIOCSERSWILD = $5455;
  65. TIOCGLCKTRMIOS = $5456;
  66. TIOCSLCKTRMIOS = $5457;
  67. TIOCSERGSTRUCT = $5458;
  68. TIOCSERGETLSR = $5459;
  69. TIOCSERGETMULTI = $545a;
  70. TIOCSERSETMULTI = $545b;
  71. TIOCMIWAIT = $545c;
  72. TIOCGICOUNT = $545d;
  73. {c_cc characters}
  74. VINTR = 0;
  75. VQUIT = 1;
  76. VERASE = 2;
  77. VKILL = 3;
  78. VEOF = 4;
  79. VMIN = 5;
  80. VEOL = 6;
  81. VTIME = 7;
  82. VEOL2 = 8;
  83. VSWTC = 9;
  84. VWERASE = 10;
  85. VREPRINT = 11;
  86. VSUSP = 12;
  87. VSTART = 13;
  88. VSTOP = 14;
  89. VLNEXT = 15;
  90. VDISCARD = 16;
  91. { c_iflag bits }
  92. IGNBRK = &0000001;
  93. BRKINT = &0000002;
  94. IGNPAR = &0000004;
  95. PARMRK = &0000010;
  96. INPCK = &0000020;
  97. ISTRIP = &0000040;
  98. INLCR = &0000100;
  99. IGNCR = &0000200;
  100. ICRNL = &0000400;
  101. IXON = &0001000;
  102. IXOFF = &0002000;
  103. IXANY = &0004000;
  104. IUCLC = &0010000;
  105. IMAXBEL= &0020000;
  106. { c_oflag bits }
  107. OPOST = &0000001;
  108. ONLCR = &0000002;
  109. OLCUC = &0000004;
  110. OCRNL = &0000010;
  111. ONOCR = &0000020;
  112. ONLRET = &0000040;
  113. OFILL = &00000100;
  114. OFDEL = &00000200;
  115. NLDLY = &00001400;
  116. NL0 = &00000000;
  117. NL1 = &00000400;
  118. NL2 = &00001000;
  119. NL3 = &00001400;
  120. TABDLY = &00006000;
  121. TAB0 = &00000000;
  122. TAB1 = &00002000;
  123. TAB2 = &00004000;
  124. TAB3 = &00006000;
  125. CRDLY = &00030000;
  126. CR0 = &00000000;
  127. CR1 = &00010000;
  128. CR2 = &00020000;
  129. CR3 = &00030000;
  130. FFDLY = &00040000;
  131. FF0 = &00000000;
  132. FF1 = &00040000;
  133. BSDLY = &00100000;
  134. BS0 = &00000000;
  135. BS1 = &00100000;
  136. VTDLY = &00200000;
  137. VT0 = &00000000;
  138. VT1 = &00200000;
  139. XTABS = &01000000; { Hmm.. Linux/i386 considers this part of TABDLY.. }
  140. { c_cflag bit meaning }
  141. CBAUD = &0000377;
  142. B0 = &0000000; { hang up }
  143. B50 = &0000001;
  144. B75 = &0000002;
  145. B110 = &0000003;
  146. B134 = &0000004;
  147. B150 = &0000005;
  148. B200 = &0000006;
  149. B300 = &0000007;
  150. B600 = &0000010;
  151. B1200 = &0000011;
  152. B1800 = &0000012;
  153. B2400 = &0000013;
  154. B4800 = &0000014;
  155. B9600 = &0000015;
  156. B19200= &0000016;
  157. B38400= &0000017;
  158. EXTA = B19200;
  159. EXTB = B38400;
  160. CBAUDEX = &0000020;
  161. B57600 = &00020;
  162. B115200 = &00021;
  163. B230400 = &00022;
  164. B460800 = &00023;
  165. B500000 = &00024;
  166. B576000 = &00025;
  167. B921600 = &00026;
  168. B1000000 = &00027;
  169. B1152000 = &00030;
  170. B1500000 = &00031;
  171. B2000000 = &00032;
  172. B2500000 = &00033;
  173. B3000000 = &00034;
  174. B3500000 = &00035;
  175. B4000000 = &00036;
  176. __MAX_BAUD= B4000000;
  177. CSIZE = &00001400;
  178. CS5 = &00000000;
  179. CS6 = &00000400;
  180. CS7 = &00001000;
  181. CS8 = &00001400;
  182. CSTOPB = &00002000;
  183. CREAD = &00004000;
  184. PARENB = &00010000;
  185. PARODD = &00020000;
  186. HUPCL = &00040000;
  187. CLOCAL = &00100000;
  188. CRTSCTS= &020000000000; { flow control }
  189. { c_lflag bits }
  190. ISIG = $00000080;
  191. ICANON = $00000100;
  192. XCASE = $00004000;
  193. ECHO = $00000008;
  194. ECHOE = $00000002;
  195. ECHOK = $00000004;
  196. ECHONL = $00000010;
  197. NOFLSH = $80000000;
  198. TOSTOP = $00400000;
  199. ECHOCTL= $00000040;
  200. ECHOPRT= $00000020;
  201. ECHOKE = $00000001;
  202. FLUSHO = $00800000;
  203. PENDIN = $20000000;
  204. IEXTEN = $00000400;
  205. { Values for the ACTION argument to `tcflow'. }
  206. TCOOFF = 0;
  207. TCOON = 1;
  208. TCIOFF = 2;
  209. TCION = 3;
  210. { Values for the QUEUE_SELECTOR argument to `tcflush'. }
  211. TCIFLUSH = 0;
  212. TCOFLUSH = 1;
  213. TCIOFLUSH = 2;
  214. { Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. }
  215. TCSANOW = 0;
  216. TCSADRAIN = 1;
  217. TCSAFLUSH = 2;
  218. { Used for packet mode }
  219. TIOCPKT_DATA = 0;
  220. TIOCPKT_FLUSHREAD = 1;
  221. TIOCPKT_FLUSHWRITE = 2;
  222. TIOCPKT_STOP = 4;
  223. TIOCPKT_START = 8;
  224. TIOCPKT_NOSTOP = 16;
  225. TIOCPKT_DOSTOP = 32;
  226. { c_cc characters }
  227. _VINTR = 0;
  228. _VQUIT = 1;
  229. _VERASE= 2;
  230. _VKILL = 3;
  231. _VEOF = 4;
  232. _VMIN = 5;
  233. _VEOL = 6;
  234. _VTIME = 7;
  235. _VEOL2 = 8;
  236. _VSWTC = 9;
  237. { modem lines }
  238. TIOCM_LE = $001;
  239. TIOCM_DTR = $002;
  240. TIOCM_RTS = $004;
  241. TIOCM_ST = $008;
  242. TIOCM_SR = $010;
  243. TIOCM_CTS = $020;
  244. TIOCM_CAR = $040;
  245. TIOCM_RNG = $080;
  246. TIOCM_DSR = $100;
  247. TIOCM_CD = TIOCM_CAR;
  248. TIOCM_RI = TIOCM_RNG;
  249. { ioctl (fd, TIOCSERGETLSR, &result) where result may be as below }
  250. TIOCSER_TEMT = $01; { Transmitter physically empty }
  251. { line disciplines }
  252. N_TTY = 0;
  253. N_SLIP = 1;
  254. N_MOUSE = 2;
  255. N_PPP = 3;
  256. N_STRIP = 4;
  257. N_AX25 = 5;
  258. N_X25 = 6; { X.25 async }
  259. N_6PACK = 7;
  260. N_MASC = 8; { Mobitex module }
  261. N_R3964 = 9; { Simatic R3964 module }
  262. N_PROFIBUS_FDL = 10; { Profibus }
  263. N_IRDA = 11; { Linux IR }
  264. N_SMSBLOCK = 12; { SMS block mode }
  265. N_HDLC = 13; { synchronous HDLC }
  266. N_SYNC_PPP = 14; { synchronous PPP }
  267. N_HCI = 15; { Bluetooth HCI UART }
  268. {$endif cpupowerpc}
  269. {$ifdef cpui386}
  270. { For Terminal handling }
  271. TCGETS = $5401;
  272. TCSETS = $5402;
  273. TCSETSW = $5403;
  274. TCSETSF = $5404;
  275. TCGETA = $5405;
  276. TCSETA = $5406;
  277. TCSETAW = $5407;
  278. TCSETAF = $5408;
  279. TCSBRK = $5409;
  280. TCXONC = $540A;
  281. TCFLSH = $540B;
  282. TIOCEXCL = $540C;
  283. TIOCNXCL = $540D;
  284. TIOCSCTTY = $540E;
  285. TIOCGPGRP = $540F;
  286. TIOCSPGRP = $5410;
  287. TIOCOUTQ = $5411;
  288. TIOCSTI = $5412;
  289. TIOCGWINSZ = $5413;
  290. TIOCSWINSZ = $5414;
  291. TIOCMGET = $5415;
  292. TIOCMBIS = $5416;
  293. TIOCMBIC = $5417;
  294. TIOCMSET = $5418;
  295. TIOCGSOFTCAR = $5419;
  296. TIOCSSOFTCAR = $541A;
  297. FIONREAD = $541B;
  298. TIOCINQ = FIONREAD;
  299. TIOCLINUX = $541C;
  300. TIOCCONS = $541D;
  301. TIOCGSERIAL = $541E;
  302. TIOCSSERIAL = $541F;
  303. TIOCPKT = $5420;
  304. FIONBIO = $5421;
  305. TIOCNOTTY = $5422;
  306. TIOCSETD = $5423;
  307. TIOCGETD = $5424;
  308. TCSBRKP = $5425;
  309. TIOCTTYGSTRUCT = $5426;
  310. FIONCLEX = $5450;
  311. FIOCLEX = $5451;
  312. FIOASYNC = $5452;
  313. TIOCSERCONFIG = $5453;
  314. TIOCSERGWILD = $5454;
  315. TIOCSERSWILD = $5455;
  316. TIOCGLCKTRMIOS = $5456;
  317. TIOCSLCKTRMIOS = $5457;
  318. TIOCSERGSTRUCT = $5458;
  319. TIOCSERGETLSR = $5459;
  320. TIOCSERGETMULTI = $545A;
  321. TIOCSERSETMULTI = $545B;
  322. TIOCMIWAIT = $545C;
  323. TIOCGICOUNT = $545D;
  324. TIOCGHAYESESP = $545E;
  325. TIOCSHAYESESP = $545F;
  326. FIOQSIZE = $5460;
  327. TIOCPKT_DATA = 0;
  328. TIOCPKT_FLUSHREAD = 1;
  329. TIOCPKT_FLUSHWRITE = 2;
  330. TIOCPKT_STOP = 4;
  331. TIOCPKT_START = 8;
  332. TIOCPKT_NOSTOP = 16;
  333. TIOCPKT_DOSTOP = 32;
  334. {c_cc characters}
  335. VINTR = 0;
  336. VQUIT = 1;
  337. VERASE = 2;
  338. VKILL = 3;
  339. VEOF = 4;
  340. VTIME = 5;
  341. VMIN = 6;
  342. VSWTC = 7;
  343. VSTART = 8;
  344. VSTOP = 9;
  345. VSUSP = 10;
  346. VEOL = 11;
  347. VREPRINT = 12;
  348. VDISCARD = 13;
  349. VWERASE = 14;
  350. VLNEXT = 15;
  351. VEOL2 = 16;
  352. {c_iflag bits}
  353. IGNBRK = $0000001;
  354. BRKINT = $0000002;
  355. IGNPAR = $0000004;
  356. PARMRK = $0000008;
  357. INPCK = $0000010;
  358. ISTRIP = $0000020;
  359. INLCR = $0000040;
  360. IGNCR = $0000080;
  361. ICRNL = $0000100;
  362. IUCLC = $0000200;
  363. IXON = $0000400;
  364. IXANY = $0000800;
  365. IXOFF = $0001000;
  366. IMAXBEL = $0002000;
  367. {c_oflag bits}
  368. OPOST = $0000001;
  369. OLCUC = $0000002;
  370. ONLCR = $0000004;
  371. OCRNL = $0000008;
  372. ONOCR = $0000010;
  373. ONLRET = $0000020;
  374. OFILL = $0000040;
  375. OFDEL = $0000080;
  376. NLDLY = $0000100;
  377. NL0 = $0000000;
  378. NL1 = $0000100;
  379. CRDLY = $0000600;
  380. CR0 = $0000000;
  381. CR1 = $0000200;
  382. CR2 = $0000400;
  383. CR3 = $0000600;
  384. TABDLY = $0001800;
  385. TAB0 = $0000000;
  386. TAB1 = $0000800;
  387. TAB2 = $0001000;
  388. TAB3 = $0001800;
  389. XTABS = $0001800;
  390. BSDLY = $0002000;
  391. BS0 = $0000000;
  392. BS1 = $0002000;
  393. VTDLY = $0004000;
  394. VT0 = $0000000;
  395. VT1 = $0004000;
  396. FFDLY = $0008000;
  397. FF0 = $0000000;
  398. FF1 = $0008000;
  399. {c_cflag bits}
  400. CBAUD = $000100F;
  401. B0 = $0000000;
  402. B50 = $0000001;
  403. B75 = $0000002;
  404. B110 = $0000003;
  405. B134 = $0000004;
  406. B150 = $0000005;
  407. B200 = $0000006;
  408. B300 = $0000007;
  409. B600 = $0000008;
  410. B1200 = $0000009;
  411. B1800 = $000000A;
  412. B2400 = $000000B;
  413. B4800 = $000000C;
  414. B9600 = $000000D;
  415. B19200 = $000000E;
  416. B38400 = $000000F;
  417. EXTA = B19200;
  418. EXTB = B38400;
  419. CSIZE = $0000030;
  420. CS5 = $0000000;
  421. CS6 = $0000010;
  422. CS7 = $0000020;
  423. CS8 = $0000030;
  424. CSTOPB = $0000040;
  425. CREAD = $0000080;
  426. PARENB = $0000100;
  427. PARODD = $0000200;
  428. HUPCL = $0000400;
  429. CLOCAL = $0000800;
  430. CBAUDEX = $0001000;
  431. B57600 = $0001001;
  432. B115200 = $0001002;
  433. B230400 = $0001003;
  434. B460800 = $0001004;
  435. CIBAUD = $100F0000;
  436. CMSPAR = $40000000;
  437. CRTSCTS = $80000000;
  438. {c_lflag bits}
  439. ISIG = $0000001;
  440. ICANON = $0000002;
  441. XCASE = $0000004;
  442. ECHO = $0000008;
  443. ECHOE = $0000010;
  444. ECHOK = $0000020;
  445. ECHONL = $0000040;
  446. NOFLSH = $0000080;
  447. TOSTOP = $0000100;
  448. ECHOCTL = $0000200;
  449. ECHOPRT = $0000400;
  450. ECHOKE = $0000800;
  451. FLUSHO = $0001000;
  452. PENDIN = $0004000;
  453. IEXTEN = $0008000;
  454. {c_line bits}
  455. TIOCM_LE = $001;
  456. TIOCM_DTR = $002;
  457. TIOCM_RTS = $004;
  458. TIOCM_ST = $008;
  459. TIOCM_SR = $010;
  460. TIOCM_CTS = $020;
  461. TIOCM_CAR = $040;
  462. TIOCM_RNG = $080;
  463. TIOCM_DSR = $100;
  464. TIOCM_CD = TIOCM_CAR;
  465. TIOCM_RI = TIOCM_RNG;
  466. TIOCM_OUT1 = $2000;
  467. TIOCM_OUT2 = $4000;
  468. {TCSetAttr}
  469. TCSANOW = 0;
  470. TCSADRAIN = 1;
  471. TCSAFLUSH = 2;
  472. {TCFlow}
  473. TCOOFF = 0;
  474. TCOON = 1;
  475. TCIOFF = 2;
  476. TCION = 3;
  477. {TCFlush}
  478. TCIFLUSH = 0;
  479. TCOFLUSH = 1;
  480. TCIOFLUSH = 2;
  481. {$endif cpui386}
  482. {$ifdef cpusparc}
  483. TCGETA = $40125401;
  484. TCSETA = $80125402;
  485. TCSETAW = $80125403;
  486. TCSETAF = $80125404;
  487. TCSBRK = $20005405;
  488. TCXONC = $20005406;
  489. TCFLSH = $20005407;
  490. TCGETS = $40245408;
  491. TCSETS = $80245409;
  492. TCSETSW = $8024540a;
  493. TCSETSF = $8024540b;
  494. TIOCGETD = $40047400;
  495. TIOCSETD = $80047401;
  496. TIOCEXCL = $2000740d;
  497. TIOCNXCL = $2000740e;
  498. TIOCCONS = $20007424;
  499. TIOCGSOFTCAR = $40047464;
  500. TIOCSSOFTCAR = $80047465;
  501. TIOCSWINSZ = $80087467;
  502. TIOCGWINSZ = $40087468;
  503. TIOCMGET = $4004746a;
  504. TIOCMBIC = $8004746b;
  505. TIOCMBIS = $8004746c;
  506. TIOCMSET = $8004746d;
  507. TIOCSTART = $2000746e;
  508. TIOCSTOP = $2000746f;
  509. TIOCPKT = $80047470;
  510. TIOCNOTTY = $20007471;
  511. TIOCSTI = $80017472;
  512. TIOCOUTQ = $40047473;
  513. TIOCCBRK = $2000747a;
  514. TIOCSBRK = $2000747b;
  515. TIOCSPGRP = $80047482;
  516. TIOCGPGRP = $40047483;
  517. TIOCSCTTY = $20007484;
  518. TIOCGSID = $40047485;
  519. TIOCGPTN = $40047486;
  520. TIOCSPTLCK = $80047487;
  521. FIOCLEX = $20006601;
  522. FIONCLEX = $20006602;
  523. FIOASYNC = $8004667d;
  524. FIONBIO = $8004667e;
  525. FIONREAD = $4004667f;
  526. TIOCINQ = $4004667f;
  527. TIOCLINUX = $541c;
  528. TIOCGSERIAL = $541e;
  529. TIOCSSERIAL = $541f;
  530. TCSBRKP = $5425;
  531. TIOCTTYGSTRUCT = $5426;
  532. TIOCSERCONFIG = $5453;
  533. TIOCSERGWILD = $5454;
  534. TIOCSERSWILD = $5455;
  535. TIOCGLCKTRMIOS = $5456;
  536. TIOCSLCKTRMIOS = $5457;
  537. TIOCSERGSTRUCT = $5458;
  538. TIOCSERGETLSR = $5459;
  539. TIOCSERGETMULTI = $545a;
  540. TIOCSERSETMULTI = $545b;
  541. TIOCMIWAIT = $545c;
  542. TIOCGICOUNT = $545d;
  543. TIOCPKT_DATA = $0;
  544. TIOCPKT_FLUSHREAD = $1;
  545. TIOCPKT_FLUSHWRITE = $2;
  546. TIOCPKT_STOP = $4;
  547. TIOCPKT_START = $8;
  548. TIOCPKT_NOSTOP = $10;
  549. TIOCPKT_DOSTOP = $20;
  550. {c_cc characters}
  551. VINTR = 0;
  552. VQUIT = 1;
  553. VERASE = 2;
  554. VKILL = 3;
  555. VEOF = 4;
  556. VEOL = 5;
  557. VEOL2 = 6;
  558. VSWTC = 7;
  559. VSTART = 8;
  560. VSTOP = 9;
  561. VSUSP = 10;
  562. VDSUSP = 11;
  563. VREPRINT = 12;
  564. VDISCARD = 13;
  565. VWERASE = 14;
  566. VLNEXT = 15;
  567. VMIN = 4;
  568. VTIME = 5;
  569. {c_iflag bits}
  570. IGNBRK = $0000001;
  571. BRKINT = $0000002;
  572. IGNPAR = $0000004;
  573. PARMRK = $0000008;
  574. INPCK = $0000010;
  575. ISTRIP = $0000020;
  576. INLCR = $0000040;
  577. IGNCR = $0000080;
  578. ICRNL = $0000100;
  579. IUCLC = $0000200;
  580. IXON = $0000400;
  581. IXANY = $0000800;
  582. IXOFF = $0001000;
  583. IMAXBEL = $0002000;
  584. {c_oflag bits}
  585. OPOST = $0000001;
  586. OLCUC = $0000002;
  587. ONLCR = $0000004;
  588. OCRNL = $0000008;
  589. ONOCR = $0000010;
  590. ONLRET = $0000020;
  591. OFILL = $0000040;
  592. OFDEL = $0000080;
  593. NLDLY = $0000100;
  594. NL0 = $0000000;
  595. NL1 = $0000100;
  596. CRDLY = $0000600;
  597. CR0 = $0000000;
  598. CR1 = $0000200;
  599. CR2 = $0000400;
  600. CR3 = $0000600;
  601. TABDLY = $0001800;
  602. TAB0 = $0000000;
  603. TAB1 = $0000800;
  604. TAB2 = $0001000;
  605. TAB3 = $0001800;
  606. XTABS = $0001800;
  607. BSDLY = $0002000;
  608. BS0 = $0000000;
  609. BS1 = $0002000;
  610. VTDLY = $0004000;
  611. VT0 = $0000000;
  612. VT1 = $0004000;
  613. FFDLY = $0008000;
  614. FF0 = $0000000;
  615. FF1 = $0008000;
  616. {c_cflag bits}
  617. CBAUD = $000100F;
  618. B0 = $0000000;
  619. B50 = $0000001;
  620. B75 = $0000002;
  621. B110 = $0000003;
  622. B134 = $0000004;
  623. B150 = $0000005;
  624. B200 = $0000006;
  625. B300 = $0000007;
  626. B600 = $0000008;
  627. B1200 = $0000009;
  628. B1800 = $000000A;
  629. B2400 = $000000B;
  630. B4800 = $000000C;
  631. B9600 = $000000D;
  632. B19200 = $000000E;
  633. B38400 = $000000F;
  634. EXTA = B19200;
  635. EXTB = B38400;
  636. CSIZE = $0000030;
  637. CS5 = $0000000;
  638. CS6 = $0000010;
  639. CS7 = $0000020;
  640. CS8 = $0000030;
  641. CSTOPB = $0000040;
  642. CREAD = $0000080;
  643. PARENB = $0000100;
  644. PARODD = $0000200;
  645. HUPCL = $0000400;
  646. CLOCAL = $0000800;
  647. CBAUDEX = $0001000;
  648. B57600 = $0001001;
  649. B115200 = $0001002;
  650. B230400 = $0001003;
  651. B460800 = $0001004;
  652. CIBAUD = $100F0000;
  653. CMSPAR = $40000000;
  654. CRTSCTS = $80000000;
  655. {c_lflag bits}
  656. ISIG = $0000001;
  657. ICANON = $0000002;
  658. XCASE = $0000004;
  659. ECHO = $0000008;
  660. ECHOE = $0000010;
  661. ECHOK = $0000020;
  662. ECHONL = $0000040;
  663. NOFLSH = $0000080;
  664. TOSTOP = $0000100;
  665. ECHOCTL = $0000200;
  666. ECHOPRT = $0000400;
  667. ECHOKE = $0000800;
  668. FLUSHO = $0001000;
  669. PENDIN = $0004000;
  670. IEXTEN = $0008000;
  671. {c_line bits}
  672. TIOCM_LE = $001;
  673. TIOCM_DTR = $002;
  674. TIOCM_RTS = $004;
  675. TIOCM_ST = $008;
  676. TIOCM_SR = $010;
  677. TIOCM_CTS = $020;
  678. TIOCM_CAR = $040;
  679. TIOCM_RNG = $080;
  680. TIOCM_DSR = $100;
  681. TIOCM_CD = TIOCM_CAR;
  682. TIOCM_RI = TIOCM_RNG;
  683. TIOCM_OUT1 = $2000;
  684. TIOCM_OUT2 = $4000;
  685. {TCSetAttr}
  686. TCSANOW = 0;
  687. TCSADRAIN = 1;
  688. TCSAFLUSH = 2;
  689. {TCFlow}
  690. TCOOFF = 0;
  691. TCOON = 1;
  692. TCIOFF = 2;
  693. TCION = 3;
  694. {TCFlush}
  695. TCIFLUSH = 0;
  696. TCOFLUSH = 1;
  697. TCIOFLUSH = 2;
  698. {$endif cpusparc}
  699. {$ifdef cpux86_64}
  700. TCGETS = $5401;
  701. TCSETS = $5402;
  702. TCSETSW = $5403;
  703. TCSETSF = $5404;
  704. TCGETA = $5405;
  705. TCSETA = $5406;
  706. TCSETAW = $5407;
  707. TCSETAF = $5408;
  708. TCSBRK = $5409;
  709. TCXONC = $540A;
  710. TCFLSH = $540B;
  711. TIOCEXCL = $540C;
  712. TIOCNXCL = $540D;
  713. TIOCSCTTY = $540E;
  714. TIOCGPGRP = $540F;
  715. TIOCSPGRP = $5410;
  716. TIOCOUTQ = $5411;
  717. TIOCSTI = $5412;
  718. TIOCGWINSZ = $5413;
  719. TIOCSWINSZ = $5414;
  720. TIOCMGET = $5415;
  721. TIOCMBIS = $5416;
  722. TIOCMBIC = $5417;
  723. TIOCMSET = $5418;
  724. TIOCGSOFTCAR = $5419;
  725. TIOCSSOFTCAR = $541A;
  726. FIONREAD = $541B;
  727. TIOCINQ = FIONREAD;
  728. TIOCLINUX = $541C;
  729. TIOCCONS = $541D;
  730. TIOCGSERIAL = $541E;
  731. TIOCSSERIAL = $541F;
  732. TIOCPKT = $5420;
  733. FIONBIO = $5421;
  734. TIOCNOTTY = $5422;
  735. TIOCSETD = $5423;
  736. TIOCGETD = $5424;
  737. TCSBRKP = $5425;
  738. TIOCSBRK = $5427;
  739. TIOCCBRK = $5428;
  740. TIOCGSID = $5429;
  741. FIONCLEX = $5450;
  742. FIOCLEX = $5451;
  743. FIOASYNC = $5452;
  744. TIOCSERCONFIG = $5453;
  745. TIOCSERGWILD = $5454;
  746. TIOCSERSWILD = $5455;
  747. TIOCGLCKTRMIOS = $5456;
  748. TIOCSLCKTRMIOS = $5457;
  749. TIOCSERGSTRUCT = $5458;
  750. TIOCSERGETLSR = $5459;
  751. TIOCSERGETMULTI = $545A;
  752. TIOCSERSETMULTI = $545B;
  753. TIOCMIWAIT = $545C;
  754. TIOCGICOUNT = $545D;
  755. TIOCGHAYESESP = $545E;
  756. TIOCSHAYESESP = $545F;
  757. FIOQSIZE = $5460;
  758. TIOCPKT_DATA = 0;
  759. TIOCPKT_FLUSHREAD = 1;
  760. TIOCPKT_FLUSHWRITE = 2;
  761. TIOCPKT_STOP = 4;
  762. TIOCPKT_START = 8;
  763. TIOCPKT_NOSTOP = 16;
  764. TIOCPKT_DOSTOP = 32;
  765. TIOCSER_TEMT = $01;
  766. {c_cc characters}
  767. VINTR = 0;
  768. VQUIT = 1;
  769. VERASE = 2;
  770. VKILL = 3;
  771. VEOF = 4;
  772. VTIME = 5;
  773. VMIN = 6;
  774. VSWTC = 7;
  775. VSTART = 8;
  776. VSTOP = 9;
  777. VSUSP = 10;
  778. VEOL = 11;
  779. VREPRINT = 12;
  780. VDISCARD = 13;
  781. VWERASE = 14;
  782. VLNEXT = 15;
  783. VEOL2 = 16;
  784. {c_iflag bits}
  785. IGNBRK = $0000001;
  786. BRKINT = $0000002;
  787. IGNPAR = $0000004;
  788. PARMRK = $0000008;
  789. INPCK = $0000010;
  790. ISTRIP = $0000020;
  791. INLCR = $0000040;
  792. IGNCR = $0000080;
  793. ICRNL = $0000100;
  794. IUCLC = $0000200;
  795. IXON = $0000400;
  796. IXANY = $0000800;
  797. IXOFF = $0001000;
  798. IMAXBEL = $0002000;
  799. {c_oflag bits}
  800. OPOST = $0000001;
  801. OLCUC = $0000002;
  802. ONLCR = $0000004;
  803. OCRNL = $0000008;
  804. ONOCR = $0000010;
  805. ONLRET = $0000020;
  806. OFILL = $0000040;
  807. OFDEL = $0000080;
  808. NLDLY = $0000100;
  809. NL0 = $0000000;
  810. NL1 = $0000100;
  811. CRDLY = $0000600;
  812. CR0 = $0000000;
  813. CR1 = $0000200;
  814. CR2 = $0000400;
  815. CR3 = $0000600;
  816. TABDLY = $0001800;
  817. TAB0 = $0000000;
  818. TAB1 = $0000800;
  819. TAB2 = $0001000;
  820. TAB3 = $0001800;
  821. XTABS = $0001800;
  822. BSDLY = $0002000;
  823. BS0 = $0000000;
  824. BS1 = $0002000;
  825. VTDLY = $0004000;
  826. VT0 = $0000000;
  827. VT1 = $0004000;
  828. FFDLY = $0008000;
  829. FF0 = $0000000;
  830. FF1 = $0008000;
  831. {c_cflag bits}
  832. CBAUD = $000100F;
  833. B0 = $0000000;
  834. B50 = $0000001;
  835. B75 = $0000002;
  836. B110 = $0000003;
  837. B134 = $0000004;
  838. B150 = $0000005;
  839. B200 = $0000006;
  840. B300 = $0000007;
  841. B600 = $0000008;
  842. B1200 = $0000009;
  843. B1800 = $000000A;
  844. B2400 = $000000B;
  845. B4800 = $000000C;
  846. B9600 = $000000D;
  847. B19200 = $000000E;
  848. B38400 = $000000F;
  849. EXTA = B19200;
  850. EXTB = B38400;
  851. CSIZE = $0000030;
  852. CS5 = $0000000;
  853. CS6 = $0000010;
  854. CS7 = $0000020;
  855. CS8 = $0000030;
  856. CSTOPB = $0000040;
  857. CREAD = $0000080;
  858. PARENB = $0000100;
  859. PARODD = $0000200;
  860. HUPCL = $0000400;
  861. CLOCAL = $0000800;
  862. CBAUDEX = $0001000;
  863. B57600 = $0001001;
  864. B115200 = $0001002;
  865. B230400 = $0001003;
  866. B460800 = $0001004;
  867. CIBAUD = $100F0000;
  868. CMSPAR = $40000000;
  869. CRTSCTS = $80000000;
  870. {c_lflag bits}
  871. ISIG = $0000001;
  872. ICANON = $0000002;
  873. XCASE = $0000004;
  874. ECHO = $0000008;
  875. ECHOE = $0000010;
  876. ECHOK = $0000020;
  877. ECHONL = $0000040;
  878. NOFLSH = $0000080;
  879. TOSTOP = $0000100;
  880. ECHOCTL = $0000200;
  881. ECHOPRT = $0000400;
  882. ECHOKE = $0000800;
  883. FLUSHO = $0001000;
  884. PENDIN = $0004000;
  885. IEXTEN = $0008000;
  886. {c_line bits}
  887. TIOCM_LE = $001;
  888. TIOCM_DTR = $002;
  889. TIOCM_RTS = $004;
  890. TIOCM_ST = $008;
  891. TIOCM_SR = $010;
  892. TIOCM_CTS = $020;
  893. TIOCM_CAR = $040;
  894. TIOCM_RNG = $080;
  895. TIOCM_DSR = $100;
  896. TIOCM_CD = TIOCM_CAR;
  897. TIOCM_RI = TIOCM_RNG;
  898. TIOCM_OUT1 = $2000;
  899. TIOCM_OUT2 = $4000;
  900. {TCSetAttr}
  901. TCSANOW = 0;
  902. TCSADRAIN = 1;
  903. TCSAFLUSH = 2;
  904. {TCFlow}
  905. TCOOFF = 0;
  906. TCOON = 1;
  907. TCIOFF = 2;
  908. TCION = 3;
  909. {TCFlush}
  910. TCIFLUSH = 0;
  911. TCOFLUSH = 1;
  912. TCIOFLUSH = 2;
  913. {$endif cpux86_64}
  914. {$ifdef cpuarm}
  915. { For Terminal handling }
  916. TCGETS = $5401;
  917. TCSETS = $5402;
  918. TCSETSW = $5403;
  919. TCSETSF = $5404;
  920. TCGETA = $5405;
  921. TCSETA = $5406;
  922. TCSETAW = $5407;
  923. TCSETAF = $5408;
  924. TCSBRK = $5409;
  925. TCXONC = $540A;
  926. TCFLSH = $540B;
  927. TIOCEXCL = $540C;
  928. TIOCNXCL = $540D;
  929. TIOCSCTTY = $540E;
  930. TIOCGPGRP = $540F;
  931. TIOCSPGRP = $5410;
  932. TIOCOUTQ = $5411;
  933. TIOCSTI = $5412;
  934. TIOCGWINSZ = $5413;
  935. TIOCSWINSZ = $5414;
  936. TIOCMGET = $5415;
  937. TIOCMBIS = $5416;
  938. TIOCMBIC = $5417;
  939. TIOCMSET = $5418;
  940. TIOCGSOFTCAR = $5419;
  941. TIOCSSOFTCAR = $541A;
  942. FIONREAD = $541B;
  943. TIOCINQ = FIONREAD;
  944. TIOCLINUX = $541C;
  945. TIOCCONS = $541D;
  946. TIOCGSERIAL = $541E;
  947. TIOCSSERIAL = $541F;
  948. TIOCPKT = $5420;
  949. FIONBIO = $5421;
  950. TIOCNOTTY = $5422;
  951. TIOCSETD = $5423;
  952. TIOCGETD = $5424;
  953. TCSBRKP = $5425;
  954. TIOCTTYGSTRUCT = $5426;
  955. FIONCLEX = $5450;
  956. FIOCLEX = $5451;
  957. FIOASYNC = $5452;
  958. TIOCSERCONFIG = $5453;
  959. TIOCSERGWILD = $5454;
  960. TIOCSERSWILD = $5455;
  961. TIOCGLCKTRMIOS = $5456;
  962. TIOCSLCKTRMIOS = $5457;
  963. TIOCSERGSTRUCT = $5458;
  964. TIOCSERGETLSR = $5459;
  965. TIOCSERGETMULTI = $545A;
  966. TIOCSERSETMULTI = $545B;
  967. TIOCMIWAIT = $545C;
  968. TIOCGICOUNT = $545D;
  969. FIOQSIZE = $545E;
  970. TIOCPKT_DATA = 0;
  971. TIOCPKT_FLUSHREAD = 1;
  972. TIOCPKT_FLUSHWRITE = 2;
  973. TIOCPKT_STOP = 4;
  974. TIOCPKT_START = 8;
  975. TIOCPKT_NOSTOP = 16;
  976. TIOCPKT_DOSTOP = 32;
  977. {c_cc characters}
  978. VINTR = 0;
  979. VQUIT = 1;
  980. VERASE = 2;
  981. VKILL = 3;
  982. VEOF = 4;
  983. VTIME = 5;
  984. VMIN = 6;
  985. VSWTC = 7;
  986. VSTART = 8;
  987. VSTOP = 9;
  988. VSUSP = 10;
  989. VEOL = 11;
  990. VREPRINT = 12;
  991. VDISCARD = 13;
  992. VWERASE = 14;
  993. VLNEXT = 15;
  994. VEOL2 = 16;
  995. {c_iflag bits}
  996. IGNBRK = $0000001;
  997. BRKINT = $0000002;
  998. IGNPAR = $0000004;
  999. PARMRK = $0000008;
  1000. INPCK = $0000010;
  1001. ISTRIP = $0000020;
  1002. INLCR = $0000040;
  1003. IGNCR = $0000080;
  1004. ICRNL = $0000100;
  1005. IUCLC = $0000200;
  1006. IXON = $0000400;
  1007. IXANY = $0000800;
  1008. IXOFF = $0001000;
  1009. IMAXBEL = $0002000;
  1010. {c_oflag bits}
  1011. OPOST = $0000001;
  1012. OLCUC = $0000002;
  1013. ONLCR = $0000004;
  1014. OCRNL = $0000008;
  1015. ONOCR = $0000010;
  1016. ONLRET = $0000020;
  1017. OFILL = $0000040;
  1018. OFDEL = $0000080;
  1019. NLDLY = $0000100;
  1020. NL0 = $0000000;
  1021. NL1 = $0000100;
  1022. CRDLY = $0000600;
  1023. CR0 = $0000000;
  1024. CR1 = $0000200;
  1025. CR2 = $0000400;
  1026. CR3 = $0000600;
  1027. TABDLY = $0001800;
  1028. TAB0 = $0000000;
  1029. TAB1 = $0000800;
  1030. TAB2 = $0001000;
  1031. TAB3 = $0001800;
  1032. XTABS = $0001800;
  1033. BSDLY = $0002000;
  1034. BS0 = $0000000;
  1035. BS1 = $0002000;
  1036. VTDLY = $0004000;
  1037. VT0 = $0000000;
  1038. VT1 = $0004000;
  1039. FFDLY = $0008000;
  1040. FF0 = $0000000;
  1041. FF1 = $0008000;
  1042. {c_cflag bits}
  1043. CBAUD = $000100F;
  1044. B0 = $0000000;
  1045. B50 = $0000001;
  1046. B75 = $0000002;
  1047. B110 = $0000003;
  1048. B134 = $0000004;
  1049. B150 = $0000005;
  1050. B200 = $0000006;
  1051. B300 = $0000007;
  1052. B600 = $0000008;
  1053. B1200 = $0000009;
  1054. B1800 = $000000A;
  1055. B2400 = $000000B;
  1056. B4800 = $000000C;
  1057. B9600 = $000000D;
  1058. B19200 = $000000E;
  1059. B38400 = $000000F;
  1060. EXTA = B19200;
  1061. EXTB = B38400;
  1062. CSIZE = $0000030;
  1063. CS5 = $0000000;
  1064. CS6 = $0000010;
  1065. CS7 = $0000020;
  1066. CS8 = $0000030;
  1067. CSTOPB = $0000040;
  1068. CREAD = $0000080;
  1069. PARENB = $0000100;
  1070. PARODD = $0000200;
  1071. HUPCL = $0000400;
  1072. CLOCAL = $0000800;
  1073. CBAUDEX = $0001000;
  1074. B57600 = $0001001;
  1075. B115200 = $0001002;
  1076. B230400 = $0001003;
  1077. B460800 = $0001004;
  1078. CIBAUD = $100F0000;
  1079. CMSPAR = $40000000;
  1080. CRTSCTS = $80000000;
  1081. {c_lflag bits}
  1082. ISIG = $0000001;
  1083. ICANON = $0000002;
  1084. XCASE = $0000004;
  1085. ECHO = $0000008;
  1086. ECHOE = $0000010;
  1087. ECHOK = $0000020;
  1088. ECHONL = $0000040;
  1089. NOFLSH = $0000080;
  1090. TOSTOP = $0000100;
  1091. ECHOCTL = $0000200;
  1092. ECHOPRT = $0000400;
  1093. ECHOKE = $0000800;
  1094. FLUSHO = $0001000;
  1095. PENDIN = $0004000;
  1096. IEXTEN = $0008000;
  1097. {c_line bits}
  1098. TIOCM_LE = $001;
  1099. TIOCM_DTR = $002;
  1100. TIOCM_RTS = $004;
  1101. TIOCM_ST = $008;
  1102. TIOCM_SR = $010;
  1103. TIOCM_CTS = $020;
  1104. TIOCM_CAR = $040;
  1105. TIOCM_RNG = $080;
  1106. TIOCM_DSR = $100;
  1107. TIOCM_CD = TIOCM_CAR;
  1108. TIOCM_RI = TIOCM_RNG;
  1109. TIOCM_OUT1 = $2000;
  1110. TIOCM_OUT2 = $4000;
  1111. {TCSetAttr}
  1112. TCSANOW = 0;
  1113. TCSADRAIN = 1;
  1114. TCSAFLUSH = 2;
  1115. {TCFlow}
  1116. TCOOFF = 0;
  1117. TCOON = 1;
  1118. TCIOFF = 2;
  1119. TCION = 3;
  1120. {TCFlush}
  1121. TCIFLUSH = 0;
  1122. TCOFLUSH = 1;
  1123. TCIOFLUSH = 2;
  1124. {$endif cpuarm}
  1125. Type
  1126. winsize = packed record
  1127. ws_row,
  1128. ws_col,
  1129. ws_xpixel,
  1130. ws_ypixel : word;
  1131. end;
  1132. TWinSize=winsize;
  1133. {$PACKRECORDS C}
  1134. Termios = record
  1135. c_iflag,
  1136. c_oflag,
  1137. c_cflag,
  1138. c_lflag : cardinal;
  1139. c_line : char;
  1140. c_cc : array[0..NCCS-1] of byte;
  1141. c_ispeed,
  1142. c_ospeed : cardinal;
  1143. end;
  1144. TTermios=Termios;
  1145. {$PACKRECORDS Default}