taglinefilesource code
tty61drivers/char/console.cint paste_selection(struct tty_struct *tty);
tty671drivers/char/console.cstatic void respond_string(char * p, int currcons, struct tty_struct * tty)
tty674drivers/char/console.cput_tty_queue(*p, &tty->read_q);
tty677drivers/char/console.cTTY_READ_FLUSH(tty);
tty680drivers/char/console.cstatic void respond_num(unsigned int n, int currcons, struct tty_struct * tty)
tty690drivers/char/console.cput_tty_queue(buff[i], &tty->read_q);
tty695drivers/char/console.cstatic void cursor_report(int currcons, struct tty_struct * tty)
tty697drivers/char/console.cput_tty_queue('\033', &tty->read_q);
tty698drivers/char/console.cput_tty_queue('[', &tty->read_q);
tty699drivers/char/console.crespond_num(y + (decom ? top+1 : 1), currcons, tty);
tty700drivers/char/console.cput_tty_queue(';', &tty->read_q);
tty701drivers/char/console.crespond_num(x+1, currcons, tty);
tty702drivers/char/console.cput_tty_queue('R', &tty->read_q);
tty703drivers/char/console.cTTY_READ_FLUSH(tty);
tty706drivers/char/console.cstatic inline void status_report(int currcons, struct tty_struct * tty)
tty708drivers/char/console.crespond_string("\033[0n", currcons, tty);  /* Terminal ok */
tty711drivers/char/console.cstatic inline void respond_ID(int currcons, struct tty_struct * tty)
tty713drivers/char/console.crespond_string(VT102ID, currcons, tty);
tty965drivers/char/console.cvoid con_write(struct tty_struct * tty)
tty970drivers/char/console.cwake_up_interruptible(&tty->write_q.proc_list);
tty971drivers/char/console.ccurrcons = tty->line - 1;
tty979drivers/char/console.cif (!EMPTY(&tty->write_q) && currcons == sel_cons)
tty983drivers/char/console.cwhile (!tty->stopped &&  (c = get_tty_queue(&tty->write_q)) >= 0) {
tty1071drivers/char/console.crespond_ID(currcons,tty);
tty1132drivers/char/console.cstatus_report(currcons,tty);
tty1134drivers/char/console.ccursor_report(currcons,tty);
tty1196drivers/char/console.crespond_ID(currcons,tty);
tty1585drivers/char/console.cint con_open(struct tty_struct *tty, struct file * filp)
tty1587drivers/char/console.ctty->write = con_write;
tty1588drivers/char/console.ctty->ioctl = vt_ioctl;
tty1589drivers/char/console.cif (tty->line > NR_CONSOLES)
tty1768drivers/char/console.cint paste_selection(struct tty_struct *tty)
tty1777drivers/char/console.cput_tty_queue(*bp, &tty->read_q);
tty1780drivers/char/console.cTTY_READ_FLUSH(tty);
tty91drivers/char/keyboard.cstatic struct tty_struct * tty = NULL;
tty218drivers/char/keyboard.ctty = TTY_TABLE(0);
tty321drivers/char/keyboard.c(vc_kbd_flag(kbd,VC_REPEAT) && tty &&
tty322drivers/char/keyboard.c(L_ECHO(tty) || (EMPTY(&tty->secondary) && EMPTY(&tty->read_q)))))
tty339drivers/char/keyboard.cif (!tty)
tty341drivers/char/keyboard.cqp = &tty->read_q;
tty357drivers/char/keyboard.cif (!tty)
tty359drivers/char/keyboard.cqp = &tty->read_q;
tty420drivers/char/keyboard.cif (rep || !tty)
tty424drivers/char/keyboard.cput_queue(START_CHAR(tty));
tty427drivers/char/keyboard.cput_queue(STOP_CHAR(tty));
tty456drivers/char/keyboard.cif (tty)
tty457drivers/char/keyboard.cput_queue(INTR_CHAR(tty));
tty24drivers/char/pty.cstatic void pty_close(struct tty_struct * tty, struct file * filp)
tty26drivers/char/pty.cif (!tty)
tty28drivers/char/pty.cif (IS_A_PTY_MASTER(tty->line)) {
tty29drivers/char/pty.cif (tty->count > 1)
tty32drivers/char/pty.cif (tty->count > 2)
tty35drivers/char/pty.cwake_up_interruptible(&tty->secondary.proc_list);
tty36drivers/char/pty.cwake_up_interruptible(&tty->read_q.proc_list);
tty37drivers/char/pty.cwake_up_interruptible(&tty->write_q.proc_list);
tty38drivers/char/pty.cif (!tty->link)
tty40drivers/char/pty.cwake_up_interruptible(&tty->link->secondary.proc_list);
tty41drivers/char/pty.cwake_up_interruptible(&tty->link->read_q.proc_list);
tty42drivers/char/pty.cwake_up_interruptible(&tty->link->write_q.proc_list);
tty43drivers/char/pty.cif (IS_A_PTY_MASTER(tty->line)) {
tty44drivers/char/pty.ctty_hangup(tty->link);
tty45drivers/char/pty.cflush_input(tty);
tty46drivers/char/pty.cflush_output(tty);
tty80drivers/char/pty.cstatic void pty_write(struct tty_struct * tty)
tty82drivers/char/pty.cif (tty->link)
tty83drivers/char/pty.cpty_copy(tty,tty->link);
tty86drivers/char/pty.cint pty_open(struct tty_struct *tty, struct file * filp)
tty88drivers/char/pty.cif (!tty || !tty->link)
tty90drivers/char/pty.cif (IS_A_PTY_MASTER(tty->line))
tty91drivers/char/pty.cclear_bit(TTY_SLAVE_OPENED, &tty->flags);
tty93drivers/char/pty.cset_bit(TTY_SLAVE_OPENED, &tty->link->flags);
tty94drivers/char/pty.ctty->write = tty->link->write = pty_write;
tty95drivers/char/pty.ctty->close = tty->link->close = pty_close;
tty96drivers/char/pty.cwake_up_interruptible(&tty->read_q.proc_list);
tty99drivers/char/pty.cwhile (!tty->link->count && !(current->signal & ~current->blocked))
tty100drivers/char/pty.cinterruptible_sleep_on(&tty->link->read_q.proc_list);
tty101drivers/char/pty.cif (!tty->link->count)
tty211drivers/char/serial.cstatic void rs_throttle(struct tty_struct * tty, int status);
tty258drivers/char/serial.cstatic void rs_stop(struct tty_struct *tty)
tty262drivers/char/serial.cinfo = rs_table + DEV_TO_SL(tty->line);
tty270drivers/char/serial.cstatic void rs_start(struct tty_struct *tty)
tty274drivers/char/serial.cinfo = rs_table + DEV_TO_SL(tty->line);
tty339drivers/char/serial.cqueue = &info->tty->read_q;
tty351drivers/char/serial.cset_bit(head, &info->tty->readq_flags);
tty368drivers/char/serial.c&info->tty->flags)) 
tty369drivers/char/serial.crs_throttle(info->tty, TTY_THROTTLE_RQ_FULL);
tty381drivers/char/serial.cqueue = &info->tty->write_q;
tty404drivers/char/serial.cif (info->tty->write_data_cnt) {
tty405drivers/char/serial.cset_bit(info->tty->line, &tty_check_write);
tty421drivers/char/serial.cif ((status & UART_MSR_DDCD) && !C_LOCAL(info->tty)) {
tty436drivers/char/serial.cif (C_RTSCTS(info->tty)) {
tty437drivers/char/serial.cif (info->tty->hw_stopped) {
tty442drivers/char/serial.cinfo->tty->hw_stopped = 0;
tty443drivers/char/serial.crs_start(info->tty);
tty451drivers/char/serial.cinfo->tty->hw_stopped = 1;
tty452drivers/char/serial.crs_stop(info->tty);
tty494drivers/char/serial.cif (info->tty &&
tty507drivers/char/serial.cif (!info->tty->stopped &&
tty508drivers/char/serial.c!info->tty->hw_stopped)
tty562drivers/char/serial.cdo_SAK(info->tty);
tty564drivers/char/serial.cif (I_BRKINT(info->tty)) {
tty565drivers/char/serial.cflush_input(info->tty);
tty566drivers/char/serial.cflush_output(info->tty);
tty567drivers/char/serial.cif (info->tty->pgrp > 0)
tty568drivers/char/serial.ckill_pg(info->tty->pgrp, SIGINT,1);
tty588drivers/char/serial.cif (!info->tty)  
tty591drivers/char/serial.cTTY_READ_FLUSH(info->tty);
tty594drivers/char/serial.cwake_up_interruptible(&info->tty->write_q.proc_list);
tty597drivers/char/serial.ctty_hangup(info->tty);
tty727drivers/char/serial.cif (info->tty)
tty728drivers/char/serial.cset_bit(TTY_IO_ERROR, &info->tty->flags);
tty808drivers/char/serial.cif (info->tty)
tty809drivers/char/serial.cclear_bit(TTY_IO_ERROR, &info->tty->flags);
tty813drivers/char/serial.cif (info->tty && info->tty->termios && I_INPCK(info->tty))
tty887drivers/char/serial.cif (info->tty && !(info->tty->termios->c_cflag & HUPCL))
tty898drivers/char/serial.cif (info->tty)
tty899drivers/char/serial.cset_bit(TTY_IO_ERROR, &info->tty->flags);
tty920drivers/char/serial.cif (!info->tty || !info->tty->termios)
tty922drivers/char/serial.ccflag = info->tty->termios->c_cflag;
tty1007drivers/char/serial.cqueue = &info->tty->write_q;
tty1026drivers/char/serial.cvoid rs_write(struct tty_struct * tty)
tty1030drivers/char/serial.cif (!tty || tty->stopped || tty->hw_stopped)
tty1032drivers/char/serial.cinfo = rs_table + DEV_TO_SL(tty->line);
tty1033drivers/char/serial.cif (!info || !info->tty || !(info->flags & ASYNC_INITIALIZED))
tty1054drivers/char/serial.cstatic void rs_throttle(struct tty_struct * tty, int status)
tty1062drivers/char/serial.cprintk("throttle tty%d: %d (%d, %d)....\n", DEV_TO_SL(tty->line),
tty1063drivers/char/serial.cstatus, LEFT(&tty->read_q), LEFT(&tty->secondary));
tty1067drivers/char/serial.cinfo = rs_table + DEV_TO_SL(tty->line);
tty1068drivers/char/serial.cif (tty->termios->c_iflag & IXOFF) {
tty1069drivers/char/serial.cinfo->x_char = STOP_CHAR(tty);
tty1077drivers/char/serial.cinfo = rs_table + DEV_TO_SL(tty->line);
tty1078drivers/char/serial.cif (tty->termios->c_iflag & IXOFF) {
tty1082drivers/char/serial.cinfo->x_char = START_CHAR(tty);
tty1361drivers/char/serial.cstatic int rs_ioctl(struct tty_struct *tty, struct file * file,
tty1367drivers/char/serial.cline = DEV_TO_SL(tty->line);
tty1384drivers/char/serial.cput_fs_long(C_LOCAL(tty) ? 1 : 0,
tty1389drivers/char/serial.ctty->termios->c_cflag =
tty1390drivers/char/serial.c((tty->termios->c_cflag & ~CLOCAL) |
tty1438drivers/char/serial.cstatic void rs_set_termios(struct tty_struct *tty, struct termios *old_termios)
tty1442drivers/char/serial.cif (tty->termios->c_cflag == old_termios->c_cflag)
tty1445drivers/char/serial.cinfo = &rs_table[DEV_TO_SL(tty->line)];
tty1447drivers/char/serial.cchange_speed(DEV_TO_SL(tty->line));
tty1450drivers/char/serial.c!(tty->termios->c_cflag & CRTSCTS)) {
tty1451drivers/char/serial.ctty->hw_stopped = 0;
tty1452drivers/char/serial.crs_write(tty);
tty1456drivers/char/serial.c(tty->termios->c_cflag & CLOCAL))
tty1459drivers/char/serial.cif (I_INPCK(tty))
tty1477drivers/char/serial.cstatic void rs_close(struct tty_struct *tty, struct file * filp)
tty1485drivers/char/serial.cline = DEV_TO_SL(tty->line);
tty1500drivers/char/serial.cinfo->normal_termios = *tty->termios;
tty1502drivers/char/serial.cinfo->callout_termios = *tty->termios;
tty1503drivers/char/serial.ctty->stopped = 0;    /* Force flush to succeed */
tty1504drivers/char/serial.ctty->hw_stopped = 0;
tty1505drivers/char/serial.crs_start(tty);
tty1506drivers/char/serial.cwait_until_sent(tty);
tty1513drivers/char/serial.crs_start(tty);  /* Make sure THRI interrupt enabled */
tty1521drivers/char/serial.cinfo->tty = 0;
tty1524drivers/char/serial.ctty->count++; /* avoid race condition */
tty1528drivers/char/serial.ctty->count--;
tty1540drivers/char/serial.cvoid rs_hangup(struct tty_struct *tty)
tty1545drivers/char/serial.cline = DEV_TO_SL(tty->line);
tty1555drivers/char/serial.cinfo->tty = 0;
tty1564drivers/char/serial.cstatic int block_til_ready(struct tty_struct *tty, struct file * filp,
tty1569drivers/char/serial.cint    do_clocal = C_LOCAL(tty);
tty1674drivers/char/serial.cint rs_open(struct tty_struct *tty, struct file * filp)
tty1679drivers/char/serial.cline = DEV_TO_SL(tty->line);
tty1687drivers/char/serial.cinfo->tty = tty;
tty1689drivers/char/serial.ctty->write = rs_write;
tty1690drivers/char/serial.ctty->close = rs_close;
tty1691drivers/char/serial.ctty->ioctl = rs_ioctl;
tty1692drivers/char/serial.ctty->throttle = rs_throttle;
tty1693drivers/char/serial.ctty->set_termios = rs_set_termios;
tty1694drivers/char/serial.ctty->stop = rs_stop;
tty1695drivers/char/serial.ctty->start = rs_start;
tty1696drivers/char/serial.ctty->hangup = rs_hangup;
tty1699drivers/char/serial.c*tty->termios = info->normal_termios;
tty1701drivers/char/serial.c*tty->termios = info->callout_termios;
tty1710drivers/char/serial.cretval = block_til_ready(tty, filp, info);
tty1989drivers/char/serial.cinfo->tty = 0;
tty78drivers/char/tty_io.cstatic void initialize_tty_struct(int line, struct tty_struct *tty);
tty139drivers/char/tty_io.cint tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp, int buflen)
tty149drivers/char/tty_io.ctail = tty->read_q.tail;
tty150drivers/char/tty_io.chead = tty->read_q.head;
tty152drivers/char/tty_io.cok = !clear_bit (tail, &tty->readq_flags);
tty153drivers/char/tty_io.c*p++ =  tty->read_q.buf[tail++];
tty157drivers/char/tty_io.ctty->read_q.tail = tail;
tty163drivers/char/tty_io.cvoid tty_write_flush(struct tty_struct * tty)
tty165drivers/char/tty_io.cif (!tty->write || EMPTY(&tty->write_q))
tty167drivers/char/tty_io.cif (set_bit(TTY_WRITE_BUSY,&tty->flags))
tty169drivers/char/tty_io.ctty->write(tty);
tty170drivers/char/tty_io.cif (!clear_bit(TTY_WRITE_BUSY,&tty->flags))
tty174drivers/char/tty_io.cvoid tty_read_flush(struct tty_struct * tty)
tty176drivers/char/tty_io.cif (!tty || EMPTY(&tty->read_q))
tty178drivers/char/tty_io.cif (set_bit(TTY_READ_BUSY, &tty->flags))
tty180drivers/char/tty_io.cldiscs[tty->disc].handler(tty);
tty181drivers/char/tty_io.cif (!clear_bit(TTY_READ_BUSY, &tty->flags))
tty235drivers/char/tty_io.cvoid do_tty_hangup(struct tty_struct * tty, struct file_operations *fops)
tty242drivers/char/tty_io.cif (!tty)
tty244drivers/char/tty_io.cdev = MKDEV(TTY_MAJOR,tty->line);
tty256drivers/char/tty_io.cflush_input(tty);
tty257drivers/char/tty_io.cflush_output(tty);
tty258drivers/char/tty_io.cwake_up_interruptible(&tty->secondary.proc_list);
tty259drivers/char/tty_io.cif (tty->session > 0)
tty260drivers/char/tty_io.ckill_sl(tty->session,SIGHUP,1);
tty261drivers/char/tty_io.ctty->session = 0;
tty262drivers/char/tty_io.ctty->pgrp = -1;
tty264drivers/char/tty_io.cif (p->tty == tty->line)
tty265drivers/char/tty_io.cp->tty = -1;
tty267drivers/char/tty_io.cif (tty->hangup)
tty268drivers/char/tty_io.c(tty->hangup)(tty);
tty271drivers/char/tty_io.cvoid tty_hangup(struct tty_struct * tty)
tty274drivers/char/tty_io.cprintk("tty%d hangup...\n", tty->line);
tty276drivers/char/tty_io.cdo_tty_hangup(tty, &hung_up_tty_fops);
tty279drivers/char/tty_io.cvoid tty_vhangup(struct tty_struct * tty)
tty282drivers/char/tty_io.cprintk("tty%d vhangup...\n", tty->line);
tty284drivers/char/tty_io.cdo_tty_hangup(tty, &hung_up_tty_fops);
tty304drivers/char/tty_io.cstruct tty_struct *tty;
tty307drivers/char/tty_io.cif (current->tty >= 0) {
tty308drivers/char/tty_io.ctty = tty_table[current->tty];
tty309drivers/char/tty_io.cif (tty) {
tty310drivers/char/tty_io.cif (tty->pgrp > 0)
tty311drivers/char/tty_io.ckill_pg(tty->pgrp, SIGHUP, priv);
tty312drivers/char/tty_io.ctty->session = 0;
tty313drivers/char/tty_io.ctty->pgrp = -1;
tty320drivers/char/tty_io.cp->tty = -1;
tty502drivers/char/tty_io.cvoid copy_to_cooked(struct tty_struct * tty)
tty507drivers/char/tty_io.cif (!tty) {
tty511drivers/char/tty_io.cif (!tty->write) {
tty513drivers/char/tty_io.ctty->line);
tty521drivers/char/tty_io.cc = LEFT(&tty->secondary);
tty522drivers/char/tty_io.cif (tty->throttle && (c < SQ_THRESHOLD_LW)
tty523drivers/char/tty_io.c&& !set_bit(TTY_SQ_THROTTLED, &tty->flags))
tty524drivers/char/tty_io.ctty->throttle(tty, TTY_THROTTLE_SQ_FULL);
tty528drivers/char/tty_io.cif (tty->read_q.tail != tty->read_q.head) {
tty529drivers/char/tty_io.cc = 0xff & tty->read_q.buf[tty->read_q.tail];
tty530drivers/char/tty_io.cspecial_flag = clear_bit(tty->read_q.tail,
tty531drivers/char/tty_io.c&tty->readq_flags);
tty532drivers/char/tty_io.ctty->read_q.tail = (tty->read_q.tail + 1) &
tty540drivers/char/tty_io.ctty->char_error = c & 7;
tty543drivers/char/tty_io.cif (tty->char_error) {
tty544drivers/char/tty_io.cif (tty->char_error == TTY_BREAK) {
tty545drivers/char/tty_io.ctty->char_error = 0;
tty546drivers/char/tty_io.cif (I_IGNBRK(tty))
tty548drivers/char/tty_io.cif (I_PARMRK(tty)) {
tty549drivers/char/tty_io.cput_tty_queue('\377', &tty->secondary);
tty550drivers/char/tty_io.cput_tty_queue('\0', &tty->secondary);
tty552drivers/char/tty_io.cput_tty_queue('\0', &tty->secondary);
tty555drivers/char/tty_io.cif (tty->char_error == TTY_OVERRUN) {
tty556drivers/char/tty_io.ctty->char_error = 0;
tty557drivers/char/tty_io.cprintk("tty%d: input overrun\n", tty->line);
tty561drivers/char/tty_io.ctty->char_error = 0;
tty562drivers/char/tty_io.cif (I_IGNPAR(tty)) {
tty565drivers/char/tty_io.cif (I_PARMRK(tty)) {
tty566drivers/char/tty_io.cput_tty_queue('\377', &tty->secondary);
tty567drivers/char/tty_io.cput_tty_queue('\0', &tty->secondary);
tty568drivers/char/tty_io.cput_tty_queue(c, &tty->secondary);
tty570drivers/char/tty_io.cput_tty_queue('\0', &tty->secondary);
tty573drivers/char/tty_io.cif (I_STRP(tty))
tty575drivers/char/tty_io.celse if (I_PARMRK(tty) && (c == '\377'))
tty576drivers/char/tty_io.cput_tty_queue('\377', &tty->secondary);
tty578drivers/char/tty_io.cif (I_CRNL(tty))
tty580drivers/char/tty_io.celse if (I_NOCR(tty))
tty582drivers/char/tty_io.c} else if (c==10 && I_NLCR(tty))
tty584drivers/char/tty_io.cif (I_UCLC(tty))
tty587drivers/char/tty_io.ctty->lnext = 1;
tty588drivers/char/tty_io.cif (L_CANON(tty) && !tty->lnext) {
tty589drivers/char/tty_io.cif (c == ERASE_CHAR(tty) || c == KILL_CHAR(tty) || c == WERASE_CHAR(tty)) {
tty591drivers/char/tty_io.c(c == WERASE_CHAR(tty)) ? 0 : -1;
tty595drivers/char/tty_io.cwhile(!(EMPTY(&tty->secondary) ||
tty596drivers/char/tty_io.c(cc=LAST(&tty->secondary))==10 ||
tty597drivers/char/tty_io.c((EOF_CHAR(tty) != __DISABLED_CHAR) &&
tty598drivers/char/tty_io.c(cc==EOF_CHAR(tty))))) {
tty608drivers/char/tty_io.cif (L_ECHO(tty)) {
tty611drivers/char/tty_io.cct = (L_ECHOCTL(tty) ? 2 : 0);
tty613drivers/char/tty_io.cput_tty_queue('\b', &tty->write_q);
tty614drivers/char/tty_io.cput_tty_queue(' ', &tty->write_q);
tty615drivers/char/tty_io.cput_tty_queue('\b',&tty->write_q);
tty618drivers/char/tty_io.cDEC(tty->secondary.head);
tty619drivers/char/tty_io.cif(c == ERASE_CHAR(tty))
tty624drivers/char/tty_io.cif (c == LNEXT_CHAR(tty)) {
tty625drivers/char/tty_io.ctty->lnext = 1;
tty626drivers/char/tty_io.cif (L_ECHO(tty)) {
tty627drivers/char/tty_io.cput_tty_queue('^',&tty->write_q);
tty628drivers/char/tty_io.cput_tty_queue('\b',&tty->write_q);
tty633drivers/char/tty_io.cif (I_IXON(tty) && !tty->lnext) {
tty634drivers/char/tty_io.cif (c == STOP_CHAR(tty)) {
tty635drivers/char/tty_io.ctty->ctrl_status &= ~(TIOCPKT_START);
tty636drivers/char/tty_io.ctty->ctrl_status |= TIOCPKT_STOP;
tty637drivers/char/tty_io.cif (tty->link)
tty638drivers/char/tty_io.cwake_up_interruptible(&tty->link->except_q);
tty639drivers/char/tty_io.ctty->stopped=1;
tty640drivers/char/tty_io.cif (tty->stop)
tty641drivers/char/tty_io.c(tty->stop)(tty);
tty642drivers/char/tty_io.cif (IS_A_CONSOLE(tty->line)) {
tty648drivers/char/tty_io.cif (((I_IXANY(tty)) && tty->stopped) ||
tty649drivers/char/tty_io.c(c == START_CHAR(tty))) {
tty650drivers/char/tty_io.ctty->ctrl_status &= ~(TIOCPKT_STOP);
tty651drivers/char/tty_io.ctty->ctrl_status |= TIOCPKT_START;
tty652drivers/char/tty_io.ctty->stopped=0;
tty653drivers/char/tty_io.cif (tty->link)
tty654drivers/char/tty_io.cwake_up_interruptible(&tty->link->except_q);
tty655drivers/char/tty_io.cif (tty->start)
tty656drivers/char/tty_io.c(tty->start)(tty);
tty657drivers/char/tty_io.cif (IS_A_CONSOLE(tty->line)) {
tty664drivers/char/tty_io.cif (L_ISIG(tty) && !tty->lnext) {
tty665drivers/char/tty_io.cif (c == INTR_CHAR(tty)) {
tty666drivers/char/tty_io.ckill_pg(tty->pgrp, SIGINT, 1);
tty667drivers/char/tty_io.cif (! _L_FLAG(tty, NOFLSH)) {
tty668drivers/char/tty_io.cflush_input(tty);
tty669drivers/char/tty_io.cflush_output(tty);
tty673drivers/char/tty_io.cif (c == QUIT_CHAR(tty)) {
tty674drivers/char/tty_io.ckill_pg(tty->pgrp, SIGQUIT, 1);
tty675drivers/char/tty_io.cif (! _L_FLAG(tty, NOFLSH)) {
tty676drivers/char/tty_io.cflush_input(tty);
tty677drivers/char/tty_io.cflush_output(tty);
tty681drivers/char/tty_io.cif (c == SUSPEND_CHAR(tty)) {
tty682drivers/char/tty_io.cif (!is_orphaned_pgrp(tty->pgrp)) {
tty683drivers/char/tty_io.ckill_pg(tty->pgrp, SIGTSTP, 1);
tty684drivers/char/tty_io.cif (! _L_FLAG(tty, NOFLSH)) {
tty685drivers/char/tty_io.cflush_input(tty);
tty686drivers/char/tty_io.cflush_output(tty);
tty692drivers/char/tty_io.cif (c==10 || (EOF_CHAR(tty) != __DISABLED_CHAR &&
tty693drivers/char/tty_io.cc==EOF_CHAR(tty)))
tty694drivers/char/tty_io.ctty->secondary.data++;
tty695drivers/char/tty_io.cif ((c==10) && (L_ECHO(tty) || (L_CANON(tty) && L_ECHONL(tty)))) {
tty696drivers/char/tty_io.cput_tty_queue('\n',&tty->write_q);
tty697drivers/char/tty_io.cput_tty_queue('\r',&tty->write_q);
tty698drivers/char/tty_io.c} else if (L_ECHO(tty)) {
tty699drivers/char/tty_io.cif (c<32 && L_ECHOCTL(tty)) {
tty700drivers/char/tty_io.cput_tty_queue('^',&tty->write_q);
tty701drivers/char/tty_io.cput_tty_queue(c+'A'-1, &tty->write_q);
tty702drivers/char/tty_io.cif (EOF_CHAR(tty) != __DISABLED_CHAR &&
tty703drivers/char/tty_io.cc==EOF_CHAR(tty) && !tty->lnext) {
tty704drivers/char/tty_io.cput_tty_queue('\b',&tty->write_q);
tty705drivers/char/tty_io.cput_tty_queue('\b',&tty->write_q);
tty708drivers/char/tty_io.cput_tty_queue(c, &tty->write_q);
tty710drivers/char/tty_io.ctty->lnext = 0;
tty711drivers/char/tty_io.cput_tty_queue(c, &tty->secondary);
tty713drivers/char/tty_io.cTTY_WRITE_FLUSH(tty);
tty714drivers/char/tty_io.cif (!EMPTY(&tty->secondary))
tty715drivers/char/tty_io.cwake_up_interruptible(&tty->secondary.proc_list);
tty716drivers/char/tty_io.cif (tty->write_q.proc_list && LEFT(&tty->write_q) > TTY_BUF_SIZE/2)
tty717drivers/char/tty_io.cwake_up_interruptible(&tty->write_q.proc_list);
tty718drivers/char/tty_io.cif (tty->throttle && (LEFT(&tty->read_q) >= RQ_THRESHOLD_HW)
tty719drivers/char/tty_io.c&& clear_bit(TTY_RQ_THROTTLED, &tty->flags))
tty720drivers/char/tty_io.ctty->throttle(tty, TTY_THROTTLE_RQ_AVAIL);
tty721drivers/char/tty_io.cif (tty->throttle && (LEFT(&tty->secondary) >= SQ_THRESHOLD_HW)
tty722drivers/char/tty_io.c&& clear_bit(TTY_SQ_THROTTLED, &tty->flags))
tty723drivers/char/tty_io.ctty->throttle(tty, TTY_THROTTLE_SQ_AVAIL);
tty735drivers/char/tty_io.cstatic void wait_for_canon_input(struct file * file, struct tty_struct * tty)
tty737drivers/char/tty_io.cif (!available_canon_input(tty)) {
tty740drivers/char/tty_io.c__wait_for_canon_input(file, tty);
tty744drivers/char/tty_io.cstatic int read_chan(struct tty_struct * tty, struct file * file, char * buf, int nr)
tty751drivers/char/tty_io.cif (L_CANON(tty))
tty754drivers/char/tty_io.ctime = 10L*tty->termios->c_cc[VTIME];
tty755drivers/char/tty_io.cminimum = tty->termios->c_cc[VMIN];
tty769drivers/char/tty_io.cif (L_CANON(tty) && !available_canon_input(tty))
tty771drivers/char/tty_io.c} else if (L_CANON(tty)) {
tty772drivers/char/tty_io.cwait_for_canon_input(file, tty);
tty780drivers/char/tty_io.cif (tty->packet && tty->link && tty->link->ctrl_status) {
tty781drivers/char/tty_io.cput_fs_byte (tty->link->ctrl_status, b);
tty782drivers/char/tty_io.ctty->link->ctrl_status = 0;
tty787drivers/char/tty_io.cif (tty->packet) {
tty795drivers/char/tty_io.cadd_wait_queue(&tty->secondary.proc_list, &wait);
tty801drivers/char/tty_io.cTTY_READ_FLUSH(tty);
tty802drivers/char/tty_io.cif (tty->link)
tty803drivers/char/tty_io.cTTY_WRITE_FLUSH(tty->link);
tty804drivers/char/tty_io.cwhile (nr > 0 && ((c = get_tty_queue(&tty->secondary)) >= 0)) {
tty805drivers/char/tty_io.cif ((EOF_CHAR(tty) != __DISABLED_CHAR &&
tty806drivers/char/tty_io.cc==EOF_CHAR(tty)) || c==10)
tty807drivers/char/tty_io.ctty->secondary.data--;
tty808drivers/char/tty_io.cif ((EOF_CHAR(tty) != __DISABLED_CHAR &&
tty809drivers/char/tty_io.cc==EOF_CHAR(tty)) && L_CANON(tty))
tty815drivers/char/tty_io.cif (c==10 && L_CANON(tty))
tty818drivers/char/tty_io.cwake_up_interruptible(&tty->read_q.proc_list);
tty823drivers/char/tty_io.cif (tty->throttle && (LEFT(&tty->secondary) >= SQ_THRESHOLD_HW)
tty824drivers/char/tty_io.c&& clear_bit(TTY_SQ_THROTTLED, &tty->flags))
tty825drivers/char/tty_io.ctty->throttle(tty, TTY_THROTTLE_SQ_AVAIL);
tty826drivers/char/tty_io.cif (tty->link) {
tty827drivers/char/tty_io.cif (IS_A_PTY_MASTER(tty->line)) {
tty828drivers/char/tty_io.cif ((tty->flags & (1 << TTY_SLAVE_OPENED))
tty829drivers/char/tty_io.c&& tty->link->count <= 1) {
tty833drivers/char/tty_io.c} else if (!tty->link->count) {
tty842drivers/char/tty_io.cTTY_READ_FLUSH(tty);
tty843drivers/char/tty_io.cif (tty->link)
tty844drivers/char/tty_io.cTTY_WRITE_FLUSH(tty->link);
tty845drivers/char/tty_io.cif (!EMPTY(&tty->secondary))
tty848drivers/char/tty_io.cif (EMPTY(&tty->secondary))
tty852drivers/char/tty_io.cremove_wait_queue(&tty->secondary.proc_list, &wait);
tty853drivers/char/tty_io.cTTY_READ_FLUSH(tty);
tty854drivers/char/tty_io.cif (tty->link && tty->link->write)
tty855drivers/char/tty_io.cTTY_WRITE_FLUSH(tty->link);
tty860drivers/char/tty_io.cif (tty->packet) {
tty872drivers/char/tty_io.cif (IS_A_PTY_MASTER(tty->line))
tty877drivers/char/tty_io.cstatic void __wait_for_canon_input(struct file * file, struct tty_struct * tty)
tty881drivers/char/tty_io.cadd_wait_queue(&tty->secondary.proc_list, &wait);
tty884drivers/char/tty_io.cif (available_canon_input(tty))
tty893drivers/char/tty_io.cremove_wait_queue(&tty->secondary.proc_list, &wait);
tty896drivers/char/tty_io.cstatic int available_canon_input(struct tty_struct * tty)
tty898drivers/char/tty_io.cTTY_READ_FLUSH(tty);
tty899drivers/char/tty_io.cif (tty->link)
tty900drivers/char/tty_io.cif (tty->link->count)
tty901drivers/char/tty_io.cTTY_WRITE_FLUSH(tty->link);
tty904drivers/char/tty_io.cif (FULL(&tty->read_q))
tty906drivers/char/tty_io.cif (tty->secondary.data)
tty911drivers/char/tty_io.cstatic int write_chan(struct tty_struct * tty, struct file * file, char * buf, int nr)
tty920drivers/char/tty_io.cadd_wait_queue(&tty->write_q.proc_list, &wait);
tty926drivers/char/tty_io.cif (tty->link && !tty->link->count) {
tty931drivers/char/tty_io.cif (FULL(&tty->write_q)) {
tty932drivers/char/tty_io.cTTY_WRITE_FLUSH(tty);
tty933drivers/char/tty_io.cif (FULL(&tty->write_q))
tty939drivers/char/tty_io.cwhile (nr>0 && !FULL(&tty->write_q)) {
tty941drivers/char/tty_io.cif (O_POST(tty)) {
tty944drivers/char/tty_io.cif (O_NLRET(tty)) {
tty945drivers/char/tty_io.ctty->column = 0;
tty947drivers/char/tty_io.cif (O_NLCR(tty)) {
tty948drivers/char/tty_io.cif (!set_bit(TTY_CR_PENDING,&tty->flags)) {
tty950drivers/char/tty_io.ctty->column = 0;
tty953drivers/char/tty_io.cclear_bit(TTY_CR_PENDING,&tty->flags);
tty958drivers/char/tty_io.cif (O_NOCR(tty) && tty->column == 0) {
tty962drivers/char/tty_io.cif (O_CRNL(tty)) {
tty964drivers/char/tty_io.cif (O_NLRET(tty))
tty965drivers/char/tty_io.ctty->column = 0;
tty968drivers/char/tty_io.ctty->column = 0;
tty971drivers/char/tty_io.cif (O_TABDLY(tty) == XTABS) {
tty973drivers/char/tty_io.ctty->column++;
tty974drivers/char/tty_io.cif (tty->column % 8 != 0) {
tty980drivers/char/tty_io.ctty->column--;
tty983drivers/char/tty_io.cif (O_LCUC(tty))
tty985drivers/char/tty_io.ctty->column++;
tty990drivers/char/tty_io.cput_tty_queue(c,&tty->write_q);
tty995drivers/char/tty_io.cremove_wait_queue(&tty->write_q.proc_list, &wait);
tty996drivers/char/tty_io.cTTY_WRITE_FLUSH(tty);
tty999drivers/char/tty_io.cif (tty->link && !tty->link->count)
tty1009drivers/char/tty_io.cstruct tty_struct * tty;
tty1017drivers/char/tty_io.ctty = TTY_TABLE(dev);
tty1018drivers/char/tty_io.cif (!tty || (tty->flags & (1 << TTY_IO_ERROR)))
tty1021drivers/char/tty_io.c(tty->pgrp > 0) &&
tty1022drivers/char/tty_io.c(current->tty == dev) &&
tty1023drivers/char/tty_io.c(tty->pgrp != current->pgrp))
tty1030drivers/char/tty_io.cif (ldiscs[tty->disc].read)
tty1031drivers/char/tty_io.ci = (ldiscs[tty->disc].read)(tty,file,buf,count);
tty1042drivers/char/tty_io.cstruct tty_struct * tty;
tty1052drivers/char/tty_io.ctty = redirect;
tty1054drivers/char/tty_io.ctty = TTY_TABLE(dev);
tty1055drivers/char/tty_io.cif (!tty || !tty->write || (tty->flags & (1 << TTY_IO_ERROR)))
tty1057drivers/char/tty_io.cif (!is_console && L_TOSTOP(tty) && (tty->pgrp > 0) &&
tty1058drivers/char/tty_io.c(current->tty == dev) && (tty->pgrp != current->pgrp)) {
tty1066drivers/char/tty_io.cif (ldiscs[tty->disc].write)
tty1067drivers/char/tty_io.ci = (ldiscs[tty->disc].write)(tty,file,buf,count);
tty1082drivers/char/tty_io.cstruct tty_struct *tty, *o_tty;
tty1088drivers/char/tty_io.ctty = o_tty = NULL;
tty1096drivers/char/tty_io.cif (!tty_table[dev] && !tty) {
tty1097drivers/char/tty_io.cif (!(tty = (struct tty_struct*) get_free_page(GFP_KERNEL)))
tty1099drivers/char/tty_io.cinitialize_tty_struct(dev, tty);
tty1151drivers/char/tty_io.ctty->termios = tty_termios[dev];
tty1152drivers/char/tty_io.ctty_table[dev] = tty;
tty1153drivers/char/tty_io.ctty = NULL;
tty1181drivers/char/tty_io.cif (tty)
tty1182drivers/char/tty_io.cfree_page((unsigned long) tty);
tty1203drivers/char/tty_io.cstruct tty_struct *tty, *o_tty;
tty1207drivers/char/tty_io.ctty = tty_table[dev];
tty1211drivers/char/tty_io.cif (!tty) {
tty1220drivers/char/tty_io.cprintk("release_dev of tty%d (tty count=%d)...", dev, tty->count);
tty1233drivers/char/tty_io.cif (tty->link != o_tty || o_tty->link != tty) {
tty1238drivers/char/tty_io.ctty->write_data_cnt = 0; /* Clear out pending trash */
tty1239drivers/char/tty_io.cif (tty->close)
tty1240drivers/char/tty_io.ctty->close(tty, filp);
tty1242drivers/char/tty_io.cif (--tty->link->count < 0) {
tty1244drivers/char/tty_io.cdev, tty->count);
tty1245drivers/char/tty_io.ctty->link->count = 0;
tty1248drivers/char/tty_io.cif (--tty->count < 0) {
tty1250drivers/char/tty_io.cdev, tty->count);
tty1251drivers/char/tty_io.ctty->count = 0;
tty1253drivers/char/tty_io.cif (tty->count)
tty1265drivers/char/tty_io.cif ((*p) && (*p)->tty == tty->line)
tty1266drivers/char/tty_io.c(*p)->tty = -1;
tty1273drivers/char/tty_io.cif (ldiscs[tty->disc].close != NULL)
tty1274drivers/char/tty_io.cldiscs[tty->disc].close(tty);
tty1275drivers/char/tty_io.ctty->disc = N_TTY;
tty1276drivers/char/tty_io.ctty->termios->c_line = N_TTY;
tty1291drivers/char/tty_io.cif (tty == redirect || o_tty == redirect)
tty1293drivers/char/tty_io.cfree_page((unsigned long) tty);
tty1314drivers/char/tty_io.cstruct tty_struct *tty;
tty1325drivers/char/tty_io.cminor = current->tty;
tty1345drivers/char/tty_io.ctty = tty_table[minor];
tty1347drivers/char/tty_io.cprintk("opening tty%d...", tty->line);
tty1349drivers/char/tty_io.cif (test_bit(TTY_EXCLUSIVE, &tty->flags) && !suser())
tty1362drivers/char/tty_io.ctty->ctrl_status = 0;
tty1363drivers/char/tty_io.ctty->packet = 0;
tty1365drivers/char/tty_io.cif (tty->open) {
tty1366drivers/char/tty_io.cretval = tty->open(tty, filp);
tty1372drivers/char/tty_io.cprintk("error %d in opening tty%d...", retval, tty->line);
tty1385drivers/char/tty_io.ccurrent->tty<0 &&
tty1386drivers/char/tty_io.ctty->session==0) {
tty1387drivers/char/tty_io.ccurrent->tty = minor;
tty1388drivers/char/tty_io.ctty->session = current->session;
tty1389drivers/char/tty_io.ctty->pgrp = current->pgrp;
tty1420drivers/char/tty_io.cstruct tty_struct * tty;
tty1428drivers/char/tty_io.ctty = TTY_TABLE(dev);
tty1429drivers/char/tty_io.cif (!tty) {
tty1435drivers/char/tty_io.cif (L_CANON(tty)) {
tty1436drivers/char/tty_io.cif (available_canon_input(tty))
tty1438drivers/char/tty_io.c} else if (!EMPTY(&tty->secondary))
tty1440drivers/char/tty_io.cif (tty->link) {
tty1441drivers/char/tty_io.cif (IS_A_PTY_MASTER(tty->line)) {
tty1442drivers/char/tty_io.cif ((tty->flags & (1 << TTY_SLAVE_OPENED))
tty1443drivers/char/tty_io.c&& tty->link->count <= 1)
tty1446drivers/char/tty_io.cif (!tty->link->count)
tty1452drivers/char/tty_io.cif (tty->packet && tty->link && tty->link->ctrl_status)
tty1455drivers/char/tty_io.cselect_wait(&tty->secondary.proc_list, wait);
tty1458drivers/char/tty_io.cif (!FULL(&tty->write_q))
tty1460drivers/char/tty_io.cselect_wait(&tty->write_q.proc_list, wait);
tty1463drivers/char/tty_io.cif (tty->link) {
tty1464drivers/char/tty_io.cif (IS_A_PTY_MASTER(tty->line)) {
tty1465drivers/char/tty_io.cif ((tty->flags & (1 << TTY_SLAVE_OPENED))
tty1466drivers/char/tty_io.c&& tty->link->count <= 1)
tty1468drivers/char/tty_io.cif (tty->packet
tty1469drivers/char/tty_io.c&& tty->link->ctrl_status)
tty1472drivers/char/tty_io.cif (!tty->link->count)
tty1476drivers/char/tty_io.cselect_wait(&tty->except_q, wait);
tty1494drivers/char/tty_io.cvoid do_SAK( struct tty_struct *tty)
tty1497drivers/char/tty_io.ctty_hangup(tty);
tty1500drivers/char/tty_io.cint line = tty->line;
tty1501drivers/char/tty_io.cint session = tty->session;
tty1505drivers/char/tty_io.cflush_input(tty);
tty1506drivers/char/tty_io.cflush_output(tty);
tty1510drivers/char/tty_io.cif (((*p)->tty == line) ||
tty1542drivers/char/tty_io.cint tty_write_data(struct tty_struct *tty, char *bufp, int buflen,
tty1553drivers/char/tty_io.cif (tty->write_data_cnt) {
tty1558drivers/char/tty_io.chead = tty->write_q.head;
tty1559drivers/char/tty_io.ctail = tty->write_q.tail;
tty1564drivers/char/tty_io.ctty->write_q.buf[head++] = *p++;
tty1568drivers/char/tty_io.ctty->write_q.head = head;
tty1570drivers/char/tty_io.ctty->write_data_cnt = count;
tty1571drivers/char/tty_io.ctty->write_data_ptr = (unsigned char *) p;
tty1572drivers/char/tty_io.ctty->write_data_callback = callback;
tty1573drivers/char/tty_io.ctty->write_data_arg = callarg;
tty1576drivers/char/tty_io.ctty->write(tty);
tty1593drivers/char/tty_io.cstruct tty_struct * tty;
tty1602drivers/char/tty_io.ctty = tty_table[line];
tty1603drivers/char/tty_io.cif (!tty || !tty->write_data_cnt)
tty1606drivers/char/tty_io.chead = tty->write_q.head;
tty1607drivers/char/tty_io.ctail = tty->write_q.tail;
tty1608drivers/char/tty_io.ccount = tty->write_data_cnt;
tty1609drivers/char/tty_io.cp = tty->write_data_ptr;
tty1612drivers/char/tty_io.ctty->write_q.buf[head++] = *p++;
tty1616drivers/char/tty_io.ctty->write_q.head = head;
tty1617drivers/char/tty_io.ctty->write_data_ptr = p;
tty1618drivers/char/tty_io.ctty->write_data_cnt = count;
tty1621drivers/char/tty_io.c(tty->write_data_callback)
tty1622drivers/char/tty_io.c(tty->write_data_arg);
tty1633drivers/char/tty_io.cstatic void initialize_tty_struct(int line, struct tty_struct *tty)
tty1635drivers/char/tty_io.cmemset(tty, 0, sizeof(struct tty_struct));
tty1636drivers/char/tty_io.ctty->line = line;
tty1637drivers/char/tty_io.ctty->disc = N_TTY;
tty1638drivers/char/tty_io.ctty->pgrp = -1;
tty1639drivers/char/tty_io.ctty->winsize.ws_row = 0;
tty1640drivers/char/tty_io.ctty->winsize.ws_col = 0;
tty1642drivers/char/tty_io.ctty->open = con_open;
tty1643drivers/char/tty_io.ctty->winsize.ws_row = video_num_lines;
tty1644drivers/char/tty_io.ctty->winsize.ws_col = video_num_columns;
tty1646drivers/char/tty_io.ctty->open = rs_open;
tty1648drivers/char/tty_io.ctty->open = pty_open;
tty1650drivers/char/tty_io.ctty->except_q = NULL;
tty39drivers/char/tty_ioctl.cextern int paste_selection(struct tty_struct *tty);
tty42drivers/char/tty_ioctl.cstatic int tty_set_ldisc(struct tty_struct *tty, int ldisc);
tty54drivers/char/tty_ioctl.cvoid flush_input(struct tty_struct * tty)
tty56drivers/char/tty_ioctl.ctty->ctrl_status |= TIOCPKT_FLUSHREAD;
tty57drivers/char/tty_ioctl.cif (tty->link)
tty58drivers/char/tty_ioctl.cwake_up_interruptible(&tty->link->except_q);
tty59drivers/char/tty_ioctl.cflush(&tty->read_q);
tty60drivers/char/tty_ioctl.cwake_up_interruptible(&tty->read_q.proc_list);
tty61drivers/char/tty_ioctl.cflush(&tty->secondary);
tty62drivers/char/tty_ioctl.ctty->secondary.data = 0;
tty64drivers/char/tty_ioctl.cif ((tty = tty->link) != NULL) {
tty65drivers/char/tty_ioctl.cflush(&tty->write_q);
tty66drivers/char/tty_ioctl.cwake_up_interruptible(&tty->write_q.proc_list);
tty70drivers/char/tty_ioctl.cvoid flush_output(struct tty_struct * tty)
tty72drivers/char/tty_ioctl.ctty->ctrl_status |= TIOCPKT_FLUSHWRITE;
tty73drivers/char/tty_ioctl.cif (tty->link)
tty74drivers/char/tty_ioctl.cwake_up_interruptible(&tty->link->except_q);
tty75drivers/char/tty_ioctl.cflush(&tty->write_q);
tty76drivers/char/tty_ioctl.cwake_up_interruptible(&tty->write_q.proc_list);
tty77drivers/char/tty_ioctl.cif ((tty = tty->link) != NULL) {
tty78drivers/char/tty_ioctl.cflush(&tty->read_q);
tty79drivers/char/tty_ioctl.cwake_up_interruptible(&tty->read_q.proc_list);
tty80drivers/char/tty_ioctl.cflush(&tty->secondary);
tty81drivers/char/tty_ioctl.ctty->secondary.data = 0;
tty85drivers/char/tty_ioctl.cvoid wait_until_sent(struct tty_struct * tty)
tty89drivers/char/tty_ioctl.cTTY_WRITE_FLUSH(tty);
tty90drivers/char/tty_ioctl.cif (EMPTY(&tty->write_q))
tty92drivers/char/tty_ioctl.cadd_wait_queue(&tty->write_q.proc_list, &wait);
tty98drivers/char/tty_ioctl.cTTY_WRITE_FLUSH(tty);
tty99drivers/char/tty_ioctl.cif (EMPTY(&tty->write_q))
tty104drivers/char/tty_ioctl.cremove_wait_queue(&tty->write_q.proc_list, &wait);
tty159drivers/char/tty_ioctl.cstatic int get_termios(struct tty_struct * tty, struct termios * termios)
tty167drivers/char/tty_ioctl.cput_fs_byte( ((char *)tty->termios)[i] , i+(char *)termios );
tty171drivers/char/tty_ioctl.cstatic int check_change(struct tty_struct * tty, int channel)
tty176drivers/char/tty_ioctl.cif (current->tty != channel)
tty178drivers/char/tty_ioctl.cif (tty->pgrp <= 0 || tty->pgrp == current->pgrp)
tty188drivers/char/tty_ioctl.cstatic int set_termios(struct tty_struct * tty, struct termios * termios,
tty192drivers/char/tty_ioctl.cstruct termios old_termios = *tty->termios;
tty194drivers/char/tty_ioctl.ci = check_change(tty, channel);
tty198drivers/char/tty_ioctl.c((char *)tty->termios)[i]=get_fs_byte(i+(char *)termios);
tty206drivers/char/tty_ioctl.cnew_flow = (tty->termios->c_iflag & IXON) &&
tty207drivers/char/tty_ioctl.c(tty->termios->c_cc[VSTOP] == '\023') &&
tty208drivers/char/tty_ioctl.c(tty->termios->c_cc[VSTART] == '\021');
tty211drivers/char/tty_ioctl.ctty->ctrl_status &= ~(TIOCPKT_DOSTOP|TIOCPKT_NOSTOP);
tty213drivers/char/tty_ioctl.ctty->ctrl_status |= TIOCPKT_DOSTOP;
tty215drivers/char/tty_ioctl.ctty->ctrl_status |= TIOCPKT_NOSTOP;    
tty216drivers/char/tty_ioctl.cif (tty->link)
tty217drivers/char/tty_ioctl.cwake_up_interruptible(&tty->link->except_q);
tty226drivers/char/tty_ioctl.cif (IS_A_PTY_MASTER(channel)) tty->termios->c_lflag &= ~ECHO;
tty229drivers/char/tty_ioctl.cunset_locked_termios(tty->termios, &old_termios,
tty230drivers/char/tty_ioctl.ctermios_locked[tty->line]);
tty233drivers/char/tty_ioctl.cretval = tty_set_ldisc(tty, tty->termios->c_line);
tty238drivers/char/tty_ioctl.cif (tty->set_termios)
tty239drivers/char/tty_ioctl.c(*tty->set_termios)(tty, &old_termios);
tty244drivers/char/tty_ioctl.cstatic int get_termio(struct tty_struct * tty, struct termio * termio)
tty252drivers/char/tty_ioctl.ctmp_termio.c_iflag = tty->termios->c_iflag;
tty253drivers/char/tty_ioctl.ctmp_termio.c_oflag = tty->termios->c_oflag;
tty254drivers/char/tty_ioctl.ctmp_termio.c_cflag = tty->termios->c_cflag;
tty255drivers/char/tty_ioctl.ctmp_termio.c_lflag = tty->termios->c_lflag;
tty256drivers/char/tty_ioctl.ctmp_termio.c_line = tty->termios->c_line;
tty258drivers/char/tty_ioctl.ctmp_termio.c_cc[i] = tty->termios->c_cc[i];
tty264drivers/char/tty_ioctl.cstatic int set_termio(struct tty_struct * tty, struct termio * termio,
tty269drivers/char/tty_ioctl.cstruct termios old_termios = *tty->termios;
tty273drivers/char/tty_ioctl.ci = check_change(tty, channel);
tty278drivers/char/tty_ioctl.cSET_LOW_BITS(tty->termios->c_iflag, tmp_termio.c_iflag);
tty279drivers/char/tty_ioctl.cSET_LOW_BITS(tty->termios->c_oflag, tmp_termio.c_oflag);
tty280drivers/char/tty_ioctl.cSET_LOW_BITS(tty->termios->c_cflag, tmp_termio.c_cflag);
tty281drivers/char/tty_ioctl.cSET_LOW_BITS(tty->termios->c_lflag, tmp_termio.c_lflag);
tty282drivers/char/tty_ioctl.cmemcpy(tty->termios->c_cc, tmp_termio.c_cc, NCC);
tty290drivers/char/tty_ioctl.cnew_flow = (tty->termios->c_iflag & IXON) &&
tty291drivers/char/tty_ioctl.c(tty->termios->c_cc[VSTOP] == '\023') &&
tty292drivers/char/tty_ioctl.c(tty->termios->c_cc[VSTART] == '\021');
tty295drivers/char/tty_ioctl.ctty->ctrl_status &= ~(TIOCPKT_DOSTOP|TIOCPKT_NOSTOP);
tty297drivers/char/tty_ioctl.ctty->ctrl_status |= TIOCPKT_DOSTOP;
tty299drivers/char/tty_ioctl.ctty->ctrl_status |= TIOCPKT_NOSTOP;    
tty300drivers/char/tty_ioctl.cif (tty->link)
tty301drivers/char/tty_ioctl.cwake_up_interruptible(&tty->link->except_q);
tty304drivers/char/tty_ioctl.cunset_locked_termios(tty->termios, &old_termios,
tty305drivers/char/tty_ioctl.ctermios_locked[tty->line]);
tty308drivers/char/tty_ioctl.cretval = tty_set_ldisc(tty, tmp_termio.c_line);
tty313drivers/char/tty_ioctl.cif (tty->set_termios)
tty314drivers/char/tty_ioctl.c(*tty->set_termios)(tty, &old_termios);
tty319drivers/char/tty_ioctl.cstatic int get_lcktrmios(struct tty_struct * tty, struct termios * termios,
tty333drivers/char/tty_ioctl.cstatic int set_lcktrmios(struct tty_struct * tty, struct termios * termios,
tty347drivers/char/tty_ioctl.cstatic int set_window_size(struct tty_struct * tty, struct winsize * ws)
tty354drivers/char/tty_ioctl.ctmp = (char *) &tty->winsize;
tty364drivers/char/tty_ioctl.ckill_pg(tty->pgrp, SIGWINCH, 1);
tty368drivers/char/tty_ioctl.cstatic int get_window_size(struct tty_struct * tty, struct winsize * ws)
tty380drivers/char/tty_ioctl.cput_fs_byte(((char *) &tty->winsize)[i], tmp);
tty385drivers/char/tty_ioctl.cstatic int tty_set_ldisc(struct tty_struct *tty, int ldisc)
tty391drivers/char/tty_ioctl.cif (tty->disc == ldisc)
tty395drivers/char/tty_ioctl.cwait_until_sent(tty);
tty396drivers/char/tty_ioctl.cflush_input(tty);
tty397drivers/char/tty_ioctl.cif (ldiscs[tty->disc].close)
tty398drivers/char/tty_ioctl.cldiscs[tty->disc].close(tty);
tty401drivers/char/tty_ioctl.ctty->disc = ldisc;
tty402drivers/char/tty_ioctl.ctty->termios->c_line = ldisc;
tty403drivers/char/tty_ioctl.cif (ldiscs[tty->disc].open)
tty404drivers/char/tty_ioctl.creturn(ldiscs[tty->disc].open(tty));
tty409drivers/char/tty_ioctl.cstatic int inq_canon(struct tty_struct * tty)
tty413drivers/char/tty_ioctl.cif (!tty->secondary.data)
tty415drivers/char/tty_ioctl.chead = tty->secondary.head;
tty416drivers/char/tty_ioctl.ctail = tty->secondary.tail;
tty419drivers/char/tty_ioctl.cif (EOF_CHAR(tty) == __DISABLED_CHAR)
tty422drivers/char/tty_ioctl.cif (tty->secondary.buf[tail] == EOF_CHAR(tty))
tty432drivers/char/tty_ioctl.cstruct tty_struct * tty;
tty445drivers/char/tty_ioctl.ctty = TTY_TABLE(dev);
tty446drivers/char/tty_ioctl.cif (!tty)
tty452drivers/char/tty_ioctl.ctermios_tty = tty;
tty462drivers/char/tty_ioctl.cflush_input(tty);
tty465drivers/char/tty_ioctl.cwait_until_sent(tty);
tty472drivers/char/tty_ioctl.cflush_input(tty);
tty475drivers/char/tty_ioctl.cwait_until_sent(tty); /* fallthrough */
tty481drivers/char/tty_ioctl.ctty->stopped = 1;
tty482drivers/char/tty_ioctl.cif (tty->stop)
tty483drivers/char/tty_ioctl.c(tty->stop)(tty);
tty484drivers/char/tty_ioctl.cTTY_WRITE_FLUSH(tty);
tty487drivers/char/tty_ioctl.ctty->stopped = 0;
tty488drivers/char/tty_ioctl.cif (tty->start)
tty489drivers/char/tty_ioctl.c(tty->start)(tty);
tty490drivers/char/tty_ioctl.cTTY_WRITE_FLUSH(tty);
tty493drivers/char/tty_ioctl.cif (STOP_CHAR(tty))
tty494drivers/char/tty_ioctl.cput_tty_queue(STOP_CHAR(tty),
tty495drivers/char/tty_ioctl.c&tty->write_q);
tty498drivers/char/tty_ioctl.cif (START_CHAR(tty))
tty499drivers/char/tty_ioctl.cput_tty_queue(START_CHAR(tty),
tty500drivers/char/tty_ioctl.c&tty->write_q);
tty506drivers/char/tty_ioctl.cflush_input(tty);
tty508drivers/char/tty_ioctl.cflush_output(tty);
tty510drivers/char/tty_ioctl.cflush_input(tty);
tty511drivers/char/tty_ioctl.cflush_output(tty);
tty516drivers/char/tty_ioctl.cset_bit(TTY_EXCLUSIVE, &tty->flags);
tty519drivers/char/tty_ioctl.cclear_bit(TTY_EXCLUSIVE, &tty->flags);
tty523drivers/char/tty_ioctl.c(current->session == tty->session))
tty529drivers/char/tty_ioctl.cif (!current->leader || (current->tty >= 0))
tty531drivers/char/tty_ioctl.cif (tty->session > 0) {
tty543drivers/char/tty_ioctl.cif (p->tty == dev)
tty544drivers/char/tty_ioctl.cp->tty = -1;
tty548drivers/char/tty_ioctl.ccurrent->tty = dev;
tty549drivers/char/tty_ioctl.ctty->session = current->session;
tty550drivers/char/tty_ioctl.ctty->pgrp = current->pgrp;
tty558drivers/char/tty_ioctl.cif ((current->tty < 0) ||
tty559drivers/char/tty_ioctl.c(current->tty != termios_dev) ||
tty572drivers/char/tty_ioctl.cput_fs_long(CHARS(&tty->write_q),
tty579drivers/char/tty_ioctl.cif (L_CANON(tty))
tty580drivers/char/tty_ioctl.cput_fs_long(inq_canon(tty),
tty583drivers/char/tty_ioctl.cput_fs_long(CHARS(&tty->secondary),
tty587drivers/char/tty_ioctl.cif ((current->tty != dev) && !suser())
tty589drivers/char/tty_ioctl.cput_tty_queue(get_fs_byte((char *) arg), &tty->read_q);
tty592drivers/char/tty_ioctl.creturn get_window_size(tty,(struct winsize *) arg);
tty596drivers/char/tty_ioctl.creturn set_window_size(tty,(struct winsize *) arg);
tty612drivers/char/tty_ioctl.creturn paste_selection(tty);
tty631drivers/char/tty_ioctl.credirect = tty;
tty643drivers/char/tty_ioctl.cif (MINOR(file->f_rdev) != current->tty)
tty647drivers/char/tty_ioctl.ccurrent->tty = -1;
tty652drivers/char/tty_ioctl.cput_fs_long(tty->disc, (unsigned long *) arg);
tty656drivers/char/tty_ioctl.creturn tty_set_ldisc(tty, arg);
tty659drivers/char/tty_ioctl.creturn get_lcktrmios(tty, (struct termios *) arg,
tty663drivers/char/tty_ioctl.creturn set_lcktrmios(tty, (struct termios *) arg,
tty672drivers/char/tty_ioctl.ctty->packet = (get_fs_long ((unsigned long *)arg) != 0);
tty675drivers/char/tty_ioctl.cwait_until_sent(tty);
tty676drivers/char/tty_ioctl.cif (!tty->ioctl)
tty678drivers/char/tty_ioctl.ctty->ioctl(tty, file, cmd, arg);
tty681drivers/char/tty_ioctl.cif (tty->ioctl) {
tty682drivers/char/tty_ioctl.cretval = (tty->ioctl)(tty, file, cmd, arg);
tty686drivers/char/tty_ioctl.cif (ldiscs[tty->disc].ioctl) {
tty687drivers/char/tty_ioctl.cretval = (ldiscs[tty->disc].ioctl)
tty688drivers/char/tty_ioctl.c(tty, file, cmd, arg);
tty108drivers/char/vt.cint vt_ioctl(struct tty_struct *tty, struct file * file,
tty115drivers/char/vt.cconsole = tty->line - 1;
tty224drivers/char/vt.cflush_input(tty);
tty150drivers/net/slip.csl->tty    = NULL;
tty170drivers/net/slip.csl_find(struct tty_struct *tty)
tty175drivers/net/slip.cif (tty == NULL) return(NULL);
tty178drivers/net/slip.cif (sl->tty == tty) return(sl);
tty198drivers/net/slip.csl->tty = NULL;
tty218drivers/net/slip.csl->tty = NULL;
tty498drivers/net/slip.cif (tty_write_data(sl->tty, (char *) bp, count,
tty525drivers/net/slip.cstruct tty_struct *tty;
tty530drivers/net/slip.ctty = sl->tty;
tty693drivers/net/slip.cif (sl->tty == NULL) {
tty764drivers/net/slip.cif (sl->tty == NULL) {
tty790drivers/net/slip.cslip_recv(struct tty_struct *tty)
tty797drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: slip_recv(%d) called\n", tty->line));
tty798drivers/net/slip.cif ((sl = sl_find(tty)) == NULL) return;  /* not connected */
tty805drivers/net/slip.ccount = tty_read_raw_data(tty, buff, 128);
tty854drivers/net/slip.cslip_open(struct tty_struct *tty)
tty859drivers/net/slip.cif ((sl = sl_find(tty)) != NULL) {
tty861drivers/net/slip.ctty->line, sl->dev->name));
tty868drivers/net/slip.ctty->line));
tty871drivers/net/slip.csl->tty = tty;
tty872drivers/net/slip.ctty_read_flush(tty);
tty873drivers/net/slip.ctty_write_flush(tty);
tty878drivers/net/slip.ctty->line, sl->dev->name));
tty923drivers/net/slip.cslip_close(struct tty_struct *tty)
tty928drivers/net/slip.cif ((sl = sl_find(tty)) == NULL) {
tty929drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: TTY %d not connected !\n", tty->line));
tty935drivers/net/slip.ctty->line, sl->dev->name));
tty1123drivers/net/slip.cslip_ioctl(struct tty_struct *tty, void *file, int cmd, void *arg)
tty1129drivers/net/slip.cif ((sl = sl_find(tty)) == NULL) {
tty1130drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: ioctl: TTY %d not connected !\n", tty->line));
tty1134drivers/net/slip.cDPRINTF((DBG_SLIP, "SLIP: ioctl(%d, 0x%X, 0x%X)\n", tty->line, cmd, arg));
tty38drivers/net/slip.hstruct tty_struct  *tty;    /* ptr to TTY structure    */
tty461fs/open.cstruct tty_struct *tty;
tty466fs/open.cif (current->tty < 0)
tty468fs/open.ctty = TTY_TABLE(MINOR(current->tty));
tty469fs/open.ctty_vhangup(tty);
tty258fs/proc/array.ctty_pgrp = (*p)->tty;
tty272fs/proc/array.c(*p)->tty,
tty202include/linux/sched.hint tty;    /* -1 if no tty, so it must be signed */
tty28include/linux/serial.hstruct tty_struct   *tty;
tty147include/linux/tty.h#define INTR_CHAR(tty) ((tty)->termios->c_cc[VINTR])
tty148include/linux/tty.h#define QUIT_CHAR(tty) ((tty)->termios->c_cc[VQUIT])
tty149include/linux/tty.h#define ERASE_CHAR(tty) ((tty)->termios->c_cc[VERASE])
tty150include/linux/tty.h#define KILL_CHAR(tty) ((tty)->termios->c_cc[VKILL])
tty151include/linux/tty.h#define WERASE_CHAR(tty) ((tty)->termios->c_cc[VWERASE])
tty152include/linux/tty.h#define EOF_CHAR(tty) ((tty)->termios->c_cc[VEOF])
tty153include/linux/tty.h#define START_CHAR(tty) ((tty)->termios->c_cc[VSTART])
tty154include/linux/tty.h#define STOP_CHAR(tty) ((tty)->termios->c_cc[VSTOP])
tty155include/linux/tty.h#define SUSPEND_CHAR(tty) ((tty)->termios->c_cc[VSUSP])
tty156include/linux/tty.h#define LNEXT_CHAR(tty)  ((tty)->termios->c_cc[VLNEXT])
tty158include/linux/tty.h#define _L_FLAG(tty,f)  ((tty)->termios->c_lflag & f)
tty159include/linux/tty.h#define _I_FLAG(tty,f)  ((tty)->termios->c_iflag & f)
tty160include/linux/tty.h#define _O_FLAG(tty,f)  ((tty)->termios->c_oflag & f)
tty161include/linux/tty.h#define _C_FLAG(tty,f)  ((tty)->termios->c_cflag & f)
tty163include/linux/tty.h#define L_CANON(tty)  _L_FLAG((tty),ICANON)
tty164include/linux/tty.h#define L_ISIG(tty)  _L_FLAG((tty),ISIG)
tty165include/linux/tty.h#define L_ECHO(tty)  _L_FLAG((tty),ECHO)
tty166include/linux/tty.h#define L_ECHOE(tty)  _L_FLAG((tty),ECHOE)
tty167include/linux/tty.h#define L_ECHOK(tty)  _L_FLAG((tty),ECHOK)
tty168include/linux/tty.h#define L_ECHONL(tty)  _L_FLAG((tty),ECHONL)
tty169include/linux/tty.h#define L_ECHOCTL(tty)  _L_FLAG((tty),ECHOCTL)
tty170include/linux/tty.h#define L_ECHOKE(tty)  _L_FLAG((tty),ECHOKE)
tty171include/linux/tty.h#define L_TOSTOP(tty)  _L_FLAG((tty),TOSTOP)
tty173include/linux/tty.h#define I_IGNBRK(tty)  _I_FLAG((tty),IGNBRK)
tty174include/linux/tty.h#define I_BRKINT(tty)  _I_FLAG((tty),BRKINT)
tty175include/linux/tty.h#define I_IGNPAR(tty)  _I_FLAG((tty),IGNPAR)
tty176include/linux/tty.h#define I_PARMRK(tty)  _I_FLAG((tty),PARMRK)
tty177include/linux/tty.h#define I_INPCK(tty)  _I_FLAG((tty),INPCK)
tty178include/linux/tty.h#define I_UCLC(tty)  _I_FLAG((tty),IUCLC)
tty179include/linux/tty.h#define I_NLCR(tty)  _I_FLAG((tty),INLCR)
tty180include/linux/tty.h#define I_CRNL(tty)  _I_FLAG((tty),ICRNL)
tty181include/linux/tty.h#define I_NOCR(tty)  _I_FLAG((tty),IGNCR)
tty182include/linux/tty.h#define I_IXON(tty)  _I_FLAG((tty),IXON)
tty183include/linux/tty.h#define I_IXANY(tty)  _I_FLAG((tty),IXANY)
tty184include/linux/tty.h#define I_STRP(tty)  _I_FLAG((tty),ISTRIP)
tty186include/linux/tty.h#define O_POST(tty)  _O_FLAG((tty),OPOST)
tty187include/linux/tty.h#define O_LCUC(tty)  _O_FLAG((tty),OLCUC)
tty188include/linux/tty.h#define O_NLCR(tty)  _O_FLAG((tty),ONLCR)
tty189include/linux/tty.h#define O_CRNL(tty)  _O_FLAG((tty),OCRNL)
tty190include/linux/tty.h#define O_NOCR(tty)  _O_FLAG((tty),ONOCR)
tty191include/linux/tty.h#define O_NLRET(tty)  _O_FLAG((tty),ONLRET)
tty192include/linux/tty.h#define O_TABDLY(tty)  _O_FLAG((tty),TABDLY)
tty194include/linux/tty.h#define C_LOCAL(tty)  _C_FLAG((tty),CLOCAL)
tty195include/linux/tty.h#define C_RTSCTS(tty)  _C_FLAG((tty),CRTSCTS)
tty196include/linux/tty.h#define C_SPEED(tty)  ((tty)->termios->c_cflag & CBAUD)
tty197include/linux/tty.h#define C_HUP(tty)  (C_SPEED((tty)) == B0)
tty226include/linux/tty.hint  (*open)(struct tty_struct * tty, struct file * filp);
tty227include/linux/tty.hvoid (*close)(struct tty_struct * tty, struct file * filp);
tty228include/linux/tty.hvoid (*write)(struct tty_struct * tty);
tty229include/linux/tty.hint  (*ioctl)(struct tty_struct *tty, struct file * file,
tty231include/linux/tty.hvoid (*throttle)(struct tty_struct * tty, int status);
tty232include/linux/tty.hvoid (*set_termios)(struct tty_struct *tty, struct termios * old);
tty233include/linux/tty.hvoid (*stop)(struct tty_struct *tty);
tty234include/linux/tty.hvoid (*start)(struct tty_struct *tty);
tty235include/linux/tty.hvoid (*hangup)(struct tty_struct *tty);
tty256include/linux/tty.hint  (*read)(struct tty_struct * tty, struct file * file,
tty258include/linux/tty.hint  (*write)(struct tty_struct * tty, struct file * file,
tty260include/linux/tty.hint  (*ioctl)(struct tty_struct * tty, struct file * file,
tty328include/linux/tty.h#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))
tty329include/linux/tty.h#define TTY_READ_FLUSH(tty) tty_read_flush((tty))
tty361include/linux/tty.hextern void flush_input(struct tty_struct * tty);
tty362include/linux/tty.hextern void flush_output(struct tty_struct * tty);
tty363include/linux/tty.hextern void wait_until_sent(struct tty_struct * tty);
tty364include/linux/tty.hextern void copy_to_cooked(struct tty_struct * tty);
tty366include/linux/tty.hextern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,
tty368include/linux/tty.hextern int tty_write_data(struct tty_struct *tty, char *bufp, int buflen,
tty374include/linux/tty.hextern int tty_signal(int sig, struct tty_struct *tty);
tty375include/linux/tty.hextern void tty_hangup(struct tty_struct * tty);
tty376include/linux/tty.hextern void tty_vhangup(struct tty_struct * tty);
tty379include/linux/tty.hextern void do_SAK(struct tty_struct *tty);
tty384include/linux/tty.hextern void rs_write(struct tty_struct * tty);
tty385include/linux/tty.hextern void con_write(struct tty_struct * tty);
tty389include/linux/tty.hextern int  rs_open(struct tty_struct * tty, struct file * filp);
tty393include/linux/tty.hextern int  pty_open(struct tty_struct * tty, struct file * filp);
tty397include/linux/tty.hextern int con_open(struct tty_struct * tty, struct file * filp);
tty404include/linux/tty.hextern int vt_ioctl(struct tty_struct *tty, struct file * file,
tty504kernel/sys.ccurrent->tty = -1;