1*219b2ee8SDavid du Colombier /* input modes */ 2*219b2ee8SDavid du Colombier #define BRKINT 0x001 3*219b2ee8SDavid du Colombier #define ICRNL 0x002 4*219b2ee8SDavid du Colombier #define IGNBRK 0x004 5*219b2ee8SDavid du Colombier #define IGNCR 0x008 6*219b2ee8SDavid du Colombier #define IGNPAR 0x010 7*219b2ee8SDavid du Colombier #define INLCR 0x020 8*219b2ee8SDavid du Colombier #define INPCK 0x040 9*219b2ee8SDavid du Colombier #define ISTRIP 0x080 10*219b2ee8SDavid du Colombier #define IXOFF 0x100 11*219b2ee8SDavid du Colombier #define IXON 0x200 12*219b2ee8SDavid du Colombier #define PARMRK 0x400 13*219b2ee8SDavid du Colombier 14*219b2ee8SDavid du Colombier /* output modes */ 15*219b2ee8SDavid du Colombier #define OPOST 0000001 16*219b2ee8SDavid du Colombier #define OLCUC 0000002 17*219b2ee8SDavid du Colombier #define ONLCR 0000004 18*219b2ee8SDavid du Colombier #define OCRNL 0000010 19*219b2ee8SDavid du Colombier #define ONOCR 0000020 20*219b2ee8SDavid du Colombier #define ONLRET 0000040 21*219b2ee8SDavid du Colombier #define OFILL 0000100 22*219b2ee8SDavid du Colombier #define OFDEL 0000200 23*219b2ee8SDavid du Colombier #define NLDLY 0000400 24*219b2ee8SDavid du Colombier #define NL0 0 25*219b2ee8SDavid du Colombier #define NL1 0000400 26*219b2ee8SDavid du Colombier #define CRDLY 0003000 27*219b2ee8SDavid du Colombier #define CR0 0 28*219b2ee8SDavid du Colombier #define CR1 0001000 29*219b2ee8SDavid du Colombier #define CR2 0002000 30*219b2ee8SDavid du Colombier #define CR3 0003000 31*219b2ee8SDavid du Colombier #define TABDLY 0014000 32*219b2ee8SDavid du Colombier #define TAB0 0 33*219b2ee8SDavid du Colombier #define TAB1 0004000 34*219b2ee8SDavid du Colombier #define TAB2 0010000 35*219b2ee8SDavid du Colombier #define TAB3 0014000 36*219b2ee8SDavid du Colombier #define BSDLY 0020000 37*219b2ee8SDavid du Colombier #define BS0 0 38*219b2ee8SDavid du Colombier #define BS1 0020000 39*219b2ee8SDavid du Colombier #define VTDLY 0040000 40*219b2ee8SDavid du Colombier #define VT0 0 41*219b2ee8SDavid du Colombier #define VT1 0040000 42*219b2ee8SDavid du Colombier #define FFDLY 0100000 43*219b2ee8SDavid du Colombier #define FF0 0 44*219b2ee8SDavid du Colombier #define FF1 0100000 45*219b2ee8SDavid du Colombier 46*219b2ee8SDavid du Colombier /* control modes */ 47*219b2ee8SDavid du Colombier #define CLOCAL 0x001 48*219b2ee8SDavid du Colombier #define CREAD 0x002 49*219b2ee8SDavid du Colombier #define CSIZE 0x01C 50*219b2ee8SDavid du Colombier #define CS5 0x004 51*219b2ee8SDavid du Colombier #define CS6 0x008 52*219b2ee8SDavid du Colombier #define CS7 0x00C 53*219b2ee8SDavid du Colombier #define CS8 0x010 54*219b2ee8SDavid du Colombier #define CSTOPB 0x020 55*219b2ee8SDavid du Colombier #define HUPCL 0x040 56*219b2ee8SDavid du Colombier #define PARENB 0x080 57*219b2ee8SDavid du Colombier #define PARODD 0x100 58*219b2ee8SDavid du Colombier 59*219b2ee8SDavid du Colombier /* local modes */ 60*219b2ee8SDavid du Colombier #define ECHO 0x001 61*219b2ee8SDavid du Colombier #define ECHOE 0x002 62*219b2ee8SDavid du Colombier #define ECHOK 0x004 63*219b2ee8SDavid du Colombier #define ECHONL 0x008 64*219b2ee8SDavid du Colombier #define ICANON 0x010 65*219b2ee8SDavid du Colombier #define IEXTEN 0x020 66*219b2ee8SDavid du Colombier #define ISIG 0x040 67*219b2ee8SDavid du Colombier #define NOFLSH 0x080 68*219b2ee8SDavid du Colombier #define TOSTOP 0x100 69*219b2ee8SDavid du Colombier 70*219b2ee8SDavid du Colombier /* control characters */ 71*219b2ee8SDavid du Colombier #define VEOF 0 72*219b2ee8SDavid du Colombier #define VEOL 1 73*219b2ee8SDavid du Colombier #define VERASE 2 74*219b2ee8SDavid du Colombier #define VINTR 3 75*219b2ee8SDavid du Colombier #define VKILL 4 76*219b2ee8SDavid du Colombier #define VMIN 5 77*219b2ee8SDavid du Colombier #define VQUIT 6 78*219b2ee8SDavid du Colombier #define VSUSP 7 79*219b2ee8SDavid du Colombier #define VTIME 8 80*219b2ee8SDavid du Colombier #define VSTART 9 81*219b2ee8SDavid du Colombier #define VSTOP 10 82*219b2ee8SDavid du Colombier #define NCCS 11 83*219b2ee8SDavid du Colombier 84*219b2ee8SDavid du Colombier /* baud rates */ 85*219b2ee8SDavid du Colombier #define B0 0 86*219b2ee8SDavid du Colombier #define B50 1 87*219b2ee8SDavid du Colombier #define B75 2 88*219b2ee8SDavid du Colombier #define B110 3 89*219b2ee8SDavid du Colombier #define B134 4 90*219b2ee8SDavid du Colombier #define B150 5 91*219b2ee8SDavid du Colombier #define B200 6 92*219b2ee8SDavid du Colombier #define B300 7 93*219b2ee8SDavid du Colombier #define B600 8 94*219b2ee8SDavid du Colombier #define B1200 9 95*219b2ee8SDavid du Colombier #define B1800 10 96*219b2ee8SDavid du Colombier #define B2400 11 97*219b2ee8SDavid du Colombier #define B4800 12 98*219b2ee8SDavid du Colombier #define B9600 13 99*219b2ee8SDavid du Colombier #define B19200 14 100*219b2ee8SDavid du Colombier #define B38400 15 101*219b2ee8SDavid du Colombier 102*219b2ee8SDavid du Colombier #define CESC '\\' 103*219b2ee8SDavid du Colombier #define CINTR 0177 /* DEL */ 104*219b2ee8SDavid du Colombier #define CQUIT 034 /* FS, cntl | */ 105*219b2ee8SDavid du Colombier #define CERASE 010 /* BS */ 106*219b2ee8SDavid du Colombier #define CKILL 025 /* cntl u */ 107*219b2ee8SDavid du Colombier #define CEOF 04 /* cntl d */ 108*219b2ee8SDavid du Colombier #define CSTART 021 /* cntl q */ 109*219b2ee8SDavid du Colombier #define CSTOP 023 /* cntl s */ 110*219b2ee8SDavid du Colombier #define CSWTCH 032 /* cntl z */ 111*219b2ee8SDavid du Colombier #define CEOL 000 112*219b2ee8SDavid du Colombier #define CNSWTCH 0 113*219b2ee8SDavid du Colombier 114*219b2ee8SDavid du Colombier /* optional actions for tcsetattr */ 115*219b2ee8SDavid du Colombier #define TCSANOW 1 116*219b2ee8SDavid du Colombier #define TCSADRAIN 2 117*219b2ee8SDavid du Colombier #define TCSAFLUSH 3 118*219b2ee8SDavid du Colombier 119*219b2ee8SDavid du Colombier typedef struct Termios Termios; 120*219b2ee8SDavid du Colombier struct Termios 121*219b2ee8SDavid du Colombier { 122*219b2ee8SDavid du Colombier int iflag; /* input modes */ 123*219b2ee8SDavid du Colombier int oflag; /* output modes */ 124*219b2ee8SDavid du Colombier int cflag; /* control modes */ 125*219b2ee8SDavid du Colombier int lflag; /* local modes */ 126*219b2ee8SDavid du Colombier uchar cc[NCCS]; /* control characters */ 127*219b2ee8SDavid du Colombier }; 128