Browse Source

* Terminal stuff of Linux moved to separate file. I think it is too
much to do with ifdefs.

marco 25 năm trước cách đây
mục cha
commit
fb8c4a8b28
2 tập tin đã thay đổi với 274 bổ sung263 xóa
  1. 268 0
      rtl/linux/termios.inc
  2. 6 263
      rtl/unix/linux.pp

+ 268 - 0
rtl/linux/termios.inc

@@ -0,0 +1,268 @@
+{********************
+   IOCtl(TermIOS)
+********************}
+
+Const
+  { Amount of Control Chars }
+  NCCS = 19;
+  NCC = 8;
+
+{$Ifndef BSD}
+  { For Terminal handling }
+  TCGETS          = $5401;
+  TCSETS          = $5402;
+  TCSETSW         = $5403;
+  TCSETSF         = $5404;
+  TCGETA          = $5405;
+  TCSETA          = $5406;
+  TCSETAW         = $5407;
+  TCSETAF         = $5408;
+  TCSBRK          = $5409;
+  TCXONC          = $540A;
+  TCFLSH          = $540B;
+  TIOCEXCL        = $540C;
+  TIOCNXCL        = $540D;
+  TIOCSCTTY       = $540E;
+  TIOCGPGRP       = $540F;
+  TIOCSPGRP       = $5410;
+  TIOCOUTQ        = $5411;
+  TIOCSTI         = $5412;
+  TIOCGWINSZ      = $5413;
+  TIOCSWINSZ      = $5414;
+  TIOCMGET        = $5415;
+  TIOCMBIS        = $5416;
+  TIOCMBIC        = $5417;
+  TIOCMSET        = $5418;
+  TIOCGSOFTCAR    = $5419;
+  TIOCSSOFTCAR    = $541A;
+  FIONREAD        = $541B;
+  TIOCINQ         = FIONREAD;
+  TIOCLINUX       = $541C;
+  TIOCCONS        = $541D;
+  TIOCGSERIAL     = $541E;
+  TIOCSSERIAL     = $541F;
+  TIOCPKT         = $5420;
+  FIONBIO         = $5421;
+  TIOCNOTTY       = $5422;
+  TIOCSETD        = $5423;
+  TIOCGETD        = $5424;
+  TCSBRKP         = $5425;
+  TIOCTTYGSTRUCT  = $5426;
+  FIONCLEX        = $5450;
+  FIOCLEX         = $5451;
+  FIOASYNC        = $5452;
+  TIOCSERCONFIG   = $5453;
+  TIOCSERGWILD    = $5454;
+  TIOCSERSWILD    = $5455;
+  TIOCGLCKTRMIOS  = $5456;
+  TIOCSLCKTRMIOS  = $5457;
+  TIOCSERGSTRUCT  = $5458;
+  TIOCSERGETLSR   = $5459;
+  TIOCSERGETMULTI = $545A;
+  TIOCSERSETMULTI = $545B;
+
+  TIOCMIWAIT      = $545C;
+  TIOCGICOUNT     = $545D;
+  TIOCPKT_DATA       = 0;
+  TIOCPKT_FLUSHREAD  = 1;
+  TIOCPKT_FLUSHWRITE = 2;
+  TIOCPKT_STOP       = 4;
+  TIOCPKT_START      = 8;
+  TIOCPKT_NOSTOP     = 16;
+  TIOCPKT_DOSTOP     = 32;
+{$else}
+
+{$endif}
+Type
+  winsize = packed record
+    ws_row,
+    ws_col,
+    ws_xpixel,
+    ws_ypixel : word;
+  end;
+  TWinSize=winsize;
+
+  Termio = packed record
+    c_iflag,                             { input mode flags }
+    c_oflag,                             { output mode flags }
+    c_cflag,                             { control mode flags }
+    c_lflag  : Word;                    { local mode flags }
+    c_line   : Word;                    { line discipline - careful, only High byte in use}
+    c_cc     : array [0..NCC-1] of char;{ control characters }
+  end;
+  TTermio=Termio;
+
+  Termios = packed record
+    c_iflag,
+    c_oflag,
+    c_cflag,
+    c_lflag  : longint;
+    c_line   : char;
+    c_cc     : array[0..NCCS-1] of byte;
+   {$IFDEF BSD}
+    c_ispeed,
+    c_ospeed : longint; 
+   {$endif}
+  end;
+  TTermios=Termios;
+
+const
+  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);
+
+const
+{c_cc characters}
+   VINTR    = 0;
+   VQUIT    = 1;
+   VERASE   = 2;
+   VKILL    = 3;
+   VEOF     = 4;
+   VTIME    = 5;
+   VMIN     = 6;
+   VSWTC    = 7;
+   VSTART   = 8;
+   VSTOP    = 9;
+   VSUSP    = 10;
+   VEOL     = 11;
+   VREPRINT = 12;
+   VDISCARD = 13;
+   VWERASE  = 14;
+   VLNEXT   = 15;
+   VEOL2    = 16;
+
+{c_iflag bits}
+   IGNBRK  = $0000001;
+   BRKINT  = $0000002;
+   IGNPAR  = $0000004;
+   PARMRK  = $0000008;
+   INPCK   = $0000010;
+   ISTRIP  = $0000020;
+   INLCR   = $0000040;
+   IGNCR   = $0000080;
+   ICRNL   = $0000100;
+   IUCLC   = $0000200;
+   IXON    = $0000400;
+   IXANY   = $0000800;
+   IXOFF   = $0001000;
+   IMAXBEL = $0002000;
+
+{c_oflag bits}
+   OPOST  = $0000001;
+   OLCUC  = $0000002;
+   ONLCR  = $0000004;
+   OCRNL  = $0000008;
+   ONOCR  = $0000010;
+   ONLRET = $0000020;
+   OFILL  = $0000040;
+   OFDEL  = $0000080;
+   NLDLY  = $0000100;
+     NL0  = $0000000;
+     NL1  = $0000100;
+   CRDLY  = $0000600;
+     CR0  = $0000000;
+     CR1  = $0000200;
+     CR2  = $0000400;
+     CR3  = $0000600;
+   TABDLY = $0001800;
+     TAB0 = $0000000;
+     TAB1 = $0000800;
+     TAB2 = $0001000;
+     TAB3 = $0001800;
+    XTABS = $0001800;
+   BSDLY  = $0002000;
+     BS0  = $0000000;
+     BS1  = $0002000;
+   VTDLY  = $0004000;
+     VT0  = $0000000;
+     VT1  = $0004000;
+   FFDLY  = $0008000;
+     FF0  = $0000000;
+     FF1  = $0008000;
+
+{c_cflag bits}
+   CBAUD   = $000100F;
+   B0      = $0000000;
+   B50     = $0000001;
+   B75     = $0000002;
+   B110    = $0000003;
+   B134    = $0000004;
+   B150    = $0000005;
+   B200    = $0000006;
+   B300    = $0000007;
+   B600    = $0000008;
+   B1200   = $0000009;
+   B1800   = $000000A;
+   B2400   = $000000B;
+   B4800   = $000000C;
+   B9600   = $000000D;
+   B19200  = $000000E;
+   B38400  = $000000F;
+   EXTA    = B19200;
+   EXTB    = B38400;
+   CSIZE   = $0000030;
+     CS5   = $0000000;
+     CS6   = $0000010;
+     CS7   = $0000020;
+     CS8   = $0000030;
+   CSTOPB  = $0000040;
+   CREAD   = $0000080;
+   PARENB  = $0000100;
+   PARODD  = $0000200;
+   HUPCL   = $0000400;
+   CLOCAL  = $0000800;
+   CBAUDEX = $0001000;
+   B57600  = $0001001;
+   B115200 = $0001002;
+   B230400 = $0001003;
+   B460800 = $0001004;
+   CIBAUD  = $100F0000;
+   CMSPAR  = $40000000;
+   CRTSCTS = $80000000;
+
+{c_lflag bits}
+   ISIG    = $0000001;
+   ICANON  = $0000002;
+   XCASE   = $0000004;
+   ECHO    = $0000008;
+   ECHOE   = $0000010;
+   ECHOK   = $0000020;
+   ECHONL  = $0000040;
+   NOFLSH  = $0000080;
+   TOSTOP  = $0000100;
+   ECHOCTL = $0000200;
+   ECHOPRT = $0000400;
+   ECHOKE  = $0000800;
+   FLUSHO  = $0001000;
+   PENDIN  = $0004000;
+   IEXTEN  = $0008000;
+
+{c_line bits}
+   TIOCM_LE   = $001;
+   TIOCM_DTR  = $002;
+   TIOCM_RTS  = $004;
+   TIOCM_ST   = $008;
+   TIOCM_SR   = $010;
+   TIOCM_CTS  = $020;
+   TIOCM_CAR  = $040;
+   TIOCM_RNG  = $080;
+   TIOCM_DSR  = $100;
+   TIOCM_CD   = TIOCM_CAR;
+   TIOCM_RI   = TIOCM_RNG;
+   TIOCM_OUT1 = $2000;
+   TIOCM_OUT2 = $4000;
+
+{TCSetAttr}
+   TCSANOW   = 0;
+   TCSADRAIN = 1;
+   TCSAFLUSH = 2;
+
+{TCFlow}
+   TCOOFF = 0;
+   TCOON  = 1;
+   TCIOFF = 2;
+   TCION  = 3;
+
+{TCFlush}
+   TCIFLUSH  = 0;
+   TCOFLUSH  = 1;
+   TCIOFLUSH = 2;
+

