fpc/rtl/linux/termios.inc
2004-10-04 21:06:45 +00:00

498 lines
11 KiB
PHP

{
$Id$
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2004 by Marco van de Voort
member of the Free Pascal development team
ioctls constants for linux
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
{********************
IOCtl(TermIOS)
********************}
Const
{ Amount of Control Chars }
NCCS = 32;
NCC = 8;
{$ifdef cpupowerpc}
TCGETS = $402c7413;
TCSETS = $802c7414;
TCSETSW = $802c7415;
TCSETSF = $802c7416;
TCGETA = $40147417;
TCSETA = $80147418;
TCSETAW = $80147419;
TCSETAF = $8014741c;
TCSBRK = $2000741d;
TCXONC = $2000741e;
TCFLSH = $2000741f;
TIOCEXCL = $540c;
TIOCNXCL = $540d;
TIOCSCTTY = $540e;
TIOCGPGRP = $40047477;
TIOCSPGRP = $80047476;
TIOCOUTQ = $40047473;
TIOCSTI = $5412;
TIOCGWINSZ = $40087468;
TIOCSWINSZ = $80087467;
TIOCMGET = $5415;
TIOCMBIS = $5416;
TIOCMBIC = $5417;
TIOCMSET = $5418;
TIOCGSOFTCAR = $5419;
TIOCSSOFTCAR = $541a;
FIONREAD = $4004667f;
TIOCINQ = $4004667f;
TIOCLINUX = $541c;
TIOCCONS = $541d;
TIOCGSERIAL = $541e;
TIOCSSERIAL = $541f;
TIOCPKT = $5420;
FIONBIO = $8004667e;
TIOCNOTTY = $5422;
TIOCSETD = $5423;
TIOCGETD = $5424;
TCSBRKP = $5425;
TIOCTTYGSTRUCT = $5426;
FIONCLEX = $20006602;
FIOCLEX = $20006601;
FIOASYNC = $8004667d;
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 = $10;
TIOCPKT_DOSTOP = $20;
{$endif}
{$ifdef cpui386}
{ 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;
{$endif cpui386}
{$ifdef cpusparc}
TCGETA = $40125401;
TCSETA = $80125402;
TCSETAW = $80125403;
TCSETAF = $80125404;
TCSBRK = $20005405;
TCXONC = $20005406;
TCFLSH = $20005407;
TCGETS = $40245408;
TCSETS = $80245409;
TCSETSW = $8024540a;
TCSETSF = $8024540b;
TIOCGETD = $40047400;
TIOCSETD = $80047401;
TIOCEXCL = $2000740d;
TIOCNXCL = $2000740e;
TIOCCONS = $20007424;
TIOCGSOFTCAR = $40047464;
TIOCSSOFTCAR = $80047465;
TIOCSWINSZ = $80087467;
TIOCGWINSZ = $40087468;
TIOCMGET = $4004746a;
TIOCMBIC = $8004746b;
TIOCMBIS = $8004746c;
TIOCMSET = $8004746d;
TIOCSTART = $2000746e;
TIOCSTOP = $2000746f;
TIOCPKT = $80047470;
TIOCNOTTY = $20007471;
TIOCSTI = $80017472;
TIOCOUTQ = $40047473;
TIOCCBRK = $2000747a;
TIOCSBRK = $2000747b;
TIOCSPGRP = $80047482;
TIOCGPGRP = $40047483;
TIOCSCTTY = $20007484;
TIOCGSID = $40047485;
TIOCGPTN = $40047486;
TIOCSPTLCK = $80047487;
FIOCLEX = $20006601;
FIONCLEX = $20006602;
FIOASYNC = $8004667d;
FIONBIO = $8004667e;
FIONREAD = $4004667f;
TIOCINQ = $4004667f;
TIOCLINUX = $541c;
TIOCGSERIAL = $541e;
TIOCSSERIAL = $541f;
TCSBRKP = $5425;
TIOCTTYGSTRUCT = $5426;
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 = $10;
TIOCPKT_DOSTOP = $20;
{$endif cpusparc}
{$ifdef cpux86_64}
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;
TIOCSBRK = $5427;
TIOCCBRK = $5428;
TIOCGSID = $5429;
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;
TIOCGHAYESESP = $545E;
TIOCSHAYESESP = $545F;
FIOQSIZE = $5460;
TIOCPKT_DATA = 0;
TIOCPKT_FLUSHREAD = 1;
TIOCPKT_FLUSHWRITE = 2;
TIOCPKT_STOP = 4;
TIOCPKT_START = 8;
TIOCPKT_NOSTOP = 16;
TIOCPKT_DOSTOP = 32;
TIOCSER_TEMT = $01;
{$endif cpux86_64}
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;
}
{$PACKRECORDS C}
Termios = record
c_iflag,
c_oflag,
c_cflag,
c_lflag : cardinal;
c_line : char;
c_cc : array[0..NCCS-1] of byte;
c_ispeed,
c_ospeed : cardinal;
end;
TTermios=Termios;
{$PACKRECORDS Default}
{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;
{
$Log$
Revision 1.9 2004-10-04 21:06:45 florian
+ added x84_64 ioctls
Revision 1.8 2004/10/03 17:43:47 florian
* fixedPreviousFramePointer on sparc
Revision 1.7 2004/02/21 16:24:47 marco
* ppc ioctl nr fixed
}