4 * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
9 static char rcsid[] = "$Id$";
13 * Revision 1.9 2008/02/15 03:32:07 james
14 * *** empty log message ***
16 * Revision 1.8 2008/02/14 10:36:18 james
17 * *** empty log message ***
19 * Revision 1.7 2008/02/14 10:34:30 james
20 * *** empty log message ***
22 * Revision 1.6 2008/02/13 16:59:34 james
23 * *** empty log message ***
25 * Revision 1.5 2008/02/13 16:57:29 james
26 * *** empty log message ***
28 * Revision 1.4 2008/02/12 22:36:46 james
29 * *** empty log message ***
31 * Revision 1.3 2008/02/09 15:47:28 james
32 * *** empty log message ***
40 speed_t_to_baud (speed_t s)
126 baud_to_speed_t (int baud)
211 tty_pre_select (TTY * t, fd_set * rfds, fd_set * wfds)
213 FD_SET (t->rfd, rfds);
217 tty_get_status (TTY * t, TTY_Status * s)
221 ioctl (t->rfd, TIOCMGET, &s->lines);
223 if (tcgetattr (t->rfd, &s->termios))
226 s->baud = speed_t_to_baud (cfgetispeed (&s->termios));
227 s->blocked = t->blocked;
233 tty_set_baud (TTY * t, int rate)
235 struct termios tios = { 0 };
237 speed_t s = baud_to_speed_t (rate);
239 if (s == (speed_t) - 1)
242 if (tcgetattr (t->rfd, &tios))
245 cfsetispeed (&tios, s);
246 cfsetospeed (&tios, s);
248 tcsetattr (t->rfd, TCSANOW, &tios);
252 tty_send_break (TTY * t)
254 tcsendbreak (t->wfd, 0);
258 tty_set_flow (TTY * t, int flow)
260 struct termios tios = { 0 };
262 if (tcgetattr (t->rfd, &tios))
266 tios.c_cflag |= CRTSCTS;
268 tios.c_cflag &= ~CRTSCTS;
270 tcsetattr (t->rfd, TCSANOW, &tios);
277 tty_post_select (Context * c, fd_set * rfds, fd_set * wfds)
280 if (FD_ISSET (c->t->rfd, rfds))
282 if (vt102_dispatch (&c))