13e12c5d1SDavid du Colombier #pragma lib "/$M/lib/ape/libap.a" 23e12c5d1SDavid du Colombier /* input modes */ 33e12c5d1SDavid du Colombier #define BRKINT 0x001 43e12c5d1SDavid du Colombier #define ICRNL 0x002 53e12c5d1SDavid du Colombier #define IGNBRK 0x004 63e12c5d1SDavid du Colombier #define IGNCR 0x008 73e12c5d1SDavid du Colombier #define IGNPAR 0x010 83e12c5d1SDavid du Colombier #define INLCR 0x020 93e12c5d1SDavid du Colombier #define INPCK 0x040 103e12c5d1SDavid du Colombier #define ISTRIP 0x080 113e12c5d1SDavid du Colombier #define IXOFF 0x100 123e12c5d1SDavid du Colombier #define IXON 0x200 133e12c5d1SDavid du Colombier #define PARMRK 0x400 143e12c5d1SDavid du Colombier 15*219b2ee8SDavid du Colombier /* output modes: ONLCR, TAB3 are an extension to POSIX! */ 16*219b2ee8SDavid du Colombier #define OPOST 0000001 17*219b2ee8SDavid du Colombier #define OLCUC 0000002 18*219b2ee8SDavid du Colombier #define ONLCR 0000004 19*219b2ee8SDavid du Colombier #define OCRNL 0000010 20*219b2ee8SDavid du Colombier #define ONOCR 0000020 21*219b2ee8SDavid du Colombier #define ONLRET 0000040 22*219b2ee8SDavid du Colombier #define OFILL 0000100 23*219b2ee8SDavid du Colombier #define OFDEL 0000200 24*219b2ee8SDavid du Colombier #define NLDLY 0000400 25*219b2ee8SDavid du Colombier #define NL0 0 26*219b2ee8SDavid du Colombier #define NL1 0000400 27*219b2ee8SDavid du Colombier #define CRDLY 0003000 28*219b2ee8SDavid du Colombier #define CR0 0 29*219b2ee8SDavid du Colombier #define CR1 0001000 30*219b2ee8SDavid du Colombier #define CR2 0002000 31*219b2ee8SDavid du Colombier #define CR3 0003000 32*219b2ee8SDavid du Colombier #define TABDLY 0014000 33*219b2ee8SDavid du Colombier #define TAB0 0 34*219b2ee8SDavid du Colombier #define TAB1 0004000 35*219b2ee8SDavid du Colombier #define TAB2 0010000 36*219b2ee8SDavid du Colombier #define TAB3 0014000 37*219b2ee8SDavid du Colombier #define BSDLY 0020000 38*219b2ee8SDavid du Colombier #define BS0 0 39*219b2ee8SDavid du Colombier #define BS1 0020000 40*219b2ee8SDavid du Colombier #define VTDLY 0040000 41*219b2ee8SDavid du Colombier #define VT0 0 42*219b2ee8SDavid du Colombier #define VT1 0040000 43*219b2ee8SDavid du Colombier #define FFDLY 0100000 44*219b2ee8SDavid du Colombier #define FF0 0 45*219b2ee8SDavid du Colombier #define FF1 0100000 463e12c5d1SDavid du Colombier 473e12c5d1SDavid du Colombier /* control modes */ 483e12c5d1SDavid du Colombier #define CLOCAL 0x001 493e12c5d1SDavid du Colombier #define CREAD 0x002 503e12c5d1SDavid du Colombier #define CSIZE 0x01C 513e12c5d1SDavid du Colombier #define CS5 0x004 523e12c5d1SDavid du Colombier #define CS6 0x008 533e12c5d1SDavid du Colombier #define CS7 0x00C 543e12c5d1SDavid du Colombier #define CS8 0x010 553e12c5d1SDavid du Colombier #define CSTOPB 0x020 563e12c5d1SDavid du Colombier #define HUPCL 0x040 573e12c5d1SDavid du Colombier #define PARENB 0x080 583e12c5d1SDavid du Colombier #define PARODD 0x100 593e12c5d1SDavid du Colombier 603e12c5d1SDavid du Colombier /* local modes */ 613e12c5d1SDavid du Colombier #define ECHO 0x001 623e12c5d1SDavid du Colombier #define ECHOE 0x002 633e12c5d1SDavid du Colombier #define ECHOK 0x004 643e12c5d1SDavid du Colombier #define ECHONL 0x008 653e12c5d1SDavid du Colombier #define ICANON 0x010 663e12c5d1SDavid du Colombier #define IEXTEN 0x020 673e12c5d1SDavid du Colombier #define ISIG 0x040 683e12c5d1SDavid du Colombier #define NOFLSH 0x080 693e12c5d1SDavid du Colombier #define TOSTOP 0x100 703e12c5d1SDavid du Colombier 713e12c5d1SDavid du Colombier /* control characters */ 723e12c5d1SDavid du Colombier #define VEOF 0 733e12c5d1SDavid du Colombier #define VEOL 1 743e12c5d1SDavid du Colombier #define VERASE 2 753e12c5d1SDavid du Colombier #define VINTR 3 763e12c5d1SDavid du Colombier #define VKILL 4 773e12c5d1SDavid du Colombier #define VMIN 5 783e12c5d1SDavid du Colombier #define VQUIT 6 793e12c5d1SDavid du Colombier #define VSUSP 7 803e12c5d1SDavid du Colombier #define VTIME 8 813e12c5d1SDavid du Colombier #define VSTART 9 823e12c5d1SDavid du Colombier #define VSTOP 10 833e12c5d1SDavid du Colombier #define NCCS 11 843e12c5d1SDavid du Colombier 853e12c5d1SDavid du Colombier /* baud rates */ 863e12c5d1SDavid du Colombier #define B0 0 873e12c5d1SDavid du Colombier #define B50 1 883e12c5d1SDavid du Colombier #define B75 2 893e12c5d1SDavid du Colombier #define B110 3 903e12c5d1SDavid du Colombier #define B134 4 913e12c5d1SDavid du Colombier #define B150 5 923e12c5d1SDavid du Colombier #define B200 6 933e12c5d1SDavid du Colombier #define B300 7 943e12c5d1SDavid du Colombier #define B600 8 953e12c5d1SDavid du Colombier #define B1200 9 963e12c5d1SDavid du Colombier #define B1800 10 973e12c5d1SDavid du Colombier #define B2400 11 983e12c5d1SDavid du Colombier #define B4800 12 993e12c5d1SDavid du Colombier #define B9600 13 1003e12c5d1SDavid du Colombier #define B19200 14 1013e12c5d1SDavid du Colombier #define B38400 15 1023e12c5d1SDavid du Colombier 1033e12c5d1SDavid du Colombier /* optional actions for tcsetattr */ 1043e12c5d1SDavid du Colombier #define TCSANOW 1 1053e12c5d1SDavid du Colombier #define TCSADRAIN 2 1063e12c5d1SDavid du Colombier #define TCSAFLUSH 3 1073e12c5d1SDavid du Colombier 1083e12c5d1SDavid du Colombier typedef unsigned long tcflag_t; 1093e12c5d1SDavid du Colombier typedef unsigned long speed_t; 1103e12c5d1SDavid du Colombier typedef unsigned char cc_t; 1113e12c5d1SDavid du Colombier 1123e12c5d1SDavid du Colombier struct termios { 1133e12c5d1SDavid du Colombier tcflag_t c_iflag; /* input modes */ 1143e12c5d1SDavid du Colombier tcflag_t c_oflag; /* output modes */ 1153e12c5d1SDavid du Colombier tcflag_t c_cflag; /* control modes */ 1163e12c5d1SDavid du Colombier tcflag_t c_lflag; /* local modes */ 1173e12c5d1SDavid du Colombier cc_t c_cc[NCCS]; /* control characters */ 1183e12c5d1SDavid du Colombier }; 1193e12c5d1SDavid du Colombier 1203e12c5d1SDavid du Colombier extern speed_t cfgetospeed(const struct termios *); 1213e12c5d1SDavid du Colombier extern int cfsetospeed(struct termios *, speed_t); 1223e12c5d1SDavid du Colombier extern speed_t cfgetispeed(const struct termios *); 1233e12c5d1SDavid du Colombier extern int cfsetispeed(struct termios *, speed_t); 1243e12c5d1SDavid du Colombier extern int tcgetattr(int, struct termios *); 1253e12c5d1SDavid du Colombier extern int tcsetattr(int, int, const struct termios *); 126*219b2ee8SDavid du Colombier #ifdef __TYPES_H 127*219b2ee8SDavid du Colombier extern pid_t tcgetpgrp(int); 128*219b2ee8SDavid du Colombier extern int tcsetpgrp(int, pid_t); 129*219b2ee8SDavid du Colombier #endif 1303e12c5d1SDavid du Colombier extern int tcdrain(int); 1313e12c5d1SDavid du Colombier extern int tcflush(int, int); 1323e12c5d1SDavid du Colombier extern int tcflow(int, int); 133