summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/src/exec/libcsupport/src/termios.c9
-rw-r--r--c/src/lib/ChangeLog11
-rw-r--r--c/src/lib/libc/termios.c9
-rw-r--r--cpukit/libcsupport/src/termios.c9
4 files changed, 38 insertions, 0 deletions
diff --git a/c/src/exec/libcsupport/src/termios.c b/c/src/exec/libcsupport/src/termios.c
index 0a04783648..25b8f00c9a 100644
--- a/c/src/exec/libcsupport/src/termios.c
+++ b/c/src/exec/libcsupport/src/termios.c
@@ -1412,6 +1412,15 @@ rtems_termios_dequeue_characters (void *ttyp, int len)
rtems_fatal_error_occurred (sc);
return 0; /* nothing to output in IRQ... */
}
+ else if (tty->t_line == PPPDISC ) {
+ /*
+ * call any line discipline start function
+ */
+ if (linesw[tty->t_line].l_start != NULL) {
+ linesw[tty->t_line].l_start(tty);
+ }
+ return 0; /* nothing to output in IRQ... */
+ }
else {
return rtems_termios_refill_transmitter(tty);
}
diff --git a/c/src/lib/ChangeLog b/c/src/lib/ChangeLog
index f42b0fef6e..06da663a58 100644
--- a/c/src/lib/ChangeLog
+++ b/c/src/lib/ChangeLog
@@ -1,3 +1,14 @@
+2001-01-31 Mike Siers <mikes@poliac.com>
+
+ * Nice Update of PPPD support which eliminates the
+ requiremetn that drivers be in the termios TASK_DRIVEN mode.
+ Mike did significant testing and reports that it seems to be
+ more stable and handle larger packets better. This patch
+ replaces the termios tasks with more general pppd network
+ driver tasks. The functions pppinput() and pppstart() get
+ called from the interrupt service routine.
+ * libc/termios.c: Added PPCDISC.
+
2002-02-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/rtems/libio.h: Add #include <rtems/fs.h>.
diff --git a/c/src/lib/libc/termios.c b/c/src/lib/libc/termios.c
index 0a04783648..25b8f00c9a 100644
--- a/c/src/lib/libc/termios.c
+++ b/c/src/lib/libc/termios.c
@@ -1412,6 +1412,15 @@ rtems_termios_dequeue_characters (void *ttyp, int len)
rtems_fatal_error_occurred (sc);
return 0; /* nothing to output in IRQ... */
}
+ else if (tty->t_line == PPPDISC ) {
+ /*
+ * call any line discipline start function
+ */
+ if (linesw[tty->t_line].l_start != NULL) {
+ linesw[tty->t_line].l_start(tty);
+ }
+ return 0; /* nothing to output in IRQ... */
+ }
else {
return rtems_termios_refill_transmitter(tty);
}
diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c
index 0a04783648..25b8f00c9a 100644
--- a/cpukit/libcsupport/src/termios.c
+++ b/cpukit/libcsupport/src/termios.c
@@ -1412,6 +1412,15 @@ rtems_termios_dequeue_characters (void *ttyp, int len)
rtems_fatal_error_occurred (sc);
return 0; /* nothing to output in IRQ... */
}
+ else if (tty->t_line == PPPDISC ) {
+ /*
+ * call any line discipline start function
+ */
+ if (linesw[tty->t_line].l_start != NULL) {
+ linesw[tty->t_line].l_start(tty);
+ }
+ return 0; /* nothing to output in IRQ... */
+ }
else {
return rtems_termios_refill_transmitter(tty);
}