123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 |
- const
- { Disable special character functions }
- _POSIX_VDISABLE = 0;
- { was #define dname(params) para_def_expr }
- { argument types are unknown }
- const
- IBSHIFT = 16;
- { required by termio.h and VCEOF/VCEOL }
- const
- _NCC = 8;
- const
- NCC = _NCC;
- { some defines required by POSIX }
- const
- NCCS = 19;
- {
- * types defined by POSIX. These are better off in types.h, but
- * the standard says that they have to be in termios.h.
- }
- type
- tcflag_t = dword;
- cc_t = byte;
- speed_t = dword;
- {
- * Ioctl control packet
- }
- ptermios = ^termios;
- termios = record
- { input modes }
- c_iflag : tcflag_t;
- { output modes }
- c_oflag : tcflag_t;
- { control modes }
- c_cflag : tcflag_t;
- { line discipline modes }
- c_lflag : tcflag_t;
- { control chars }
- c_cc : array[0..(NCCS)-1] of cc_t;
- end;
- ttermios = termios;
- {
- * POSIX termios functions
- * These functions get mapped into ioctls.
- }
- (* Const before type ignored *)
- function cfgetospeed(_para1:Ptermios):speed_t;cdecl;external;
- function cfsetospeed(_para1:Ptermios; _para2:speed_t):cint;cdecl;external;
- (* Const before type ignored *)
- function cfgetispeed(_para1:Ptermios):speed_t;cdecl;external;
- function cfsetispeed(_para1:Ptermios; _para2:speed_t):cint;cdecl;external;
- function tcgetattr(_para1:cint; var _para2:termios):cint;cdecl;external;
- function tcgetattr(_para1:cint; _para2:Ptermios):cint;cdecl;external;
- (* Const before type ignored *)
- function tcsetattr(_para1:cint; _para2:cint; _para3:Ptermios):cint;cdecl;external;
- (* Const before type ignored *)
- function tcsetattr(_para1:cint; _para2:cint; const _para3:termios):cint;cdecl;
- // function tcsendbreak(_para1:cint; _para2:cint):cint;cdecl;
- // function tcdrain(_para1:cint):cint;cdecl;
- // function tcflush(_para1:cint; _para2:cint):cint;cdecl;
- // function tcflow(_para1:cint; _para2:cint):cint;cdecl;
- function tcgetsid(_para1:cint):pid_t;cdecl;external;
- function tcgetsid:pid_t;cdecl;external;
- { control characters }
- const
- VINTR = 0;
- VQUIT = 1;
- VERASE = 2;
- VKILL = 3;
- VEOF = 4;
- VEOL = 5;
- const
- VEOL2 = 6;
- const
- VMIN = 4;
- VTIME = 5;
- const
- VSWTCH = 7;
- const
- VSTART = 8;
- VSTOP = 9;
- VSUSP = 10;
- const
- VDSUSP = 11;
- VREPRINT = 12;
- VDISCARD = 13;
- VWERASE = 14;
- VLNEXT = 15;
- { 16 thru 19 reserved for future use }
- {
- * control characters form Xenix termio.h
- }
- { RESERVED true EOF char (V7 compatability) }
- VCEOF = NCC;
- { RESERVED true EOL char }
- VCEOL = NCC+1;
- CNUL = 0;
- CDEL = 0177;
- { S5 default control chars }
- { CINTR, CERASE and CKILL modified to SunOS traditional values }
- CESC = '\\';
- { return type might be wrong }
- { FS, cntl | }
- const
- CQUIT = 034;
- { DEL }
- CERASE = 0177;
- { was #define dname def_expr }
- const
- CEOT = 04;
- CEOL = 0;
- CEOL2 = 0;
- { cntl d }
- CEOF = 04;
- { cntl q }
- CSTART = 021;
- { cntl s }
- CSTOP = 023;
- { cntl z }
- CSWTCH = 032;
- CNSWTCH = 0;
- {
- { was #define dname def_expr }
- function CSUSP : longint;
- { return type might be wrong }
- { was #define dname def_expr }
- function CDSUSP : longint;
- { return type might be wrong }
- { was #define dname def_expr }
- function CRPRNT : longint;
- { return type might be wrong }
- { was #define dname def_expr }
- function CFLUSH : longint;
- { return type might be wrong }
- { was #define dname def_expr }
- function CWERASE : longint;
- { return type might be wrong }
- { was #define dname def_expr }
- function CLNEXT : longint;
- { return type might be wrong }
- }
- { input modes }
- const
- IGNBRK = &0000001;
- BRKINT = &0000002;
- IGNPAR = &0000004;
- PARMRK = &0000010;
- INPCK = &0000020;
- ISTRIP = &0000040;
- INLCR = &0000100;
- IGNCR = &0000200;
- ICRNL = &0000400;
- IUCLC = &0001000;
- IXON = &0002000;
- IXANY = &0004000;
- IXOFF = &0010000;
- IMAXBEL = &0020000;
- { for 386 compatibility }
- DOSMODE = 0100000;
- { output modes }
- OPOST = &0000001;
- OLCUC = &0000002;
- ONLCR = &0000004;
- OCRNL = &0000010;
- ONOCR = &0000020;
- ONLRET = &0000040;
- OFILL = &0000100;
- OFDEL = &0000200;
- NLDLY = &0000400;
- NL0 = 0;
- NL1 = &0000400;
- CRDLY = &0003000;
- CR0 = 0;
- CR1 = &0001000;
- CR2 = &0002000;
- CR3 = &0003000;
- TABDLY = &0014000;
- TAB0 = 0;
- TAB1 = &0004000;
- TAB2 = &0010000;
- TAB3 = &0014000;
- XTABS = &0014000;
- BSDLY = &0020000;
- BS0 = 0;
- BS1 = &0020000;
- VTDLY = &0040000;
- VT0 = 0;
- VT1 = &0040000;
- FFDLY = 0100000;
- FF0 = 0;
- FF1 = 0100000;
- PAGEOUT = 0200000;
- WRAP = 0400000;
- { control modes }
- CBAUD = &0000017;
- CSIZE = &0000060;
- CS5 = 0;
- CS6 = &0000020;
- CS7 = &0000040;
- CS8 = &0000060;
- CSTOPB = &0000100;
- CREAD = &0000200;
- PARENB = &0000400;
- PARODD = &0001000;
- HUPCL = &0002000;
- CLOCAL = &0004000;
- RCV1EN = &0010000;
- XMT1EN = &0020000;
- LOBLK = &0040000;
- { *V7* exclusive use coming fron XENIX }
- XCLUDE = 0100000;
- CRTSXOFF = 010000000000;
- CRTSCTS = 020000000000;
- CIBAUD = 03600000;
- PAREXT = 04000000;
- CBAUDEXT = 010000000;
- CIBAUDEXT = 020000000;
- {
- * 4.4BSD hardware flow control flags
- }
- CRTS_IFLOW = 010000000000;
- CCTS_OFLOW = 020000000000;
- { line discipline 0 modes }
- ISIG = &0000001;
- ICANON = &0000002;
- XCASE = &0000004;
- ECHO = &0000010;
- ECHOE = &0000020;
- ECHOK = &0000040;
- ECHONL = &0000100;
- NOFLSH = &0000200;
- TOSTOP = &0000400;
- ECHOCTL = &0001000;
- ECHOPRT = &0002000;
- ECHOKE = &0004000;
- DEFECHO = &0010000;
- FLUSHO = &0020000;
- PENDIN = &0040000;
- { POSIX flag - enable POSIX extensions }
- IEXTEN = &0100000;
- _TIOC = ord('T') shl 8;
- TIOC = _TIOC;
- TCGETA = _TIOC or 1;
- TCSETA = _TIOC or 2;
- TCSETAW = _TIOC or 3;
- TCSETAF = _TIOC or 4;
- TCSBRK = _TIOC or 5;
- TCXONC = _TIOC or 6;
- TCFLSH = _TIOC or 7;
- { Slots reserved for 386/XENIX compatibility - keyboard control }
- TIOCKBON = _TIOC or 8;
- TIOCKBOF = _TIOC or 9;
- KBENABLED = _TIOC or 10;
- IOCTYPE = $ff00;
- TCDSET = _TIOC or 32;
- { 386 - "RTS" toggle define 8A1 protocol }
- RTS_TOG = _TIOC or 33;
- TIOCGWINSZ = _TIOC or 104;
- TIOCSWINSZ = _TIOC or 103;
- {
- * Softcarrier ioctls
- }
- TIOCGSOFTCAR = _TIOC or 105;
- TIOCSSOFTCAR = _TIOC or 106;
- { termios ioctls }
- TCGETS = _TIOC or 13;
- TCSETS = _TIOC or 14;
- { same as TCSETS }
- TCSANOW = _TIOC or 14;
- TCSETSW = _TIOC or 15;
- { same as TCSETSW }
- TCSADRAIN = _TIOC or 15;
- TCSETSF = _TIOC or 16;
- {
- * NTP PPS ioctls
- }
- TIOCGPPS = _TIOC or 125;
- TIOCSPPS = _TIOC or 126;
- TIOCGPPSEV = _TIOC or 127;
- { Argument filled in by TIOCGPPSEV }
- type
- ppsclockev = record
- tv : timeval;
- serial : cuint;
- end;
- ppsclockev32 = record
- tv : timeval32;
- serial : cuint32;
- end;
- { same as TCSETSF }
- const
- TCSAFLUSH = _TIOC or 16;
- { termios option flags }
- { flush data received but not read }
- TCIFLUSH = 0;
- { flush data written but not transmitted }
- TCOFLUSH = 1;
- { flush both data both input and output queues }
- TCIOFLUSH = 2;
- { suspend output }
- TCOOFF = 0;
- { restart suspended output }
- TCOON = 1;
- { suspend input }
- TCIOFF = 2;
- { restart suspended input }
- TCION = 3;
- { Slots for 386/XENIX compatibility }
- { BSD includes these ioctls in ttold.h }
- const
- TIOCGETD = tIOC or 0;
- TIOCSETD = tIOC or 1;
- TIOCHPCL = tIOC or 2;
- TIOCGETP = tIOC or 8;
- TIOCSETP = tIOC or 9;
- TIOCSETN = tIOC or 10;
- TIOCEXCL = tIOC or 13;
- TIOCNXCL = tIOC or 14;
- TIOCFLUSH = tIOC or 16;
- TIOCSETC = tIOC or 17;
- TIOCGETC = tIOC or 18;
- {
- * BSD ioctls that are not the same as XENIX are included here.
- * There are also some relevant ioctls from SUN/BSD sys/ttycom.h
- * BSD pty ioctls like TIOCPKT are not supported in SVR4.
- }
- { bis local mode bits }
- TIOCLBIS = tIOC or 127;
- { bic local mode bits }
- TIOCLBIC = tIOC or 126;
- { set entire local mode word }
- TIOCLSET = tIOC or 125;
- { get local modes }
- TIOCLGET = tIOC or 124;
- { set break bit }
- TIOCSBRK = tIOC or 123;
- { clear break bit }
- TIOCCBRK = tIOC or 122;
- { set data terminal ready }
- TIOCSDTR = tIOC or 121;
- { clear data terminal ready }
- TIOCCDTR = tIOC or 120;
- { set local special chars }
- TIOCSLTC = tIOC or 117;
- { get local special chars }
- TIOCGLTC = tIOC or 116;
- { driver output queue size }
- TIOCOUTQ = tIOC or 115;
- { void tty association }
- TIOCNOTTY = tIOC or 113;
- { stop output, like ^S }
- TIOCSTOP = tIOC or 111;
- { start output, like ^Q }
- TIOCSTART = tIOC or 110;
- { private to Sun; do not use }
- TIOCSILOOP = tIOC or 109;
- { end _SYS_TTOLD_H }
- { POSIX job control ioctls }
- { get pgrp of tty }
- const
- TIOCGPGRP = tIOC or 20;
- { set pgrp of tty }
- TIOCSPGRP = tIOC or 21;
- { get session id on ctty }
- TIOCGSID = tIOC or 22;
- { Miscellaneous }
- { simulate terminal input }
- TIOCSTI = tIOC or 23;
- { Modem control }
- { set all modem bits }
- TIOCMSET = tIOC or 26;
- { bis modem bits }
- TIOCMBIS = tIOC or 27;
- { bic modem bits }
- TIOCMBIC = tIOC or 28;
- { get all modem bits }
- TIOCMGET = tIOC or 29;
- { line enable }
- TIOCM_LE = &0001;
- { data terminal ready }
- TIOCM_DTR = &0002;
- { request to send }
- TIOCM_RTS = &0004;
- { secondary transmit }
- TIOCM_ST = &0010;
- { secondary receive }
- TIOCM_SR = &0020;
- { clear to send }
- TIOCM_CTS = &0040;
- { carrier detect }
- TIOCM_CAR = &0100;
- TIOCM_CD = TIOCM_CAR;
- { ring }
- TIOCM_RNG = &0200;
- TIOCM_RI = TIOCM_RNG;
- { data set ready }
- TIOCM_DSR = &0400;
- { pseudo-tty }
- { remote input editing }
- TIOCREMOTE = tIOC or 30;
- { pty: send signal to slave }
- TIOCSIGNAL = tIOC or 31;
- { Some more 386 xenix stuff }
- LDIOC = ord('D') shl 8;
- LDOPEN = LDIOC or 0;
- LDCLOSE = LDIOC or 1;
- LDCHG = LDIOC or 2;
- LDGETT = LDIOC or 8;
- LDSETT = LDIOC or 9;
- { Slots for 386 compatibility }
- LDSMAP = LDIOC or 110;
- LDGMAP = LDIOC or 111;
- LDNMAP = LDIOC or 112;
- LDEMAP = LDIOC or 113;
- LDDMAP = LDIOC or 114;
- {
- * These are retained for 386/XENIX compatibility.
- }
- DIOC = ord('d') shl 8;
- { V7 }
- DIOCGETP = DIOC or 8;
- { V7 }
- DIOCSETP = DIOC or 9;
- {
- * Returns a non-zero value if there
- * are characters in the input queue.
- *
- * XXX - somebody is confused here. V7 had no such "ioctl", although XENIX may
- * have added it; 4BSD had FIONREAD, which returned the number of characters
- * waiting, and was supposed to work on all descriptors (i.e., every driver
- * should make a stab at implementing it).
- }
- { V7 }
- FIORDCHK = (ord('f') shl 8) or 3;
- {
- * Speeds
- }
- { parameter length, at most 255 bytes }
- IOCPARM_MASK = $ff;
- { max size of ioctl args }
- IOCPARM_MAX = IOCPARM_MASK + 1;
- { no parameters }
- IOC_VOID = culong($20000000);
- { copy parameters out }
- IOC_OUT = culong($40000000);
- { copy parameters in }
- IOC_IN = culong($80000000);
- { copy paramters in and out }
- IOC_INOUT = (IOC_IN or IOC_OUT);
- { mask for IN/OUT/VOID }
- IOC_DIRMASK = culong($e0000000);
- FIOCLEX = (IOC_VOID or (0 and IOCPARM_MASK) << 16) or ((ord('f') << 8) or 1);
- FIONCLEX = (IOC_VOID or (0 and IOCPARM_MASK) << 16) or ((ord('f') << 8) or 2);
- FIONREAD = (IOC_OUT or (sizeof(cint) and IOCPARM_MASK) << 16) or ((ord('f') << 8) or 127);
- FIONBIO = (IOC_IN or (sizeof(cint) and IOCPARM_MASK) << 16) or ((ord('f') << 8) or 126);
- FIOASYNC = (IOC_IN or (sizeof(cint) and IOCPARM_MASK) << 16) or ((ord('f') << 8) or 125);
- FIOSETOWN = (IOC_IN or (sizeof(cint) and IOCPARM_MASK) << 16) or ((ord('f') << 8) or 124);
- FIOGETOWN = (IOC_OUT or (sizeof(cint) and IOCPARM_MASK) << 16) or ((ord('f') << 8) or 123);
- FIODTYPE = (IOC_OUT or (sizeof(cint) and IOCPARM_MASK) << 16) or ((ord('f') << 8) or 122);
-
- const
- B0 = 0;
- B50 = 1;
- B75 = 2;
- B110 = 3;
- B134 = 4;
- B150 = 5;
- B200 = 6;
- B300 = 7;
- B600 = 8;
- B1200 = 9;
- B1800 = 10;
- B2400 = 11;
- B4800 = 12;
- B9600 = 13;
- B19200 = 14;
- B38400 = 15;
- B57600 = 16;
- B76800 = 17;
- B115200 = 18;
- B153600 = 19;
- B230400 = 20;
- B307200 = 21;
- B460800 = 22;
- { Windowing structure to support JWINSIZE/TIOCSWINSZ/TIOCGWINSZ }
- { rows, in characters }
- { columns, in character }
- { horizontal size, pixels }
- { vertical size, pixels }
- type
- winsize = record
- ws_row : word;
- ws_col : word;
- ws_xpixel : word;
- ws_ypixel : word;
- end;
- twinsize = winsize;
- pwinsize = ^twinsize;
- const
- { alias for FPC rtl }
- TIOCGETA = _TIOC or 1;
- TIOCSETA = _TIOC or 2;
- TIOCSETAW = _TIOC or 3;
- TIOCSETAF = _TIOC or 4;
- { same as TCSETSW }
- TIOCDRAIN = _TIOC or 15;
|