diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-05-22 20:35:41 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-05-22 20:35:41 +0000 |
commit | cdc830964ac1e18dc0116023232c4992d0b3f346 (patch) | |
tree | d1564ba40e22ca6fd81cc959664f9b33652b1f69 /cpukit/libcsupport | |
parent | 2008-05-22 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-cdc830964ac1e18dc0116023232c4992d0b3f346.tar.bz2 |
2008-05-22 Joel Sherrill <joel.sherrill@oarcorp.com>
* libcsupport/src/termios_baud2index.c,
libcsupport/src/termios_baud2num.c,
libcsupport/src/termios_num2baud.c,
libcsupport/src/termios_setinitialbaud.c: New files.
Diffstat (limited to 'cpukit/libcsupport')
-rw-r--r-- | cpukit/libcsupport/src/termios_baud2index.c | 45 | ||||
-rw-r--r-- | cpukit/libcsupport/src/termios_baud2num.c | 45 | ||||
-rw-r--r-- | cpukit/libcsupport/src/termios_num2baud.c | 45 | ||||
-rw-r--r-- | cpukit/libcsupport/src/termios_setinitialbaud.c | 29 |
4 files changed, 164 insertions, 0 deletions
diff --git a/cpukit/libcsupport/src/termios_baud2index.c b/cpukit/libcsupport/src/termios_baud2index.c new file mode 100644 index 0000000000..00703d2093 --- /dev/null +++ b/cpukit/libcsupport/src/termios_baud2index.c @@ -0,0 +1,45 @@ +/* + * COPYRIGHT (c) 1989-2008. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#include <sys/termios.h> + +int termios_baud_to_index( + int termios_baud +) +{ + int baud_index; + + switch (termios_baud) { + case B0: baud_index = 0; break; + case B50: baud_index = 1; break; + case B75: baud_index = 2; break; + case B110: baud_index = 3; break; + case B134: baud_index = 4; break; + case B150: baud_index = 5; break; + case B200: baud_index = 6; break; + case B300: baud_index = 7; break; + case B600: baud_index = 8; break; + case B1200: baud_index = 9; break; + case B1800: baud_index = 10; break; + case B2400: baud_index = 11; break; + case B4800: baud_index = 12; break; + case B9600: baud_index = 13; break; + case B19200: baud_index = 14; break; + case B38400: baud_index = 15; break; + case B57600: baud_index = 16; break; + case B115200: baud_index = 17; break; + case B230400: baud_index = 18; break; + case B460800: baud_index = 19; break; + default: baud_index = -1; break; + } + + return baud_index; +} diff --git a/cpukit/libcsupport/src/termios_baud2num.c b/cpukit/libcsupport/src/termios_baud2num.c new file mode 100644 index 0000000000..c9d4dd8988 --- /dev/null +++ b/cpukit/libcsupport/src/termios_baud2num.c @@ -0,0 +1,45 @@ +/* + * COPYRIGHT (c) 1989-2008. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#include <sys/termios.h> + +int termios_baud_to_number( + int termios_baud +) +{ + int baud; + + switch (termios_baud) { + case B0: baud = 0; break; + case B50: baud = 50; break; + case B75: baud = 75; break; + case B110: baud = 110; break; + case B134: baud = 135; break; + case B150: baud = 150; break; + case B200: baud = 200; break; + case B300: baud = 300; break; + case B600: baud = 600; break; + case B1200: baud = 1200; break; + case B1800: baud = 1800; break; + case B2400: baud = 2400; break; + case B4800: baud = 4800; break; + case B9600: baud = 9600; break; + case B19200: baud = 19200; break; + case B38400: baud = 38400; break; + case B57600: baud = 57600; break; + case B115200: baud = 115200; break; + case B230400: baud = 230400; break; + case B460800: baud = 460800; break; + default: baud = -1; break; + } + + return baud; +} diff --git a/cpukit/libcsupport/src/termios_num2baud.c b/cpukit/libcsupport/src/termios_num2baud.c new file mode 100644 index 0000000000..debc7e4b7e --- /dev/null +++ b/cpukit/libcsupport/src/termios_num2baud.c @@ -0,0 +1,45 @@ +/* + * COPYRIGHT (c) 1989-2008. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#include <sys/termios.h> + +int termios_number_to_baud( + int baud +) +{ + int termios_baud; + + switch (baud) { + case 0: termios_baud = B0; break; + case 50: termios_baud = B50; break; + case 75: termios_baud = B75; break; + case 110: termios_baud = B110; break; + case 134: termios_baud = B134; break; + case 150: termios_baud = B150; break; + case 200: termios_baud = B200; break; + case 300: termios_baud = B300; break; + case 600: termios_baud = B600; break; + case 1200: termios_baud = B1200; break; + case 1800: termios_baud = B1800; break; + case 2400: termios_baud = B2400; break; + case 4800: termios_baud = B4800; break; + case 9600: termios_baud = B9600; break; + case 19200: termios_baud = B19200; break; + case 38400: termios_baud = B38400; break; + case 57600: termios_baud = B57600; break; + case 115200: termios_baud = B115200; break; + case 230400: termios_baud = B230400; break; + case 460800: termios_baud = B460800; break; + default: termios_baud = -1; break; + } + + return termios_baud; +} diff --git a/cpukit/libcsupport/src/termios_setinitialbaud.c b/cpukit/libcsupport/src/termios_setinitialbaud.c new file mode 100644 index 0000000000..33bc458edc --- /dev/null +++ b/cpukit/libcsupport/src/termios_setinitialbaud.c @@ -0,0 +1,29 @@ +/* + * COPYRIGHT (c) 1989-2008. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#include <sys/termios.h> +#include <rtems/termiostypes.h> + +int rtems_termios_set_initial_baud( + struct rtems_termios_tty *ttyp, + int baud +) +{ + int cflags_baud; + + cflags_baud = termios_number_to_baud(baud); + if ( cflags_baud == -1 ) + return -1; + + ttyp->termios.c_cflag = (ttyp->termios.c_cflag & ~CBAUD) | cflags_baud; + + return 0; +} |