diff packages/isoinfra/current/include/termios.h @ 115:6ed91473a1cd ecos-sw-2000-08-21

Merge from eCos master repository on 2000-08-21-22:40:54-BST
author jlarmour
date Fri, 25 Aug 2000 17:32:38 +0000
parents
children e0c0827131d1
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/isoinfra/current/include/termios.h
@@ -0,0 +1,243 @@
+#ifndef CYGONCE_ISO_TERMIOS_H
+#define CYGONCE_ISO_TERMIOS_H
+/* ====================================================================
+//
+//      termios.h
+//
+//      POSIX termios
+//
+// ====================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+// ====================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jlarmour
+// Contributors: 
+// Date:         2000-07-22
+// Purpose:      POSIX termios support
+// Description:
+//
+//####DESCRIPTIONEND####
+//
+// ==================================================================*/
+
+#include <pkgconf/isoinfra.h>
+
+#if CYGINT_ISO_TERMIOS
+# ifdef CYGBLD_ISO_TERMIOS_HEADER
+#  include CYGBLD_ISO_TERMIOS_HEADER
+# else
+
+/* TYPES */
+
+typedef unsigned int tcflag_t;  /* terminal flags type */
+typedef unsigned char cc_t;     /* control chars type */
+typedef unsigned int speed_t;   /* baud rate type */
+
+#define NCCS 16    /* May as well hard-code - ASCII isn't that configurable! */
+
+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_cc[NCCS];     /* Control characters */
+    speed_t c_ispeed;    /* input speed */
+    speed_t c_ospeed;    /* output speed */
+};
+
+/* CONSTANTS */
+
+/* Input mode flags */
+
+#define BRKINT          (1<<0)
+#define ICRNL           (1<<1)
+#define IGNBRK          (1<<2)
+#define IGNCR           (1<<3)
+#define IGNPAR          (1<<4)
+#define INLCR           (1<<5)
+#define INPCK           (1<<6)
+#define ISTRIP          (1<<7)
+#define IXOFF           (1<<8)
+#define IXON            (1<<9)
+#define PARMRK          (1<<10)
+
+/* Output mode flags */
+
+#define OPOST           (1<<0)
+#define ONLCR           (1<<1) /* Note: This isn't POSIX */
+
+/* Control mode flags */
+
+#define CLOCAL          (1<<0)
+#define CREAD           (1<<1)
+#define   CS5              (0)
+#define   CS6           (1<<2)
+#define   CS7           (1<<3)
+#define   CS8           (CS6|CS7)
+#define CSIZE           (CS8)
+#define CSTOPB          (1<<4)
+#define HUPCL           (1<<5)
+#define PARENB          (1<<6)
+#define PARODD          (1<<7)
+#ifndef _POSIX_SOURCE_
+# define CRTSCTS        (1<<8)
+#endif
+
+/* Local mode flags */
+
+#define ECHO            (1<<0)
+#define ECHOE           (1<<1)
+#define ECHOK           (1<<2)
+#define ECHONL          (1<<3)
+#define ICANON          (1<<4)
+#define IEXTEN          (1<<5)
+#define ISIG            (1<<6)
+#define NOFLSH          (1<<7)
+#define TOSTOP          (1<<8)
+
+/* Special control characters */
+
+#define VEOF            0
+#define VEOL            1
+#define VERASE          2
+#define VINTR           3
+#define VKILL           4
+#define VMIN            5
+#define VQUIT           6
+#define VSUSP           7
+#define VTIME           8
+#define VSTART          9
+#define VSTOP           10
+
+/* Baud rates */
+/* There may be tables in the implementation that rely on the
+ * values here, so only append to this table - do not insert values!
+ */
+#define B0              0
+#define B50             1
+#define B75             2
+#define B110            3
+#define B134            4
+#define B150            5
+#define B200            6
+#define B300            7
+#define B600            8
+#define B1200           9
+#define B1800           10
+#define B2400           11
+#define B3600           12
+#define B4800           13
+#define B7200           14
+#define B9600           15
+#define B14400          16
+#define B19200          17
+#define B38400          18
+#define B57600          19
+#define B115200         20
+#define B230400         21
+#define B460800         22
+#define B500000         23
+#define B576000         24
+#define B921600         25
+#define B1000000        26
+#define B1152000        27
+#define B1500000        28
+#define B2000000        29
+#define B2500000        30
+#define B3000000        31
+#define B3500000        32
+#define B4000000        33
+
+
+/* Optional actions to tcsetattr() */
+
+#define TCSANOW         0
+#define TCSADRAIN       1
+#define TCSAFLUSH       2
+
+/* Queue selectors for tcflush() */
+
+#define TCIFLUSH        0
+#define TCOFLUSH        1
+#define TCIOFLUSH       2
+
+/* Actions for tcflow() */
+
+#define TCOOFF          0
+#define TCOON           1
+#define TCIOFF          2
+#define TCION           3
+
+
+/* FUNCTIONS */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern speed_t
+cfgetospeed( const struct termios *__termios_p );
+
+extern int
+cfsetospeed( struct termios *__termios_p, speed_t __speed );
+
+extern speed_t
+cfgetispeed( const struct termios *__termios_p );
+
+extern int
+cfsetispeed( struct termios *__termios_p, speed_t __speed );
+
+extern int
+tcgetattr( int __fildes, struct termios *__termios_p );
+
+extern int
+tcsetattr( int __fildes, int __optact, const struct termios *__termios_p );
+
+extern int
+tcsendbreak( int __fildes, int __duration );
+
+extern int
+tcdrain( int __fildes );
+
+extern int
+tcflush( int __fildes, int __queue_sel );
+
+extern int
+tcflow( int __fildes, int __action );
+
+/* tcgetpgrp() and tcsetpgrp() not included in the absence of job control */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+# endif /* ifndef CYGBLD_ISO_TERMIOS_HEADER */
+#endif /* if CYGINT_ISO_TERMIOS */
+
+
+#endif /* ifndef CYGONCE_ISO_TERMIOS_H */
+
+/* EOF termios.h */