mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-18 05:01:42 +02:00
* Terminal stuff of Linux moved to separate file. I think it is too
much to do with ifdefs.
This commit is contained in:
parent
48668a2417
commit
fb8c4a8b28
268
rtl/linux/termios.inc
Normal file
268
rtl/linux/termios.inc
Normal file
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user