Lines Matching refs:termios

239 static void unset_locked_termios(struct ktermios *termios,  in unset_locked_termios()  argument
252 NOSET_MASK(termios->c_iflag, old->c_iflag, locked->c_iflag); in unset_locked_termios()
253 NOSET_MASK(termios->c_oflag, old->c_oflag, locked->c_oflag); in unset_locked_termios()
254 NOSET_MASK(termios->c_cflag, old->c_cflag, locked->c_cflag); in unset_locked_termios()
255 NOSET_MASK(termios->c_lflag, old->c_lflag, locked->c_lflag); in unset_locked_termios()
256 termios->c_line = locked->c_line ? old->c_line : termios->c_line; in unset_locked_termios()
258 termios->c_cc[i] = locked->c_cc[i] ? in unset_locked_termios()
259 old->c_cc[i] : termios->c_cc[i]; in unset_locked_termios()
311 speed_t tty_termios_baud_rate(struct ktermios *termios) in tty_termios_baud_rate() argument
315 cbaud = termios->c_cflag & CBAUD; in tty_termios_baud_rate()
320 return termios->c_ospeed; in tty_termios_baud_rate()
326 termios->c_cflag &= ~CBAUDEX; in tty_termios_baud_rate()
346 speed_t tty_termios_input_baud_rate(struct ktermios *termios) in tty_termios_input_baud_rate() argument
349 unsigned int cbaud = (termios->c_cflag >> IBSHIFT) & CBAUD; in tty_termios_input_baud_rate()
352 return tty_termios_baud_rate(termios); in tty_termios_input_baud_rate()
356 return termios->c_ispeed; in tty_termios_input_baud_rate()
362 termios->c_cflag &= ~(CBAUDEX << IBSHIFT); in tty_termios_input_baud_rate()
368 return tty_termios_baud_rate(termios); in tty_termios_input_baud_rate()
395 void tty_termios_encode_baud_rate(struct ktermios *termios, in tty_termios_encode_baud_rate() argument
406 termios->c_ispeed = ibaud; in tty_termios_encode_baud_rate()
407 termios->c_ospeed = obaud; in tty_termios_encode_baud_rate()
414 if ((termios->c_cflag & CBAUD) == BOTHER) in tty_termios_encode_baud_rate()
416 if (((termios->c_cflag >> IBSHIFT) & CBAUD) == BOTHER) in tty_termios_encode_baud_rate()
418 if ((termios->c_cflag >> IBSHIFT) & CBAUD) in tty_termios_encode_baud_rate()
421 termios->c_cflag &= ~CBAUD; in tty_termios_encode_baud_rate()
433 termios->c_cflag |= baud_bits[i]; in tty_termios_encode_baud_rate()
445 termios->c_cflag |= (baud_bits[i] << IBSHIFT); in tty_termios_encode_baud_rate()
457 termios->c_cflag |= BOTHER; in tty_termios_encode_baud_rate()
461 termios->c_cflag |= (BOTHER << IBSHIFT); in tty_termios_encode_baud_rate()
483 tty_termios_encode_baud_rate(&tty->termios, ibaud, obaud); in tty_encode_baud_rate()
554 old_termios = tty->termios; in tty_set_termios()
555 tty->termios = *new_termios; in tty_set_termios()
556 unset_locked_termios(&tty->termios, &old_termios, &tty->termios_locked); in tty_set_termios()
561 tty_termios_copy_hw(&tty->termios, &old_termios); in tty_set_termios()
597 tmp_termios = tty->termios; in set_termios()
607 (struct termios __user *)arg)) in set_termios()
616 (struct termios __user *)arg))
651 *kterm = tty->termios; in copy_termios()
726 if (!(tty->termios.c_lflag & ICANON)) { in get_sgflags()
727 if (tty->termios.c_lflag & ISIG) in get_sgflags()
732 if (tty->termios.c_lflag & ECHO) in get_sgflags()
734 if (tty->termios.c_oflag & OPOST) in get_sgflags()
735 if (tty->termios.c_oflag & ONLCR) in get_sgflags()
745 tmp.sg_ispeed = tty->termios.c_ispeed; in get_sgttyb()
746 tmp.sg_ospeed = tty->termios.c_ospeed; in get_sgttyb()
747 tmp.sg_erase = tty->termios.c_cc[VERASE]; in get_sgttyb()
748 tmp.sg_kill = tty->termios.c_cc[VKILL]; in get_sgttyb()
755 static void set_sgflags(struct ktermios *termios, int flags) in set_sgflags() argument
757 termios->c_iflag = ICRNL | IXON; in set_sgflags()
758 termios->c_oflag = 0; in set_sgflags()
759 termios->c_lflag = ISIG | ICANON; in set_sgflags()
761 termios->c_iflag = 0; in set_sgflags()
762 termios->c_lflag &= ~ICANON; in set_sgflags()
765 termios->c_lflag |= ECHO | ECHOE | ECHOK | in set_sgflags()
769 termios->c_oflag |= OPOST | ONLCR; in set_sgflags()
772 termios->c_iflag = 0; in set_sgflags()
773 termios->c_lflag &= ~(ISIG | ICANON); in set_sgflags()
775 if (!(termios->c_lflag & ICANON)) { in set_sgflags()
776 termios->c_cc[VMIN] = 1; in set_sgflags()
777 termios->c_cc[VTIME] = 0; in set_sgflags()
796 struct ktermios termios; in set_sgttyb() local
806 termios = tty->termios; in set_sgttyb()
807 termios.c_cc[VERASE] = tmp.sg_erase; in set_sgttyb()
808 termios.c_cc[VKILL] = tmp.sg_kill; in set_sgttyb()
809 set_sgflags(&termios, tmp.sg_flags); in set_sgttyb()
812 tty_termios_encode_baud_rate(&termios, termios.c_ispeed, in set_sgttyb()
813 termios.c_ospeed); in set_sgttyb()
816 tty_set_termios(tty, &termios); in set_sgttyb()
827 tmp.t_intrc = tty->termios.c_cc[VINTR]; in get_tchars()
828 tmp.t_quitc = tty->termios.c_cc[VQUIT]; in get_tchars()
829 tmp.t_startc = tty->termios.c_cc[VSTART]; in get_tchars()
830 tmp.t_stopc = tty->termios.c_cc[VSTOP]; in get_tchars()
831 tmp.t_eofc = tty->termios.c_cc[VEOF]; in get_tchars()
832 tmp.t_brkc = tty->termios.c_cc[VEOL2]; /* what is brkc anyway? */ in get_tchars()
844 tty->termios.c_cc[VINTR] = tmp.t_intrc; in set_tchars()
845 tty->termios.c_cc[VQUIT] = tmp.t_quitc; in set_tchars()
846 tty->termios.c_cc[VSTART] = tmp.t_startc; in set_tchars()
847 tty->termios.c_cc[VSTOP] = tmp.t_stopc; in set_tchars()
848 tty->termios.c_cc[VEOF] = tmp.t_eofc; in set_tchars()
849 tty->termios.c_cc[VEOL2] = tmp.t_brkc; /* what is brkc anyway? */ in set_tchars()
861 tmp.t_suspc = tty->termios.c_cc[VSUSP]; in get_ltchars()
863 tmp.t_dsuspc = tty->termios.c_cc[VSUSP]; in get_ltchars()
864 tmp.t_rprntc = tty->termios.c_cc[VREPRINT]; in get_ltchars()
866 tmp.t_flushc = tty->termios.c_cc[VEOL2]; in get_ltchars()
867 tmp.t_werasc = tty->termios.c_cc[VWERASE]; in get_ltchars()
868 tmp.t_lnextc = tty->termios.c_cc[VLNEXT]; in get_ltchars()
881 tty->termios.c_cc[VSUSP] = tmp.t_suspc; in set_ltchars()
883 tty->termios.c_cc[VEOL2] = tmp.t_dsuspc; in set_ltchars()
884 tty->termios.c_cc[VREPRINT] = tmp.t_rprntc; in set_ltchars()
886 tty->termios.c_cc[VEOL2] = tmp.t_flushc; in set_ltchars()
887 tty->termios.c_cc[VWERASE] = tmp.t_werasc; in set_ltchars()
888 tty->termios.c_cc[VLNEXT] = tmp.t_lnextc; in set_ltchars()
910 old = tty->termios; in tty_change_softcar()
911 tty->termios.c_cflag &= ~CLOCAL; in tty_change_softcar()
912 tty->termios.c_cflag |= bit; in tty_change_softcar()
915 if ((tty->termios.c_cflag & CLOCAL) != bit) in tty_change_softcar()
978 if (kernel_termios_to_user_termios((struct termios __user *)arg, &kterm)) in tty_mode_ioctl()
984 if (kernel_termios_to_user_termios_1((struct termios __user *)arg, &kterm)) in tty_mode_ioctl()
1010 if (kernel_termios_to_user_termios((struct termios __user *)arg, &kterm)) in tty_mode_ioctl()
1018 (struct termios __user *) arg)) in tty_mode_ioctl()
1027 if (kernel_termios_to_user_termios_1((struct termios __user *)arg, &kterm)) in tty_mode_ioctl()
1035 (struct termios __user *) arg)) in tty_mode_ioctl()