2008-05-22 Joel Sherrill <joel.sherrill@oarcorp.com>

* libcsupport/Makefile.am, libcsupport/preinstall.am,
	libcsupport/include/rtems/termiostypes.h: Move termios helper
	routines from libchip to libcsupport. Add routine which makes it easy
	for a termios device driver to inform termios of its default baud
	rate. This avoids inconsistencies in later termios settings changes.
This commit is contained in:
Joel Sherrill
2008-05-22 20:16:08 +00:00
parent aefbb573e0
commit b6be421739
4 changed files with 123 additions and 94 deletions

View File

@@ -1,3 +1,11 @@
2008-05-22 Joel Sherrill <joel.sherrill@oarcorp.com>
* libcsupport/Makefile.am, libcsupport/preinstall.am,
libcsupport/include/rtems/termiostypes.h: Move termios helper
routines from libchip to libcsupport. Add routine which makes it easy
for a termios device driver to inform termios of its default baud
rate. This avoids inconsistencies in later termios settings changes.
2008-05-22 Joel Sherrill <joel.sherrill@OARcorp.com> 2008-05-22 Joel Sherrill <joel.sherrill@OARcorp.com>
* libcsupport/include/rtems/watchdogdrv.h: Finish writing comments. * libcsupport/include/rtems/watchdogdrv.h: Finish writing comments.

View File

@@ -52,7 +52,9 @@ BASE_FS_C_FILES = src/base_fs.c src/mount.c src/unmount.c src/libio.c \
TERMIOS_C_FILES = src/cfgetispeed.c src/cfgetospeed.c src/cfsetispeed.c \ TERMIOS_C_FILES = src/cfgetispeed.c src/cfgetospeed.c src/cfsetispeed.c \
src/cfsetospeed.c src/tcgetattr.c src/tcsetattr.c src/tcdrain.c \ src/cfsetospeed.c src/tcgetattr.c src/tcsetattr.c src/tcdrain.c \
src/tcflow.c src/tcflush.c src/tcgetprgrp.c src/tcsendbreak.c \ src/tcflow.c src/tcflush.c src/tcgetprgrp.c src/tcsendbreak.c \
src/tcsetpgrp.c src/termios.c src/termiosinitialize.c src/tcsetpgrp.c src/termios.c src/termiosinitialize.c \
src/termios_baud2index.c src/termios_baud2num.c src/termios_num2baud.c \
src/termios_setinitialbaud.c
SYSTEM_CALL_C_FILES = src/open.c src/close.c src/read.c src/write.c \ SYSTEM_CALL_C_FILES = src/open.c src/close.c src/read.c src/write.c \
src/write_r.c \ src/write_r.c \

View File

@@ -5,7 +5,7 @@
/* /*
* RTEMS termios device support internal data structures * RTEMS termios device support internal data structures
* *
* COPYRIGHT (c) 1989-2000. * COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR). * On-Line Applications Research Corporation (OAR).
* *
* The license and distribution terms for this file may be * The license and distribution terms for this file may be
@@ -15,8 +15,8 @@
* $Id$ * $Id$
*/ */
#ifndef TERMIOSTYPES_H #ifndef __TERMIOSTYPES_H
#define TERMIOSTYPES_H #define __TERMIOSTYPES_H
#include <rtems.h> #include <rtems.h>
#include <rtems/libio.h> #include <rtems/libio.h>
@@ -118,11 +118,13 @@ struct rtems_termios_tty {
*/ */
rtems_id rxTaskId; rtems_id rxTaskId;
rtems_id txTaskId; rtems_id txTaskId;
/* /*
* line discipline related stuff * line discipline related stuff
*/ */
int t_line; /* id of line discipline */ int t_line; /* id of line discipline */
void *t_sc; /* hook for discipline-specific data structure */ void *t_sc; /* hook for discipline-specific data structure */
/* /*
* Wakeup callback variables * Wakeup callback variables
*/ */
@@ -150,18 +152,21 @@ struct rtems_termios_linesw {
#define TERMIOS_IRQ_DRIVEN 1 #define TERMIOS_IRQ_DRIVEN 1
#define TERMIOS_TASK_DRIVEN 2 #define TERMIOS_TASK_DRIVEN 2
/* /*
* FIXME: this should move to termios.h! * FIXME: this should move to termios.h!
*/ */
void rtems_termios_rxirq_occured(struct rtems_termios_tty *tty); void rtems_termios_rxirq_occured(struct rtems_termios_tty *tty);
/* /*
* FIXME: this should move to termios.h! * FIXME: this should move to termios.h!
* put a string to output ring buffer * put a string to output ring buffer
*/ */
void rtems_termios_puts (const void *buf, void rtems_termios_puts (
const void *buf,
int len, int len,
struct rtems_termios_tty *tty); struct rtems_termios_tty *tty
);
/* /*
* global hooks for line disciplines * global hooks for line disciplines
*/ */
@@ -174,6 +179,24 @@ extern int rtems_termios_nlinesw;
#define PPPDISC 5 /* PPP discipline */ #define PPPDISC 5 /* PPP discipline */
#define MAXLDISC 8 #define MAXLDISC 8
/* convert xxx integer to equivalent Bxxx constant */
int termios_number_to_baud(int baud);
/* convert Bxxx constant to xxx integer */
int termios_baud_to_number(int termios_baud);
/* convert Bxxx constant to index */
int termios_baud_to_index(int termios_baud);
/*
* This method is used by a driver to tell termios its
* initial baud rate. This is especially important when
* the device driver does not set the baud to the default
* of B9600.
*/
int rtems_termios_set_initial_baud(
struct rtems_termios_tty *ttyp,
int baud
);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -68,10 +68,6 @@ $(PROJECT_INCLUDE)/rtems/vmeintr.h: include/vmeintr.h $(PROJECT_INCLUDE)/rtems/$
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/vmeintr.h $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/vmeintr.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/vmeintr.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/vmeintr.h
$(PROJECT_INCLUDE)/rtems/watchdogdrv.h: include/rtems/watchdogdrv.h $(PROJECT_INCLUDE)/rtems/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/watchdogdrv.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/watchdogdrv.h
$(PROJECT_INCLUDE)/rtems/motorola/$(dirstamp): $(PROJECT_INCLUDE)/rtems/motorola/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/rtems/motorola @$(MKDIR_P) $(PROJECT_INCLUDE)/rtems/motorola
@: > $(PROJECT_INCLUDE)/rtems/motorola/$(dirstamp) @: > $(PROJECT_INCLUDE)/rtems/motorola/$(dirstamp)