{ $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; {c_cc characters} VINTR = 0; VQUIT = 1; VERASE = 2; VKILL = 3; VEOF = 4; VMIN = 5; VEOL = 6; VTIME = 7; VEOL2 = 8; VSWTC = 9; VWERASE = 10; VREPRINT = 11; VSUSP = 12; VSTART = 13; VSTOP = 14; VLNEXT = 15; VDISCARD = 16; {$endif cpupowerpc} {$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; 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; {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; {$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; {c_cc characters} VINTR = 0; VQUIT = 1; VERASE = 2; VKILL = 3; VEOF = 4; VEOL = 5; VEOL2 = 6; VSWTC = 7; VSTART = 8; VSTOP = 9; VSUSP = 10; VDSUSP = 11; VREPRINT = 12; VDISCARD = 13; VWERASE = 14; VLNEXT = 15; VMIN = 4; VTIME = 5; {$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; {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; {$endif cpux86_64} {$ifdef cpuarm} { 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; FIOQSIZE = $545E; TIOCPKT_DATA = 0; TIOCPKT_FLUSHREAD = 1; TIOCPKT_FLUSHWRITE = 2; TIOCPKT_STOP = 4; TIOCPKT_START = 8; TIOCPKT_NOSTOP = 16; TIOCPKT_DOSTOP = 32; {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; {$endif cpuarm} Type winsize = packed record ws_row, ws_col, ws_xpixel, ws_ypixel : word; end; TWinSize=winsize; {$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 {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.12 2004-12-28 15:30:04 florian * fixed raw mode for non i386 targets * fixed some alignment issues Revision 1.11 2004/11/03 12:24:56 peter * remove comment level 2 warning Revision 1.10 2004/10/31 16:05:23 florian + added ioctl constants for arm 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 }