+ 6 - 263
rtl/unix/linux.pp

@@ -104,268 +104,7 @@ const
   F_GetOwn = 8;
   F_SetOwn = 9;
 
-{********************
-   IOCtl(TermIOS)
-********************}
-
-Const
-  { Amount of Control Chars }
-  NCCS = 19;
-  NCC = 8;
-
-  { For Terminal handling }
-  TCGETS          = $5401;
-  TCSETS          = $5402;
-  TCSETSW         = $5403;
-  TCSETSF         = $5404;
-  TCGETA          = $5405;
-  TCSETA          = $5406;
-  TCSETAW         = $5407;
-  TCSETAF         = $5408;
-  TCSBRK          = $5409;
-  TCXONC          = $540A;
-  TCFLSH          = $540B;
-  TIOCEXCL        = $540C;
-  TIOCNXCL        = $540D;
-  TIOCSCTTY       = $540E;
-  TIOCGPGRP       = $540F;
-  TIOCSPGRP       = $5410;
-  TIOCOUTQ        = $5411;
-  TIOCSTI         = $5412;
-  TIOCGWINSZ      = $5413;
-  TIOCSWINSZ      = $5414;
-  TIOCMGET        = $5415;
-  TIOCMBIS        = $5416;
-  TIOCMBIC        = $5417;
-  TIOCMSET        = $5418;
-  TIOCGSOFTCAR    = $5419;
-  TIOCSSOFTCAR    = $541A;
-  FIONREAD        = $541B;
-  TIOCINQ         = FIONREAD;
-  TIOCLINUX       = $541C;
-  TIOCCONS        = $541D;
-  TIOCGSERIAL     = $541E;
-  TIOCSSERIAL     = $541F;
-  TIOCPKT         = $5420;
-  FIONBIO         = $5421;
-  TIOCNOTTY       = $5422;
-  TIOCSETD        = $5423;
-  TIOCGETD        = $5424;
-  TCSBRKP         = $5425;
-  TIOCTTYGSTRUCT  = $5426;
-  FIONCLEX        = $5450;
-  FIOCLEX         = $5451;
-  FIOASYNC        = $5452;
-  TIOCSERCONFIG   = $5453;
-  TIOCSERGWILD    = $5454;
-  TIOCSERSWILD    = $5455;
-  TIOCGLCKTRMIOS  = $5456;
-  TIOCSLCKTRMIOS  = $5457;
-  TIOCSERGSTRUCT  = $5458;
-  TIOCSERGETLSR   = $5459;
-  TIOCSERGETMULTI = $545A;
-  TIOCSERSETMULTI = $545B;
-
-  TIOCMIWAIT      = $545C;
-  TIOCGICOUNT     = $545D;
-  TIOCPKT_DATA       = 0;
-  TIOCPKT_FLUSHREAD  = 1;
-  TIOCPKT_FLUSHWRITE = 2;
-  TIOCPKT_STOP       = 4;
-  TIOCPKT_START      = 8;
-  TIOCPKT_NOSTOP     = 16;
-  TIOCPKT_DOSTOP     = 32;
-
-
-Type
-  winsize = packed record
-    ws_row,
-    ws_col,
-    ws_xpixel,
-    ws_ypixel : word;
-  end;
-  TWinSize=winsize;
-
-  Termio = packed record
-    c_iflag,                             { input mode flags }
-    c_oflag,                             { output mode flags }
-    c_cflag,                             { control mode flags }
-    c_lflag  : Word;                    { local mode flags }
-    c_line   : Word;                    { line discipline - careful, only High byte in use}
-    c_cc     : array [0..NCC-1] of char;{ control characters }
-  end;
-  TTermio=Termio;
-
-  Termios = packed record
-    c_iflag,
-    c_oflag,
-    c_cflag,
-    c_lflag  : longint;
-    c_line   : char;
-    c_cc     : array[0..NCCS-1] of byte;
-  end;
-  TTermios=Termios;
-
-const
-  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);
-
-const
-{c_cc characters}
-   VINTR    = 0;
-   VQUIT    = 1;
-   VERASE   = 2;
-   VKILL    = 3;
-   VEOF     = 4;
-   VTIME    = 5;
-   VMIN     = 6;
-   VSWTC    = 7;
-   VSTART   = 8;
-   VSTOP    = 9;
-   VSUSP    = 10;
-   VEOL     = 11;
-   VREPRINT = 12;
-   VDISCARD = 13;
-   VWERASE  = 14;
-   VLNEXT   = 15;
-   VEOL2    = 16;
-
-{c_iflag bits}
-   IGNBRK  = $0000001;
-   BRKINT  = $0000002;
-   IGNPAR  = $0000004;
-   PARMRK  = $0000008;
-   INPCK   = $0000010;
-   ISTRIP  = $0000020;
-   INLCR   = $0000040;
-   IGNCR   = $0000080;
-   ICRNL   = $0000100;
-   IUCLC   = $0000200;
-   IXON    = $0000400;
-   IXANY   = $0000800;
-   IXOFF   = $0001000;
-   IMAXBEL = $0002000;
-
-{c_oflag bits}
-   OPOST  = $0000001;
-   OLCUC  = $0000002;
-   ONLCR  = $0000004;
-   OCRNL  = $0000008;
-   ONOCR  = $0000010;
-   ONLRET = $0000020;
-   OFILL  = $0000040;
-   OFDEL  = $0000080;
-   NLDLY  = $0000100;
-     NL0  = $0000000;
-     NL1  = $0000100;
-   CRDLY  = $0000600;
-     CR0  = $0000000;
-     CR1  = $0000200;
-     CR2  = $0000400;
-     CR3  = $0000600;
-   TABDLY = $0001800;
-     TAB0 = $0000000;
-     TAB1 = $0000800;
-     TAB2 = $0001000;
-     TAB3 = $0001800;
-    XTABS = $0001800;
-   BSDLY  = $0002000;
-     BS0  = $0000000;
-     BS1  = $0002000;
-   VTDLY  = $0004000;
-     VT0  = $0000000;
-     VT1  = $0004000;
-   FFDLY  = $0008000;
-     FF0  = $0000000;
-     FF1  = $0008000;
-
-{c_cflag bits}
-   CBAUD   = $000100F;
-   B0      = $0000000;
-   B50     = $0000001;
-   B75     = $0000002;
-   B110    = $0000003;
-   B134    = $0000004;
-   B150    = $0000005;
-   B200    = $0000006;
-   B300    = $0000007;
-   B600    = $0000008;
-   B1200   = $0000009;
-   B1800   = $000000A;
-   B2400   = $000000B;
-   B4800   = $000000C;
-   B9600   = $000000D;
-   B19200  = $000000E;
-   B38400  = $000000F;
-   EXTA    = B19200;
-   EXTB    = B38400;
-   CSIZE   = $0000030;
-     CS5   = $0000000;
-     CS6   = $0000010;
-     CS7   = $0000020;
-     CS8   = $0000030;
-   CSTOPB  = $0000040;
-   CREAD   = $0000080;
-   PARENB  = $0000100;
-   PARODD  = $0000200;
-   HUPCL   = $0000400;
-   CLOCAL  = $0000800;
-   CBAUDEX = $0001000;
-   B57600  = $0001001;
-   B115200 = $0001002;
-   B230400 = $0001003;
-   B460800 = $0001004;
-   CIBAUD  = $100F0000;
-   CMSPAR  = $40000000;
-   CRTSCTS = $80000000;
-
-{c_lflag bits}
-   ISIG    = $0000001;
-   ICANON  = $0000002;
-   XCASE   = $0000004;
-   ECHO    = $0000008;
-   ECHOE   = $0000010;
-   ECHOK   = $0000020;
-   ECHONL  = $0000040;
-   NOFLSH  = $0000080;
-   TOSTOP  = $0000100;
-   ECHOCTL = $0000200;
-   ECHOPRT = $0000400;
-   ECHOKE  = $0000800;
-   FLUSHO  = $0001000;
-   PENDIN  = $0004000;
-   IEXTEN  = $0008000;
-
-{c_line bits}
-   TIOCM_LE   = $001;
-   TIOCM_DTR  = $002;
-   TIOCM_RTS  = $004;
-   TIOCM_ST   = $008;
-   TIOCM_SR   = $010;
-   TIOCM_CTS  = $020;
-   TIOCM_CAR  = $040;
-   TIOCM_RNG  = $080;
-   TIOCM_DSR  = $100;
-   TIOCM_CD   = TIOCM_CAR;
-   TIOCM_RI   = TIOCM_RNG;
-   TIOCM_OUT1 = $2000;
-   TIOCM_OUT2 = $4000;
-
-{TCSetAttr}
-   TCSANOW   = 0;
-   TCSADRAIN = 1;
-   TCSAFLUSH = 2;
-
-{TCFlow}
-   TCOOFF = 0;
-   TCOON  = 1;
-   TCIOFF = 2;
-   TCION  = 3;
-
-{TCFlush}
-   TCIFLUSH  = 0;
-   TCOFLUSH  = 1;
-   TCIOFLUSH = 2;
-
+{$I termios.inc}
 
 {********************
       Info
@@ -2799,7 +2538,11 @@ End.
 
 {
   $Log$
-  Revision 1.2  2000-09-18 13:14:50  marco
+  Revision 1.3  2000-10-10 12:02:35  marco
+   * Terminal stuff of Linux moved to separate file. I think it is too
+       much to do with ifdefs.
+
+  Revision 1.2  2000/09/18 13:14:50  marco
    * Global Linux +bsd to (rtl/freebsd rtl/unix rtl/linux structure)
 
   Revision 1.7  2000/09/12 08:51:43  marco