Ticket #500: Patch_rtems-4.6.0_cpukit_libcsupport_src_termios_c.diff
File Patch_rtems-4.6.0_cpukit_libcsupport_src_termios_c.diff, 1.4 KB (added by cedric_aubert, on 12/03/06 at 13:31:13) |
---|
-
cpukit/libcsupport/src/termios.c
old new fillBufferPoll (struct rtems_termios_tty 1039 1038 static rtems_status_code 1040 1039 fillBufferQueue (struct rtems_termios_tty *tty) 1041 1040 { 1041 rtems_interrupt_level level; 1042 1042 rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout; 1043 1043 rtems_status_code sc; 1044 1044 int wait = (int)1; … … fillBufferQueue (struct rtems_termios_tt 1047 1047 /* 1048 1048 * Process characters read from raw queue 1049 1049 */ 1050 while ( tty->rawInBuf.Head != tty->rawInBuf.Tail) {1050 while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) && (tty->ccount < (CBUFSIZE-1))) { 1051 1051 unsigned char c; 1052 1052 unsigned int newHead; 1053 1053 … … fillBufferQueue (struct rtems_termios_tt 1057 1057 if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size) 1058 1058 % tty->rawInBuf.Size) 1059 1059 < tty->lowwater) { 1060 /* Disable interrupt to reset FL_IREQXOF and FL_IRTSOFF without been interrupted */ 1061 rtems_interrupt_disable(level); 1060 1062 tty->flow_ctrl &= ~FL_IREQXOF; 1061 1063 /* if tx stopped and XON should be sent... */ 1062 1064 if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF)) … … fillBufferQueue (struct rtems_termios_tt 1075 1077 tty->device.startRemoteTx(tty->minor); 1076 1078 } 1077 1079 } 1080 /* reenable interrupts */ 1081 rtems_interrupt_enable(level); 1078 1082 } 1079 1083 1080 1084 /* continue processing new character */