diff options
Diffstat (limited to 'src/tty.c')
-rw-r--r-- | src/tty.c | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.9 2008/02/15 03:32:07 james + * *** empty log message *** + * * Revision 1.8 2008/02/14 10:36:18 james * *** empty log message *** * @@ -226,6 +229,49 @@ tty_get_status (TTY * t, TTY_Status * s) return 0; } +void +tty_set_baud (TTY * t, int rate) +{ + struct termios tios = { 0 }; + + speed_t s = baud_to_speed_t (rate); + + if (s == (speed_t) - 1) + return; + + if (tcgetattr (t->rfd, &tios)) + return; + + cfsetispeed (&tios, s); + cfsetospeed (&tios, s); + + tcsetattr (t->rfd, TCSANOW, &tios); +} + +void +tty_send_break (TTY * t) +{ + tcsendbreak (t->wfd, 0); +} + +void +tty_set_flow (TTY * t, int flow) +{ + struct termios tios = { 0 }; + + if (tcgetattr (t->rfd, &tios)) + return; + + if (flow) + tios.c_cflag |= CRTSCTS; + else + tios.c_cflag &= ~CRTSCTS; + + tcsetattr (t->rfd, TCSANOW, &tios); + +} + + #if 0 int tty_post_select (Context * c, fd_set * rfds, fd_set * wfds) |