| #include <termios.h> |
| #define T(t) (t*)0; |
| #define F(t,n) {t *y = &x.n;} |
| #define C(n) switch(n){case n:;} |
| static void f() |
| { |
| T(cc_t) |
| T(speed_t) |
| T(tcflag_t) |
| T(pid_t) |
| { |
| struct termios x; |
| F(tcflag_t,c_iflag) |
| F(tcflag_t,c_oflag) |
| F(tcflag_t,c_cflag) |
| F(tcflag_t,c_lflag) |
| F(cc_t,c_cc[NCCS]) |
| } |
| C(NCCS) |
| C(VEOF) |
| C(VEOL) |
| C(VERASE) |
| C(VINTR) |
| C(VKILL) |
| C(VMIN) |
| C(VQUIT) |
| C(VSTART) |
| C(VSTOP) |
| C(VSUSP) |
| C(VTIME) |
| C(BRKINT) |
| C(ICRNL) |
| C(IGNBRK) |
| C(IGNCR) |
| C(IGNPAR) |
| C(INLCR) |
| C(INPCK) |
| C(ISTRIP) |
| C(IXANY) |
| C(IXOFF) |
| C(IXON) |
| C(PARMRK) |
| C(OPOST) |
| #ifdef _XOPEN_SOURCE |
| C(ONLCR) |
| C(OCRNL) |
| C(ONOCR) |
| C(ONLRET) |
| C(OFDEL) |
| C(OFILL) |
| C(NLDLY) |
| C(NL0) |
| C(NL1) |
| C(CRDLY) |
| C(CR0) |
| C(CR1) |
| C(CR2) |
| C(CR3) |
| C(TABDLY) |
| C(TAB0) |
| C(TAB1) |
| C(TAB2) |
| C(TAB3) |
| C(BSDLY) |
| C(BS0) |
| C(BS1) |
| C(VTDLY) |
| C(VT0) |
| C(VT1) |
| C(FFDLY) |
| C(FF0) |
| C(FF1) |
| #endif |
| C(B0) |
| C(B50) |
| C(B75) |
| C(B110) |
| C(B134) |
| C(B150) |
| C(B200) |
| C(B300) |
| C(B600) |
| C(B1200) |
| C(B1800) |
| C(B2400) |
| C(B4800) |
| C(B9600) |
| C(B19200) |
| C(B38400) |
| C(CSIZE) |
| C(CS5) |
| C(CS6) |
| C(CS7) |
| C(CS8) |
| C(CSTOPB) |
| C(CREAD) |
| C(PARENB) |
| C(PARODD) |
| C(HUPCL) |
| C(CLOCAL) |
| C(ECHO) |
| C(ECHOE) |
| C(ECHOK) |
| C(ECHONL) |
| C(ICANON) |
| C(IEXTEN) |
| C(ISIG) |
| C(NOFLSH) |
| C(TOSTOP) |
| C(TCSANOW) |
| C(TCSADRAIN) |
| C(TCSAFLUSH) |
| C(TCIFLUSH) |
| C(TCIOFLUSH) |
| C(TCOFLUSH) |
| C(TCIOFF) |
| C(TCION) |
| C(TCOOFF) |
| C(TCOON) |
| {speed_t(*p)(const struct termios*) = cfgetispeed;} |
| {speed_t(*p)(const struct termios*) = cfgetospeed;} |
| {int(*p)(struct termios*,speed_t) = cfsetispeed;} |
| {int(*p)(struct termios*,speed_t) = cfsetospeed;} |
| {int(*p)(int) = tcdrain;} |
| {int(*p)(int,int) = tcflow;} |
| {int(*p)(int,int) = tcflush;} |
| {int(*p)(int,struct termios*) = tcgetattr;} |
| {pid_t(*p)(int) = tcgetsid;} |
| {int(*p)(int,int) = tcsendbreak;} |
| {int(*p)(int,int,const struct termios*) = tcsetattr;} |
| } |