2
0

Termios.txt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. MODULE LinTermios ["libc.so.6"];
  2. (*
  3. A. V. Shiryaev, 2012.11
  4. GNU/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; (* {0} *)
  29. BRKINT* = 2; (* {1} *)
  30. IGNPAR* = 4; (* {2} *)
  31. PARMRK* = 8; (* {3} *)
  32. INPCK* = 16; (* {4} *)
  33. ISTRIP* = 32; (* {5} *)
  34. INLCR* = 64; (* {6} *)
  35. IGNCR* = 128; (* {7} *)
  36. ICRNL* = 256; (* {8} *)
  37. IUCLC* = 512; (* {9} *)
  38. IXON* = 1024; (* {10} *)
  39. IXANY* = 2048; (* {11} *)
  40. IXOFF* = 4096; (* {12} *)
  41. IMAXBEL* = 8192; (* {13} *)
  42. IUTF8* = 16384; (* {14} *)
  43. OPOST* = 1; (* {0} *)
  44. OLCUC* = 2; (* {1} *)
  45. ONLCR* = 4; (* {2} *)
  46. OCRNL* = 8; (* {3} *)
  47. ONOCR* = 16; (* {4} *)
  48. ONLRET* = 32; (* {5} *)
  49. OFILL* = 64; (* {6} *)
  50. OFDEL* = 128; (* {7} *)
  51. VTDLY* = 16384; (* {14} *)
  52. VT0* = 0; (* {} *)
  53. VT1* = 16384; (* {14} *)
  54. B0* = 0; (* {} *) (* hang up *)
  55. B50* = 1; (* {0} *)
  56. B75* = 2; (* {1} *)
  57. B110* = 3; (* {0,1} *)
  58. B134* = 4; (* {2} *)
  59. B150* = 5; (* {0,2} *)
  60. B200* = 6; (* {1,2} *)
  61. B300* = 7; (* {0..2} *)
  62. B600* = 8; (* {3} *)
  63. B1200* = 9; (* {0,3} *)
  64. B1800* = 10; (* {1,3} *)
  65. B2400* = 11; (* {0,1,3} *)
  66. B4800* = 12; (* {2,3} *)
  67. B9600* = 13; (* {0,2,3} *)
  68. B19200* = 14; (* {1..3} *)
  69. B38400* = 15; (* {0..3} *)
  70. CSIZE* = 48; (* {4,5} *)
  71. CS5* = 0; (* {} *)
  72. CS6* = 16; (* {4} *)
  73. CS7* = 32; (* {5} *)
  74. CS8* = 48; (* {4,5} *)
  75. CSTOPB* = 64; (* {6} *)
  76. CREAD* = 128; (* {7} *)
  77. PARENB* = 256; (* {8} *)
  78. PARODD* = 512; (* {9} *)
  79. HUPCL* = 1024; (* {10} *)
  80. CLOCAL* = 2048; (* {11} *)
  81. B57600* = 4097; (* {0,12} *)
  82. B115200* = 4098; (* {1,12} *)
  83. B230400* = 4099; (* {0,1,12} *)
  84. B460800* = 4100; (* {2,12} *)
  85. B500000* = 4101; (* {0,2,12} *)
  86. B576000* = 4102; (* {1,2,12} *)
  87. B921600* = 4103; (* {0..2,12} *)
  88. B1000000* = 4104; (* {3,12} *)
  89. B1152000* = 4105; (* {0,3,12} *)
  90. B1500000* = 4106; (* {1,3,12} *)
  91. B2000000* = 4107; (* {0,1,3,12} *)
  92. B2500000* = 4108; (* {2,3,12} *)
  93. B3000000* = 4109; (* {0,2,3,12} *)
  94. B3500000* = 4110; (* {1..3,12} *)
  95. B4000000* = 4111; (* {0..3,12} *)
  96. __MAX_BAUD* = B4000000;
  97. ISIG* = 1; (* {0} *)
  98. ICANON* = 2; (* {1} *)
  99. ECHO* = 8; (* {3} *)
  100. ECHOE* = 16; (* {4} *)
  101. ECHOK* = 32; (* {5} *)
  102. ECHONL* = 64; (* {6} *)
  103. NOFLSH* = 128; (* {7} *)
  104. TOSTOP* = 256; (* {8} *)
  105. IEXTEN* = 32768; (* {15} *)
  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.