|
@@ -6,29 +6,29 @@ CONST
|
|
|
*
|
|
|
* Index into c_cc[] character array.
|
|
|
*
|
|
|
- * Name Subscript Enabled by
|
|
|
+ * Name Subscript Enabled by
|
|
|
}
|
|
|
- VEOF =0;
|
|
|
- VEOL =1;
|
|
|
- VEOL2 =2;
|
|
|
- VERASE =3;
|
|
|
- VWERASE =4;
|
|
|
- VKILL =5;
|
|
|
- VREPRINT =6;
|
|
|
-{ =7; spare 1 }
|
|
|
- VINTR =8;
|
|
|
- VQUIT =9;
|
|
|
- VSUSP =10;
|
|
|
- VDSUSP =11;
|
|
|
- VSTART =12;
|
|
|
- VSTOP =13;
|
|
|
- VLNEXT =14;
|
|
|
- VDISCARD =15;
|
|
|
- VMIN =16;
|
|
|
- VTIME =17;
|
|
|
- VSTATUS =18;
|
|
|
-{ =19 spare 2 }
|
|
|
- NCCS =20;
|
|
|
+ VEOF =0;
|
|
|
+ VEOL =1;
|
|
|
+ VEOL2 =2;
|
|
|
+ VERASE =3;
|
|
|
+ VWERASE =4;
|
|
|
+ VKILL =5;
|
|
|
+ VREPRINT =6;
|
|
|
+{ =7; spare 1 }
|
|
|
+ VINTR =8;
|
|
|
+ VQUIT =9;
|
|
|
+ VSUSP =10;
|
|
|
+ VDSUSP =11;
|
|
|
+ VSTART =12;
|
|
|
+ VSTOP =13;
|
|
|
+ VLNEXT =14;
|
|
|
+ VDISCARD =15;
|
|
|
+ VMIN =16;
|
|
|
+ VTIME =17;
|
|
|
+ VSTATUS =18;
|
|
|
+{ =19 spare 2 }
|
|
|
+ NCCS =20;
|
|
|
|
|
|
Type
|
|
|
winsize = packed record
|
|
@@ -50,7 +50,7 @@ type
|
|
|
c_cc : array[0..NCCS-1] of byte;
|
|
|
{$IFDEF BSD}
|
|
|
c_ispeed,
|
|
|
- c_ospeed : longint;
|
|
|
+ c_ospeed : longint;
|
|
|
{$endif}
|
|
|
end;
|
|
|
TTermios=Termios;
|
|
@@ -61,55 +61,55 @@ CONST
|
|
|
POSIX_VDISABLE=Chr($ff);
|
|
|
{
|
|
|
|
|
|
-#define CCEQ(val, c) ((c) == (val) ? (val) != _POSIX_VDISABLE : 0)
|
|
|
+#define CCEQ(val, c) ((c) == (val) ? (val) != _POSIX_VDISABLE : 0)
|
|
|
}
|
|
|
|
|
|
{ * Input flags - software input processing}
|
|
|
|
|
|
- IGNBRK = $1; { ignore BREAK condition }
|
|
|
- BRKINT = $2; { map BREAK to SIGINTR }
|
|
|
- IGNPAR = $4; { ignore (discard) parity errors }
|
|
|
- PARMRK = $8; { mark parity and framing errors }
|
|
|
- INPCK = $10; { enable checking of parity errors }
|
|
|
- ISTRIP = $20; { strip 8th bit off chars }
|
|
|
- INLCR = $40; { map NL into CR }
|
|
|
- IGNCR = $80; { ignore CR }
|
|
|
- ICRNL = $100; { map CR to NL (ala CRMOD) }
|
|
|
- IXON = $200; { enable output flow control }
|
|
|
- IXOFF = $400; { enable input flow control }
|
|
|
- IXANY = $800; { any char will restart after stop }
|
|
|
- IMAXBEL = $2000; { ring bell on input queue full }
|
|
|
+ IGNBRK = $1; { ignore BREAK condition }
|
|
|
+ BRKINT = $2; { map BREAK to SIGINTR }
|
|
|
+ IGNPAR = $4; { ignore (discard) parity errors }
|
|
|
+ PARMRK = $8; { mark parity and framing errors }
|
|
|
+ INPCK = $10; { enable checking of parity errors }
|
|
|
+ ISTRIP = $20; { strip 8th bit off chars }
|
|
|
+ INLCR = $40; { map NL into CR }
|
|
|
+ IGNCR = $80; { ignore CR }
|
|
|
+ ICRNL = $100; { map CR to NL (ala CRMOD) }
|
|
|
+ IXON = $200; { enable output flow control }
|
|
|
+ IXOFF = $400; { enable input flow control }
|
|
|
+ IXANY = $800; { any char will restart after stop }
|
|
|
+ IMAXBEL = $2000; { ring bell on input queue full }
|
|
|
|
|
|
{
|
|
|
* Output flags - software output processing
|
|
|
}
|
|
|
- OPOST = $1; { enable following output processing }
|
|
|
- ONLCR = $2; { map NL to CR-NL (ala CRMOD) }
|
|
|
- OXTABS = $4; { expand tabs to spaces }
|
|
|
- ONOEOT = $8; { discard EOT's (^D) on output) }
|
|
|
+ OPOST = $1; { enable following output processing }
|
|
|
+ ONLCR = $2; { map NL to CR-NL (ala CRMOD) }
|
|
|
+ OXTABS = $4; { expand tabs to spaces }
|
|
|
+ ONOEOT = $8; { discard EOT's (^D) on output) }
|
|
|
|
|
|
{
|
|
|
* Control flags - hardware control of terminal
|
|
|
}
|
|
|
- CIGNORE = $1; { ignore control flags }
|
|
|
- CSIZE = $300; { character size mask }
|
|
|
- CS5 = $0; { 5 bits (pseudo) }
|
|
|
- CS6 = $100; { 6 bits }
|
|
|
- CS7 = $200; { 7 bits }
|
|
|
- CS8 = $300; { 8 bits }
|
|
|
- CSTOPB = $400; { send 2 stop bits }
|
|
|
- CREAD = $800; { enable receiver }
|
|
|
- PARENB = $1000; { parity enable }
|
|
|
- PARODD = $2000; { odd parity, else even }
|
|
|
- HUPCL = $4000; { hang up on last close }
|
|
|
- CLOCAL = $8000; { ignore modem status lines }
|
|
|
- CCTS_OFLOW = $10000; { CTS flow control of output }
|
|
|
- CRTS_IFLOW = $20000; { RTS flow control of input }
|
|
|
- CRTSCTS = (CCTS_OFLOW or CRTS_IFLOW);
|
|
|
- CDTR_IFLOW = $40000; { DTR flow control of input }
|
|
|
- CDSR_OFLOW = $80000; { DSR flow control of output }
|
|
|
- CCAR_OFLOW = $100000; { DCD flow control of output }
|
|
|
- MDMBUF = $100000; { old name for CCAR_OFLOW }
|
|
|
+ CIGNORE = $1; { ignore control flags }
|
|
|
+ CSIZE = $300; { character size mask }
|
|
|
+ CS5 = $0; { 5 bits (pseudo) }
|
|
|
+ CS6 = $100; { 6 bits }
|
|
|
+ CS7 = $200; { 7 bits }
|
|
|
+ CS8 = $300; { 8 bits }
|
|
|
+ CSTOPB = $400; { send 2 stop bits }
|
|
|
+ CREAD = $800; { enable receiver }
|
|
|
+ PARENB = $1000; { parity enable }
|
|
|
+ PARODD = $2000; { odd parity, else even }
|
|
|
+ HUPCL = $4000; { hang up on last close }
|
|
|
+ CLOCAL = $8000; { ignore modem status lines }
|
|
|
+ CCTS_OFLOW = $10000; { CTS flow control of output }
|
|
|
+ CRTS_IFLOW = $20000; { RTS flow control of input }
|
|
|
+ CRTSCTS = (CCTS_OFLOW or CRTS_IFLOW);
|
|
|
+ CDTR_IFLOW = $40000; { DTR flow control of input }
|
|
|
+ CDSR_OFLOW = $80000; { DSR flow control of output }
|
|
|
+ CCAR_OFLOW = $100000; { DCD flow control of output }
|
|
|
+ MDMBUF = $100000; { old name for CCAR_OFLOW }
|
|
|
|
|
|
{
|
|
|
* "Local" flags - dumping ground for other state
|
|
@@ -119,23 +119,23 @@ CONST
|
|
|
* input flag.
|
|
|
}
|
|
|
|
|
|
- ECHOKE = $1; { visual erase for line kill }
|
|
|
- ECHOE = $2; { visually erase chars }
|
|
|
- ECHOK = $4; { echo NL after line kill }
|
|
|
- ECHO = $8; { enable echoing }
|
|
|
- ECHONL = $10; { echo NL even if ECHO is off }
|
|
|
- ECHOPRT = $20; { visual erase mode for hardcopy }
|
|
|
- ECHOCTL = $40; { echo control chars as ^(Char) }
|
|
|
- ISIG = $80; { enable signals INTR, QUIT, [D]SUSP }
|
|
|
- ICANON = $100; { canonicalize input lines }
|
|
|
- ALTWERASE = $200; { use alternate WERASE algorithm }
|
|
|
- IEXTEN = $400; { enable DISCARD and LNEXT }
|
|
|
+ ECHOKE = $1; { visual erase for line kill }
|
|
|
+ ECHOE = $2; { visually erase chars }
|
|
|
+ ECHOK = $4; { echo NL after line kill }
|
|
|
+ ECHO = $8; { enable echoing }
|
|
|
+ ECHONL = $10; { echo NL even if ECHO is off }
|
|
|
+ ECHOPRT = $20; { visual erase mode for hardcopy }
|
|
|
+ ECHOCTL = $40; { echo control chars as ^(Char) }
|
|
|
+ ISIG = $80; { enable signals INTR, QUIT, [D]SUSP }
|
|
|
+ ICANON = $100; { canonicalize input lines }
|
|
|
+ ALTWERASE = $200; { use alternate WERASE algorithm }
|
|
|
+ IEXTEN = $400; { enable DISCARD and LNEXT }
|
|
|
EXTPROC = $800; { external processing }
|
|
|
- TOSTOP = $400000; { stop background jobs from output }
|
|
|
- FLUSHO = $800000; { output being flushed (state) }
|
|
|
- NOKERNINFO = $2000000; { no kernel output from VSTATUS }
|
|
|
- PENDIN =$20000000; { XXX retype pending input (state) }
|
|
|
- NOFLSH =$80000000; { don't flush after interrupt }
|
|
|
+ TOSTOP = $400000; { stop background jobs from output }
|
|
|
+ FLUSHO = $800000; { output being flushed (state) }
|
|
|
+ NOKERNINFO = $2000000; { no kernel output from VSTATUS }
|
|
|
+ PENDIN =$20000000; { XXX retype pending input (state) }
|
|
|
+ NOFLSH =$80000000; { don't flush after interrupt }
|
|
|
|
|
|
|
|
|
|
|
@@ -145,66 +145,66 @@ CONST
|
|
|
|
|
|
CONST
|
|
|
|
|
|
- TCSANOW =0; { make change immediate }
|
|
|
- TCSADRAIN =1; { drain output, then change }
|
|
|
- TCSAFLUSH =2; { drain output, flush input }
|
|
|
- TCSASOFT =$10; { flag - don't alter h.w. state }
|
|
|
+ TCSANOW =0; { make change immediate }
|
|
|
+ TCSADRAIN =1; { drain output, then change }
|
|
|
+ TCSAFLUSH =2; { drain output, flush input }
|
|
|
+ TCSASOFT =$10; { flag - don't alter h.w. state }
|
|
|
|
|
|
{
|
|
|
* Standard speeds
|
|
|
}
|
|
|
- B0 = 0;
|
|
|
- B50 = 50;
|
|
|
- B75 = 75;
|
|
|
- B110 = 110;
|
|
|
- B134 = 134;
|
|
|
- B150 = 150;
|
|
|
- B200 = 200;
|
|
|
- B300 = 300;
|
|
|
- B600 = 600;
|
|
|
- B1200 = 1200;
|
|
|
- B1800 = 1800;
|
|
|
- B2400 = 2400;
|
|
|
- B4800 = 4800;
|
|
|
- B9600 = 9600;
|
|
|
- B19200 = 19200;
|
|
|
- B38400 = 38400;
|
|
|
- B7200 = 7200;
|
|
|
- B14400 = 14400;
|
|
|
- B28800 = 28800;
|
|
|
- B57600 = 57600;
|
|
|
- B76800 = 76800;
|
|
|
- B115200 =115200;
|
|
|
- B230400 =230400;
|
|
|
- EXTA = 19200;
|
|
|
- EXTB = 38400;
|
|
|
-
|
|
|
- TCIFLUSH =1;
|
|
|
- TCOFLUSH =2;
|
|
|
- TCIOFLUSH =3;
|
|
|
- TCOOFF =1;
|
|
|
- TCOON =2;
|
|
|
- TCIOFF =3;
|
|
|
- TCION =4;
|
|
|
+ B0 = 0;
|
|
|
+ B50 = 50;
|
|
|
+ B75 = 75;
|
|
|
+ B110 = 110;
|
|
|
+ B134 = 134;
|
|
|
+ B150 = 150;
|
|
|
+ B200 = 200;
|
|
|
+ B300 = 300;
|
|
|
+ B600 = 600;
|
|
|
+ B1200 = 1200;
|
|
|
+ B1800 = 1800;
|
|
|
+ B2400 = 2400;
|
|
|
+ B4800 = 4800;
|
|
|
+ B9600 = 9600;
|
|
|
+ B19200 = 19200;
|
|
|
+ B38400 = 38400;
|
|
|
+ B7200 = 7200;
|
|
|
+ B14400 = 14400;
|
|
|
+ B28800 = 28800;
|
|
|
+ B57600 = 57600;
|
|
|
+ B76800 = 76800;
|
|
|
+ B115200 =115200;
|
|
|
+ B230400 =230400;
|
|
|
+ EXTA = 19200;
|
|
|
+ EXTB = 38400;
|
|
|
+
|
|
|
+ TCIFLUSH =1;
|
|
|
+ TCOFLUSH =2;
|
|
|
+ TCIOFLUSH =3;
|
|
|
+ TCOOFF =1;
|
|
|
+ TCOON =2;
|
|
|
+ TCIOFF =3;
|
|
|
+ TCION =4;
|
|
|
|
|
|
{
|
|
|
#include <sys/cdefs.h>
|
|
|
|
|
|
__BEGIN_DECLS
|
|
|
-speed_t cfgetispeed __P((const struct termios *));
|
|
|
-speed_t cfgetospeed __P((const struct termios *));
|
|
|
-int cfsetispeed __P((struct termios *, speed_t));
|
|
|
-int cfsetospeed __P((struct termios *, speed_t));
|
|
|
-int tcgetattr __P((int, struct termios *));
|
|
|
-int tcsetattr __P((int, int, const struct termios *));
|
|
|
-int tcdrain __P((int));
|
|
|
-int tcflow __P((int, int));
|
|
|
-int tcflush __P((int, int));
|
|
|
-int tcsendbreak __P((int, int));
|
|
|
+speed_t cfgetispeed __P((const struct termios *));
|
|
|
+speed_t cfgetospeed __P((const struct termios *));
|
|
|
+int cfsetispeed __P((struct termios *, speed_t));
|
|
|
+int cfsetospeed __P((struct termios *, speed_t));
|
|
|
+int tcgetattr __P((int, struct termios *));
|
|
|
+int tcsetattr __P((int, int, const struct termios *));
|
|
|
+int tcdrain __P((int));
|
|
|
+int tcflow __P((int, int));
|
|
|
+int tcflush __P((int, int));
|
|
|
+int tcsendbreak __P((int, int));
|
|
|
|
|
|
#ifndef _POSIX_SOURCE
|
|
|
-void cfmakeraw __P((struct termios *));
|
|
|
-int cfsetspeed __P((struct termios *, speed_t));
|
|
|
+void cfmakeraw __P((struct termios *));
|
|
|
+int cfsetspeed __P((struct termios *, speed_t));
|
|
|
#endif { !_POSIX_SOURCE }
|
|
|
__END_DECLS
|
|
|
|
|
@@ -213,139 +213,139 @@ __END_DECLS
|
|
|
|
|
|
|
|
|
struct winsize {
|
|
|
- unsigned short ws_row; { rows, in characters }
|
|
|
- unsigned short ws_col; { columns, in characters }
|
|
|
- unsigned short ws_xpixel; { horizontal size, pixels }
|
|
|
- unsigned short ws_ypixel; { vertical size, pixels }
|
|
|
+ unsigned short ws_row; { rows, in characters }
|
|
|
+ unsigned short ws_col; { columns, in characters }
|
|
|
+ unsigned short ws_xpixel; { horizontal size, pixels }
|
|
|
+ unsigned short ws_ypixel; { vertical size, pixels }
|
|
|
};
|
|
|
|
|
|
}
|
|
|
IOCTLREAD = $40000000;
|
|
|
IOCTLWRITE = $80000000;
|
|
|
- IOCTLVOID = $20000000;
|
|
|
-
|
|
|
- TIOCMODG = IOCTLREAD+$47400+ 3; { get modem control state }
|
|
|
- TIOCMODS = IOCTLWRITE+$47400+ 4; { set modem control state }
|
|
|
- TIOCM_LE =$0001; { line enable }
|
|
|
- TIOCM_DTR =$0002; { data terminal ready }
|
|
|
- TIOCM_RTS =$0004; { request to send }
|
|
|
- TIOCM_ST =$0010; { secondary transmit }
|
|
|
- TIOCM_SR =$0020; { secondary receive }
|
|
|
- TIOCM_CTS =$0040; { clear to send }
|
|
|
- TIOCM_CAR =$0100; { carrier detect }
|
|
|
- TIOCM_CD =TIOCM_CAR;
|
|
|
- TIOCM_RNG =$0200; { ring }
|
|
|
- TIOCM_RI =TIOCM_RNG;
|
|
|
- TIOCM_DSR =$0400; { data set ready }
|
|
|
- { 8-10 compat }
|
|
|
- TIOCEXCL =IOCTLVOID+$7400+ 13; { set exclusive use of tty }
|
|
|
- TIOCNXCL =IOCTLVOID+$7400+ 14; { reset exclusive use of tty }
|
|
|
- { 15 unused }
|
|
|
- TIOCFLUSH =IOCTLWRITE+$47400+ 16; { flush buffers }
|
|
|
- { 17-18 compat }
|
|
|
- TIOCGETA =IOCTLREAD+$2C7400+ 19; { get termios struct }
|
|
|
- TIOCSETA =IOCTLWRITE+$2C7400+ 20; { set termios struct }
|
|
|
- TIOCSETAW =IOCTLWRITE+$2C7400+ 21; { drain output, set }
|
|
|
- TIOCSETAF =IOCTLWRITE+$2C7400+ 22; { drn out, fls in, set }
|
|
|
- TIOCGETD =IOCTLREAD+$47400+ 26; { get line discipline }
|
|
|
- TIOCSETD =IOCTLWRITE+$47400+ 27; { set line discipline }
|
|
|
- { 127-124 compat }
|
|
|
- TIOCSBRK =IOCTLVOID+$7400+ 123; { set break bit }
|
|
|
- TIOCCBRK =IOCTLVOID+$7400+ 122; { clear break bit }
|
|
|
- TIOCSDTR =IOCTLVOID+$7400+ 121; { set data terminal ready }
|
|
|
- TIOCCDTR =IOCTLVOID+$7400+ 120; { clear data terminal ready }
|
|
|
- TIOCGPGRP =IOCTLREAD+$47400+ 119; { get pgrp of tty }
|
|
|
- TIOCSPGRP =IOCTLWRITE+$47400+ 118; { set pgrp of tty }
|
|
|
- { 117-116 compat }
|
|
|
- TIOCOUTQ =IOCTLREAD+$47400+ 115; { output queue size }
|
|
|
- TIOCSTI =IOCTLWRITE+$17400+ 114; { simulate terminal input }
|
|
|
- TIOCNOTTY =IOCTLVOID+$7400+ 113; { void tty association }
|
|
|
- TIOCPKT =IOCTLWRITE+$47400+ 112; { pty: set/clear packet mode }
|
|
|
- TIOCPKT_DATA =$00; { data packet }
|
|
|
- TIOCPKT_FLUSHREAD =$01; { flush packet }
|
|
|
- TIOCPKT_FLUSHWRITE =$02; { flush packet }
|
|
|
- TIOCPKT_STOP =$04; { stop output }
|
|
|
- TIOCPKT_START =$08; { start output }
|
|
|
- TIOCPKT_NOSTOP =$10; { no more ^S, ^Q }
|
|
|
- TIOCPKT_DOSTOP =$20; { now do ^S ^Q }
|
|
|
- TIOCPKT_IOCTL =$40; { state change of pty driver }
|
|
|
- TIOCSTOP =IOCTLVOID+$7400+ 111; { stop output, like ^S }
|
|
|
- TIOCSTART =IOCTLVOID+$7400+ 110; { start output, like ^Q }
|
|
|
- TIOCMSET =IOCTLWRITE+$47400+ 109; { set all modem bits }
|
|
|
- TIOCMBIS =IOCTLWRITE+$47400+ 108; { bis modem bits }
|
|
|
- TIOCMBIC =IOCTLWRITE+$47400+ 107; { bic modem bits }
|
|
|
- TIOCMGET =IOCTLREAD+$47400+ 106; { get all modem bits }
|
|
|
- TIOCREMOTE =IOCTLWRITE+$47400+ 105; { remote input editing }
|
|
|
- TIOCGWINSZ =IOCTLREAD+$87400+ 104; { get window size }
|
|
|
- TIOCSWINSZ =IOCTLWRITE+$87400+ 103; { set window size }
|
|
|
- TIOCUCNTL =IOCTLWRITE+$47400+ 102; { pty: set/clr usr cntl mode }
|
|
|
- TIOCSTAT =IOCTLVOID+$7400+ 101; { simulate ^T status message }
|
|
|
- // UIOCCMD(n) _IO('u', n) { usr cntl op "n" }
|
|
|
- TIOCCONS =IOCTLWRITE+$47400+ 98; { become virtual console }
|
|
|
- TIOCSCTTY =IOCTLVOID+$7400+ 97; { become controlling tty }
|
|
|
- TIOCEXT =IOCTLWRITE+$47400+ 96; { pty: external processing }
|
|
|
- TIOCSIG =IOCTLVOID+$7400+ 95; { pty: generate signal }
|
|
|
- TIOCDRAIN =IOCTLVOID+$7400+ 94; { wait till output drained }
|
|
|
- TIOCMSDTRWAIT =IOCTLWRITE+$47400+ 91; { modem: set wait on close }
|
|
|
- TIOCMGDTRWAIT =IOCTLREAD+$47400+ 90; { modem: get wait on close }
|
|
|
- TIOCTIMESTAMP =IOCTLREAD+$87400+ 89; { enable/get timestamp
|
|
|
- * of last input event }
|
|
|
- TIOCDCDTIMESTAMP =IOCTLREAD+$87400+ 88; { enable/get timestamp
|
|
|
- * of last DCd rise }
|
|
|
- TIOCSDRAINWAIT =IOCTLWRITE+$47400+ 87; { set ttywait timeout }
|
|
|
- TIOCGDRAINWAIT =IOCTLREAD+$47400+ 86; { get ttywait timeout }
|
|
|
-
|
|
|
- TTYDISC =0; { termios tty line discipline }
|
|
|
- SLIPDISC =4; { serial IP discipline }
|
|
|
- PPPDISC =5; { PPP discipline }
|
|
|
- NETGRAPHDISC =6; { Netgraph tty node discipline }
|
|
|
+ IOCTLVOID = $20000000;
|
|
|
+
|
|
|
+ TIOCMODG = IOCTLREAD+$47400+ 3; { get modem control state }
|
|
|
+ TIOCMODS = IOCTLWRITE+$47400+ 4; { set modem control state }
|
|
|
+ TIOCM_LE =$0001; { line enable }
|
|
|
+ TIOCM_DTR =$0002; { data terminal ready }
|
|
|
+ TIOCM_RTS =$0004; { request to send }
|
|
|
+ TIOCM_ST =$0010; { secondary transmit }
|
|
|
+ TIOCM_SR =$0020; { secondary receive }
|
|
|
+ TIOCM_CTS =$0040; { clear to send }
|
|
|
+ TIOCM_CAR =$0100; { carrier detect }
|
|
|
+ TIOCM_CD =TIOCM_CAR;
|
|
|
+ TIOCM_RNG =$0200; { ring }
|
|
|
+ TIOCM_RI =TIOCM_RNG;
|
|
|
+ TIOCM_DSR =$0400; { data set ready }
|
|
|
+ { 8-10 compat }
|
|
|
+ TIOCEXCL =IOCTLVOID+$7400+ 13; { set exclusive use of tty }
|
|
|
+ TIOCNXCL =IOCTLVOID+$7400+ 14; { reset exclusive use of tty }
|
|
|
+ { 15 unused }
|
|
|
+ TIOCFLUSH =IOCTLWRITE+$47400+ 16; { flush buffers }
|
|
|
+ { 17-18 compat }
|
|
|
+ TIOCGETA =IOCTLREAD+$2C7400+ 19; { get termios struct }
|
|
|
+ TIOCSETA =IOCTLWRITE+$2C7400+ 20; { set termios struct }
|
|
|
+ TIOCSETAW =IOCTLWRITE+$2C7400+ 21; { drain output, set }
|
|
|
+ TIOCSETAF =IOCTLWRITE+$2C7400+ 22; { drn out, fls in, set }
|
|
|
+ TIOCGETD =IOCTLREAD+$47400+ 26; { get line discipline }
|
|
|
+ TIOCSETD =IOCTLWRITE+$47400+ 27; { set line discipline }
|
|
|
+ { 127-124 compat }
|
|
|
+ TIOCSBRK =IOCTLVOID+$7400+ 123; { set break bit }
|
|
|
+ TIOCCBRK =IOCTLVOID+$7400+ 122; { clear break bit }
|
|
|
+ TIOCSDTR =IOCTLVOID+$7400+ 121; { set data terminal ready }
|
|
|
+ TIOCCDTR =IOCTLVOID+$7400+ 120; { clear data terminal ready }
|
|
|
+ TIOCGPGRP =IOCTLREAD+$47400+ 119; { get pgrp of tty }
|
|
|
+ TIOCSPGRP =IOCTLWRITE+$47400+ 118; { set pgrp of tty }
|
|
|
+ { 117-116 compat }
|
|
|
+ TIOCOUTQ =IOCTLREAD+$47400+ 115; { output queue size }
|
|
|
+ TIOCSTI =IOCTLWRITE+$17400+ 114; { simulate terminal input }
|
|
|
+ TIOCNOTTY =IOCTLVOID+$7400+ 113; { void tty association }
|
|
|
+ TIOCPKT =IOCTLWRITE+$47400+ 112; { pty: set/clear packet mode }
|
|
|
+ TIOCPKT_DATA =$00; { data packet }
|
|
|
+ TIOCPKT_FLUSHREAD =$01; { flush packet }
|
|
|
+ TIOCPKT_FLUSHWRITE =$02; { flush packet }
|
|
|
+ TIOCPKT_STOP =$04; { stop output }
|
|
|
+ TIOCPKT_START =$08; { start output }
|
|
|
+ TIOCPKT_NOSTOP =$10; { no more ^S, ^Q }
|
|
|
+ TIOCPKT_DOSTOP =$20; { now do ^S ^Q }
|
|
|
+ TIOCPKT_IOCTL =$40; { state change of pty driver }
|
|
|
+ TIOCSTOP =IOCTLVOID+$7400+ 111; { stop output, like ^S }
|
|
|
+ TIOCSTART =IOCTLVOID+$7400+ 110; { start output, like ^Q }
|
|
|
+ TIOCMSET =IOCTLWRITE+$47400+ 109; { set all modem bits }
|
|
|
+ TIOCMBIS =IOCTLWRITE+$47400+ 108; { bis modem bits }
|
|
|
+ TIOCMBIC =IOCTLWRITE+$47400+ 107; { bic modem bits }
|
|
|
+ TIOCMGET =IOCTLREAD+$47400+ 106; { get all modem bits }
|
|
|
+ TIOCREMOTE =IOCTLWRITE+$47400+ 105; { remote input editing }
|
|
|
+ TIOCGWINSZ =IOCTLREAD+$87400+ 104; { get window size }
|
|
|
+ TIOCSWINSZ =IOCTLWRITE+$87400+ 103; { set window size }
|
|
|
+ TIOCUCNTL =IOCTLWRITE+$47400+ 102; { pty: set/clr usr cntl mode }
|
|
|
+ TIOCSTAT =IOCTLVOID+$7400+ 101; { simulate ^T status message }
|
|
|
+ // UIOCCMD(n) _IO('u', n) { usr cntl op "n" }
|
|
|
+ TIOCCONS =IOCTLWRITE+$47400+ 98; { become virtual console }
|
|
|
+ TIOCSCTTY =IOCTLVOID+$7400+ 97; { become controlling tty }
|
|
|
+ TIOCEXT =IOCTLWRITE+$47400+ 96; { pty: external processing }
|
|
|
+ TIOCSIG =IOCTLVOID+$7400+ 95; { pty: generate signal }
|
|
|
+ TIOCDRAIN =IOCTLVOID+$7400+ 94; { wait till output drained }
|
|
|
+ TIOCMSDTRWAIT =IOCTLWRITE+$47400+ 91; { modem: set wait on close }
|
|
|
+ TIOCMGDTRWAIT =IOCTLREAD+$47400+ 90; { modem: get wait on close }
|
|
|
+ TIOCTIMESTAMP =IOCTLREAD+$87400+ 89; { enable/get timestamp
|
|
|
+ * of last input event }
|
|
|
+ TIOCDCDTIMESTAMP =IOCTLREAD+$87400+ 88; { enable/get timestamp
|
|
|
+ * of last DCd rise }
|
|
|
+ TIOCSDRAINWAIT =IOCTLWRITE+$47400+ 87; { set ttywait timeout }
|
|
|
+ TIOCGDRAINWAIT =IOCTLREAD+$47400+ 86; { get ttywait timeout }
|
|
|
+
|
|
|
+ TTYDISC =0; { termios tty line discipline }
|
|
|
+ SLIPDISC =4; { serial IP discipline }
|
|
|
+ PPPDISC =5; { PPP discipline }
|
|
|
+ NETGRAPHDISC =6; { Netgraph tty node discipline }
|
|
|
|
|
|
|
|
|
{
|
|
|
* Defaults on "first" open.
|
|
|
}
|
|
|
- TTYDEF_IFLAG =(BRKINT or ICRNL or IMAXBEL or IXON or IXANY);
|
|
|
- TTYDEF_OFLAG =(OPOST or ONLCR);
|
|
|
- TTYDEF_LFLAG =(ECHO or ICANON or ISIG or IEXTEN or ECHOE or ECHOKE or ECHOCTL);
|
|
|
- TTYDEF_CFLAG =(CREAD or CS8 or HUPCL);
|
|
|
- TTYDEF_SPEED =(B9600);
|
|
|
+ TTYDEF_IFLAG =(BRKINT or ICRNL or IMAXBEL or IXON or IXANY);
|
|
|
+ TTYDEF_OFLAG =(OPOST or ONLCR);
|
|
|
+ TTYDEF_LFLAG =(ECHO or ICANON or ISIG or IEXTEN or ECHOE or ECHOKE or ECHOCTL);
|
|
|
+ TTYDEF_CFLAG =(CREAD or CS8 or HUPCL);
|
|
|
+ TTYDEF_SPEED =(B9600);
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
* Control Character Defaults
|
|
|
}
|
|
|
- CtrlMask = $1f; {\037}
|
|
|
- CEOF =chr( ORD('d') and CtrlMask);
|
|
|
- CEOL =chr( $ff and CtrlMask);{ XXX avoid _POSIX_VDISABLE }
|
|
|
- CERASE =chr( $7F and CtrlMask);
|
|
|
- CINTR =chr(ORD('c') and CtrlMask);
|
|
|
- CSTATUS =chr(ORD('t') and CtrlMask);
|
|
|
- CKILL =chr(ORD('u') and CtrlMask);
|
|
|
- CMIN =chr(1);
|
|
|
- CQUIT =chr(034 and CtrlMask); { FS, ^\ }
|
|
|
- CSUSP =chr(ORD('z') and CtrlMask);
|
|
|
- CTIME =chr(0);
|
|
|
- CDSUSP =chr(ORD('y') and CtrlMask);
|
|
|
- CSTART =chr(ORD('q') and CtrlMask);
|
|
|
- CSTOP =chr(ORD('s') and CtrlMask);
|
|
|
- CLNEXT =chr(ORD('v') and CtrlMask);
|
|
|
- CDISCARD =chr(ORD('o') and CtrlMask);
|
|
|
- CWERASE =chr(ORD('w') and CtrlMask);
|
|
|
- CREPRINT =chr(ORD('r') and CtrlMask);
|
|
|
- CEOT =CEOF;
|
|
|
+ CtrlMask = $1f; {\037}
|
|
|
+ CEOF =chr( ORD('d') and CtrlMask);
|
|
|
+ CEOL =chr( $ff and CtrlMask);{ XXX avoid _POSIX_VDISABLE }
|
|
|
+ CERASE =chr( $7F and CtrlMask);
|
|
|
+ CINTR =chr(ORD('c') and CtrlMask);
|
|
|
+ CSTATUS =chr(ORD('t') and CtrlMask);
|
|
|
+ CKILL =chr(ORD('u') and CtrlMask);
|
|
|
+ CMIN =chr(1);
|
|
|
+ CQUIT =chr(034 and CtrlMask); { FS, ^\ }
|
|
|
+ CSUSP =chr(ORD('z') and CtrlMask);
|
|
|
+ CTIME =chr(0);
|
|
|
+ CDSUSP =chr(ORD('y') and CtrlMask);
|
|
|
+ CSTART =chr(ORD('q') and CtrlMask);
|
|
|
+ CSTOP =chr(ORD('s') and CtrlMask);
|
|
|
+ CLNEXT =chr(ORD('v') and CtrlMask);
|
|
|
+ CDISCARD =chr(ORD('o') and CtrlMask);
|
|
|
+ CWERASE =chr(ORD('w') and CtrlMask);
|
|
|
+ CREPRINT =chr(ORD('r') and CtrlMask);
|
|
|
+ CEOT =CEOF;
|
|
|
{ compat }
|
|
|
- CBRK =CEOL;
|
|
|
- CRPRNT =CREPRINT;
|
|
|
- CFLUSH =CDISCARD;
|
|
|
+ CBRK =CEOL;
|
|
|
+ CRPRNT =CREPRINT;
|
|
|
+ CFLUSH =CDISCARD;
|
|
|
|
|
|
|
|
|
{
|
|
|
* TTYDEFCHARS to include an array of default control characters.
|
|
|
}
|
|
|
ttydefchars : array[0..NCCS-1] OF char =(
|
|
|
- CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT,
|
|
|
- POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT,
|
|
|
- CDISCARD, CMIN, CTIME, CSTATUS, POSIX_VDISABLE);
|
|
|
+ CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT,
|
|
|
+ POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT,
|
|
|
+ CDISCARD, CMIN, CTIME, CSTATUS, POSIX_VDISABLE);
|
|
|
|
|
|
|