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 + + * 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 * include/rtems/libio.h: Add #include . 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); }