Termios.txt 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. MODULE LinTermios ["libc.so.6"];
  2. (*
  3. A. V. Shiryaev, 2012.11
  4. Linux
  5. i386
  6. *)
  7. CONST
  8. NCCS* = 32;
  9. _HAVE_STRUCT_TERMIOS_C_ISPEED* = 1;
  10. _HAVE_STRUCT_TERMIOS_C_OSPEED* = 1;
  11. VINTR* = 0;
  12. VQUIT* = 1;
  13. VERASE* = 2;
  14. VKILL* = 3;
  15. VEOF* = 4;
  16. VTIME* = 5;
  17. VMIN* = 6;
  18. VSWTC* = 7;
  19. VSTART* = 8;
  20. VSTOP* = 9;
  21. VSUSP* = 10;
  22. VEOL* = 11;
  23. VREPRINT* = 12;
  24. VDISCARD* = 13;
  25. VWERASE* = 14;
  26. VLNEXT* = 15;
  27. VEOL2* = 16;
  28. IGNBRK* = 1;
  29. BRKINT* = 2;
  30. IGNPAR* = 4;
  31. PARMRK* = 8;
  32. INPCK* = 16;
  33. ISTRIP* = 32;
  34. INLCR* = 64;
  35. IGNCR* = 128;
  36. ICRNL* = 256;
  37. IUCLC* = 512;
  38. IXON* = 1024;
  39. IXANY* = 2048;
  40. IXOFF* = 4096;
  41. IMAXBEL* = 8192;
  42. IUTF8* = 16384;
  43. OPOST* = 1;
  44. OLCUC* = 2;
  45. ONLCR* = 4;
  46. OCRNL* = 8;
  47. ONOCR* = 16;
  48. ONLRET* = 32;
  49. OFILL* = 64;
  50. OFDEL* = 128;
  51. VTDLY* = 16384;
  52. VT0* = 0;
  53. VT1* = 16384;
  54. B0* = 0; (* hang up *)
  55. B50* = 1;
  56. B75* = 2;
  57. B110* = 3;
  58. B134* = 4;
  59. B150* = 5;
  60. B200* = 6;
  61. B300* = 7;
  62. B600* = 8;
  63. B1200* = 9;
  64. B1800* = 10;
  65. B2400* = 11;
  66. B4800* = 12;
  67. B9600* = 13;
  68. B19200* = 14;
  69. B38400* = 15;
  70. CSIZE* = 48;
  71. CS5* = 0;
  72. CS6* = 16;
  73. CS7* = 32;
  74. CS8* = 48;
  75. CSTOPB* = 64;
  76. CREAD* = 128;
  77. PARENB* = 256;
  78. PARODD* = 512;
  79. HUPCL* = 1024;
  80. CLOCAL* = 2048;
  81. B57600* = 4097;
  82. B115200* = 4098;
  83. B230400* = 4099;
  84. B460800* = 4100;
  85. B500000* = 4101;
  86. B576000* = 4102;
  87. B921600* = 4103;
  88. B1000000* = 4104;
  89. B1152000* = 4105;
  90. B1500000* = 4106;
  91. B2000000* = 4107;
  92. B2500000* = 4108;
  93. B3000000* = 4109;
  94. B3500000* = 4110;
  95. B4000000* = 4111;
  96. __MAX_BAUD* = B4000000;
  97. ISIG* = 1;
  98. ICANON* = 2;
  99. ECHO* = 8;
  100. ECHOE* = 16;
  101. ECHOK* = 32;
  102. ECHONL* = 64;
  103. NOFLSH* = 128;
  104. TOSTOP* = 256;
  105. IEXTEN* = 32768;
  106. TCOOFF* = 0;
  107. TCOON* = 1;
  108. TCIOFF* = 2;
  109. TCION* = 3;
  110. TCIFLUSH* = 0;
  111. TCOFLUSH* = 1;
  112. TCIOFLUSH* = 2;
  113. TCSANOW* = 0;
  114. TCSADRAIN* = 1;
  115. TCSAFLUSH* = 2;
  116. TYPE
  117. tcflag_t* = INTEGER; (* unsigned int *)
  118. cc_t* = SHORTCHAR; (* unsigned char *)
  119. speed_t* = INTEGER; (* unsigned int *)
  120. termios* = RECORD [untagged]
  121. c_iflag*: tcflag_t; (* input mode flags *)
  122. c_oflag*: tcflag_t; (* output mode flags *)
  123. c_cflag*: tcflag_t; (* control mode flags *)
  124. c_lflag*: tcflag_t; (* local mode flags *)
  125. c_line*: cc_t; (* line discipline *)
  126. cc_c*: ARRAY [untagged] NCCS OF cc_t; (* control chars *)
  127. c_ispeed*: INTEGER; (* input speed *)
  128. c_ospeed*: INTEGER; (* output speed *)
  129. END;
  130. (* POSIX.1 *)
  131. PROCEDURE [ccall] cfgetispeed* (VAR tp: termios): speed_t;
  132. PROCEDURE [ccall] cfsetispeed* (VAR tp: termios; ispeed: speed_t): INTEGER;
  133. PROCEDURE [ccall] cfgetospeed* (VAR tp: termios): speed_t;
  134. PROCEDURE [ccall] cfsetospeed* (VAR tp: termios; ospeed: speed_t): INTEGER;
  135. PROCEDURE [ccall] tcgetattr* (fd: INTEGER; VAR tp: termios): INTEGER;
  136. PROCEDURE [ccall] tcsetattr* (fd: INTEGER; action: INTEGER; VAR tp: termios): INTEGER;
  137. PROCEDURE [ccall] tcdrain* (fd: INTEGER): INTEGER;
  138. PROCEDURE [ccall] tcflow* (fd: INTEGER; action: INTEGER): INTEGER;
  139. PROCEDURE [ccall] tcflush* (fd: INTEGER; action: INTEGER): INTEGER;
  140. PROCEDURE [ccall] tcsendbreak* (fd: INTEGER; len: INTEGER): INTEGER;
  141. END LinTermios.