text: /* $Id: termbits.h,v 1.1 2000/07/10 16:32:31 bjornw Exp $ */
  
  #ifndef __ARCH_ETRAX100_TERMBITS_H__
  #define __ARCH_ETRAX100_TERMBITS_H__
  
  #include <linux/posix_types.h>
  
  typedef unsigned char	cc_t;
  typedef unsigned int	speed_t;
  typedef unsigned int	tcflag_t;
  
  #define NCCS 19
  struct termios {
  	tcflag_t c_iflag;		/* input mode flags */
  	tcflag_t c_oflag;		/* output mode flags */
  	tcflag_t c_cflag;		/* control mode flags */
  	tcflag_t c_lflag;		/* local mode flags */
  	cc_t c_line;			/* line discipline */
  	cc_t c_cc[NCCS];		/* control characters */
  };
  
  struct termios2 {
  	tcflag_t c_iflag;		/* input mode flags */
  	tcflag_t c_oflag;		/* output mode flags */
  	tcflag_t c_cflag;		/* control mode flags */
  	tcflag_t c_lflag;		/* local mode flags */
  	cc_t c_line;			/* line discipline */
  	cc_t c_cc[NCCS];		/* control characters */
  	speed_t c_ispeed;		/* input speed */
  	speed_t c_ospeed;		/* output speed */
  };
  
  struct ktermios {
  	tcflag_t c_iflag;		/* input mode flags */
  	tcflag_t c_oflag;		/* output mode flags */
  	tcflag_t c_cflag;		/* control mode flags */
  	tcflag_t c_lflag;		/* local mode flags */
  	cc_t c_line;			/* line discipline */
  	cc_t c_cc[NCCS];		/* control characters */
  	speed_t c_ispeed;		/* input speed */
  	speed_t c_ospeed;		/* output speed */
  };
  
  /* c_cc characters */
  #define VINTR 0
  #define VQUIT 1
  #define VERASE 2
  #define VKILL 3
  #define VEOF 4
  #define VTIME 5
  #define VMIN 6
  #define VSWTC 7
  #define VSTART 8
  #define VSTOP 9
  #define VSUSP 10
  #define VEOL 11
  #define VREPRINT 12
  #define VDISCARD 13
  #define VWERASE 14
  #define VLNEXT 15
  #define VEOL2 16
  
  /* c_iflag bits */
  #define IGNBRK	0000001
  #define BRKINT	0000002
  #define IGNPAR	0000004
  #define PARMRK	0000010
  #define INPCK	0000020
  #define ISTRIP	0000040
  #define INLCR	0000100
  #define IGNCR	0000200
  #define ICRNL	0000400
  #define IUCLC	0001000
  #define IXON	0002000
  #define IXANY	0004000
  #define IXOFF	0010000
  #define IMAXBEL	0020000
  #define IUTF8	0040000
  
  /* c_oflag bits */
  #define OPOST	0000001
  #define OLCUC	0000002
  #define ONLCR	0000004
  #define OCRNL	0000010
  #define ONOCR	0000020
  #define ONLRET	0000040
  #define OFILL	0000100
  #define OFDEL	0000200
  #define NLDLY	0000400
  #define   NL0	0000000
  #define   NL1	0000400
  #define CRDLY	0003000
  #define   CR0	0000000
  #define   CR1	0001000
  #define   CR2	0002000
  #define   CR3	0003000
  #define TABDLY	0014000
  #define   TAB0	0000000
  #define   TAB1	0004000
  #define   TAB2	0010000
  #define   TAB3	0014000
  #define   XTABS	0014000
  #define BSDLY	0020000
  #define   BS0	0000000
  #define   BS1	0020000
  #define VTDLY	0040000
  #define   VT0	0000000
  #define   VT1	0040000
  #define FFDLY	0100000
  #define   FF0	0000000
  #define   FF1	0100000
  
  /* c_cflag bit meaning */
  /*
   *     3             2            1
   *    10 987 654 321 098 765 432 109 876 543 210
   *                             |           | ||| CBAUD
   *                                         obaud    
   *
   *                                       ||CSIZE
   *
   *                                     |CSTOP
   *                                    |CREAD
   *                                   |CPARENB
   *
   *                                 |CPARODD 
   *                                |HUPCL
   *                               |CLOCAL
   *                             |CBAUDEX
   *    10 987 654 321 098 765 432 109 876 543 210
   *        |           || ||   CIBAUD, IBSHIFT=16
   *                    ibaud
   *     |CMSPAR
   *    | CRTSCTS
   *       x x xxx xxx x     x xx Free bits
   */
  
  #define CBAUD	0010017
  #define  B0	0000000		/* hang up */
  #define  B50	0000001
  #define  B75	0000002
  #define  B110	0000003
  #define  B134	0000004
  #define  B150	0000005
  #define  B200	0000006
  #define  B300	0000007
  #define  B600	0000010
  #define  B1200	0000011
  #define  B1800	0000012
  #define  B2400	0000013
  #define  B4800	0000014
  #define  B9600	0000015
  #define  B19200	0000016
  #define  B38400	0000017
  #define EXTA B19200
  #define EXTB B38400
  #define CSIZE	0000060
  #define   CS5	0000000
  #define   CS6	0000020
  #define   CS7	0000040
  #define   CS8	0000060
  #define CSTOPB	0000100
  #define CREAD	0000200
  #define PARENB	0000400
  #define PARODD	0001000
  #define HUPCL	0002000
  #define CLOCAL	0004000
  #define CBAUDEX 0010000
  #define  BOTHER  0010000
  #define  B57600  0010001
  #define  B115200 0010002
  #define  B230400 0010003
  #define  B460800 0010004
  
  /* Unsupported rates, but needed to avoid compile error. */
  #define   B500000 0010005
  #define   B576000 0010006
  #define  B1000000 0010010
  #define  B1152000 0010011
  #define  B1500000 0010012
  #define  B2000000 0010013
  #define  B2500000 0010014
  #define  B3000000 0010015
  #define  B3500000 0010016
  #define  B4000000 0010017
  
  /* etrax supports these additional three baud rates */
  #define  B921600   0010005
  #define  B1843200  0010006
  #define  B6250000  0010007
  /* ETRAX FS supports this as well */
  #define  B12500000 0010010
  #define CIBAUD	  002003600000	/* input baud rate (used in v32) */
  /* The values for CIBAUD bits are the same as the values for CBAUD and CBAUDEX
   * shifted left IBSHIFT bits.
   */
  #define IBSHIFT   16
  #define CMSPAR    010000000000 /* mark or space (stick) parity - PARODD=space*/
  #define CRTSCTS	  020000000000		/* flow control */
  
  /* c_lflag bits */
  #define ISIG	0000001
  #define ICANON	0000002
  #define XCASE	0000004
  #define ECHO	0000010
  #define ECHOE	0000020
  #define ECHOK	0000040
  #define ECHONL	0000100
  #define NOFLSH	0000200
  #define TOSTOP	0000400
  #define ECHOCTL	0001000
  #define ECHOPRT	0002000
  #define ECHOKE	0004000
  #define FLUSHO	0010000
  #define PENDIN	0040000
  #define IEXTEN	0100000
  
  /* tcflow() and TCXONC use these */
  #define	TCOOFF		0
  #define	TCOON		1
  #define	TCIOFF		2
  #define	TCION		3
  
  /* tcflush() and TCFLSH use these */
  #define	TCIFLUSH	0
  #define	TCOFLUSH	1
  #define	TCIOFLUSH	2
  
  /* tcsetattr uses these */
  #define	TCSANOW		0
  #define	TCSADRAIN	1
  #define	TCSAFLUSH	2
  
  #endif
  