Welcome to The Fiwix Project
A UNIX-like kernel for the i386 architecture
tty 367 drivers/char/console.c vc->tty->pid = 0; tty 371 drivers/char/console.c static void insert_seq(struct tty *tty, char *buf, int count) tty 374 drivers/char/console.c tty_queue_putchar(tty, &tty->read_q, *(buf++)); tty 376 drivers/char/console.c tty->input(tty); tty 432 drivers/char/console.c if(vc->tty->tab_stop[++vc->x]) { tty 474 drivers/char/console.c void vconsole_reset(struct tty *tty) tty 479 drivers/char/console.c vc = (struct vconsole *)tty->driver_data; tty 498 drivers/char/console.c vc->tty->tab_stop[n] = 1; tty 500 drivers/char/console.c vc->tty->tab_stop[n] = 0; tty 504 drivers/char/console.c termios_reset(tty); tty 505 drivers/char/console.c vc->tty->winsize.ws_row = vc->lines - vc->top; tty 506 drivers/char/console.c vc->tty->winsize.ws_col = vc->columns; tty 507 drivers/char/console.c vc->tty->winsize.ws_xpixel = 0; tty 508 drivers/char/console.c vc->tty->winsize.ws_ypixel = 0; tty 509 drivers/char/console.c vc->tty->lnext = 0; tty 516 drivers/char/console.c void vconsole_write(struct tty *tty) tty 523 drivers/char/console.c vc = (struct vconsole *)tty->driver_data; tty 536 drivers/char/console.c while(!vc->scrlock && tty->write_q.count > 0) { tty 537 drivers/char/console.c ch = tty_queue_getchar(&tty->write_q); tty 615 drivers/char/console.c if(vc->tty->tab_stop[++vc->x]) { tty 667 drivers/char/console.c insert_seq(tty, VT100ID, 7); tty 679 drivers/char/console.c vc->tty->tab_stop[vc->x] = 0; tty 684 drivers/char/console.c vc->tty->tab_stop[n] = 0; tty 726 drivers/char/console.c insert_seq(tty, DEVICE_OK, 4); tty 733 drivers/char/console.c insert_seq(tty, curpos, len); tty 798 drivers/char/console.c vc->tty->tab_stop[vc->x] = 1; tty 806 drivers/char/console.c insert_seq(tty, VT100ID, 7); tty 810 drivers/char/console.c vconsole_reset(vc->tty); tty 848 drivers/char/console.c if(!kill_pid(vc[current_cons].tty->pid, vc[current_cons].vt_mode.acqsig)) { tty 865 drivers/char/console.c if(kill_pid(vc[new_cons].tty->pid, vc[new_cons].vt_mode.acqsig)) { tty 901 drivers/char/console.c void vconsole_start(struct tty *tty) tty 905 drivers/char/console.c vc = (struct vconsole *)tty->driver_data; tty 914 drivers/char/console.c void vconsole_stop(struct tty *tty) tty 918 drivers/char/console.c vc = (struct vconsole *)tty->driver_data; tty 937 drivers/char/console.c void vconsole_deltab(struct tty *tty) tty 945 drivers/char/console.c vc = (struct vconsole *)tty->driver_data; tty 946 drivers/char/console.c cb = tty->cooked_q.head; tty 954 drivers/char/console.c while(!vc->tty->tab_stop[++col]); tty 957 drivers/char/console.c if(ISCNTRL(ch) && !ISSPACE(ch) && tty->termios.c_lflag & ECHOCTL) { tty 969 drivers/char/console.c tty_queue_putchar(tty, &tty->write_q, '\b'); tty 976 drivers/char/console.c struct tty *tty; tty 978 drivers/char/console.c if(!(tty = get_tty(_syscondev))) { tty 980 drivers/char/console.c tty = get_tty(_syscondev); tty 985 drivers/char/console.c if(tty_queue_putchar(tty, &tty->write_q, *b) < 0) { tty 986 drivers/char/console.c tty->output(tty); tty 992 drivers/char/console.c tty->output(tty); tty 998 drivers/char/console.c struct tty *tty; tty 1010 drivers/char/console.c tty = get_tty(MKDEV(VCONSOLES_MAJOR, n)); tty 1011 drivers/char/console.c tty->driver_data = (void *)&vc[n]; tty 1012 drivers/char/console.c tty->stop = vconsole_stop; tty 1013 drivers/char/console.c tty->start = vconsole_start; tty 1014 drivers/char/console.c tty->deltab = vconsole_deltab; tty 1015 drivers/char/console.c tty->reset = vconsole_reset; tty 1016 drivers/char/console.c tty->input = do_cook; tty 1017 drivers/char/console.c tty->output = vconsole_write; tty 1018 drivers/char/console.c vc[n].tty = tty; tty 1027 drivers/char/console.c vconsole_reset(tty); tty 395 drivers/char/keyboard.c static void putc(struct tty *tty, unsigned char ch) tty 397 drivers/char/keyboard.c if(tty_queue_putchar(tty, &tty->read_q, ch) < 0) { tty 398 drivers/char/keyboard.c if(tty->termios.c_iflag & IMAXBEL) { tty 404 drivers/char/keyboard.c static void puts(struct tty *tty, char *seq) tty 409 drivers/char/keyboard.c putc(tty, ch); tty 434 drivers/char/keyboard.c struct tty *tty; tty 439 drivers/char/keyboard.c tty = get_tty(MKDEV(VCONSOLES_MAJOR, current_cons)); tty 440 drivers/char/keyboard.c vc = (struct vconsole *)tty->driver_data; tty 453 drivers/char/keyboard.c if(tty->kbd.mode == K_RAW) { tty 454 drivers/char/keyboard.c putc(tty, scode); tty 469 drivers/char/keyboard.c if(tty->kbd.mode == K_MEDIUMRAW) { tty 470 drivers/char/keyboard.c putc(tty, key | (scode & 0x80)); tty 530 drivers/char/keyboard.c tty->start(tty); tty 532 drivers/char/keyboard.c tty->stop(tty); tty 611 drivers/char/keyboard.c if(tty->count) { tty 622 drivers/char/keyboard.c puts(tty, fn_seq[c]); tty 628 drivers/char/keyboard.c putc(tty, C('M')); tty 638 drivers/char/keyboard.c puts(tty, pad_seq[c]); tty 640 drivers/char/keyboard.c putc(tty, pad_chars[c]); tty 668 drivers/char/keyboard.c putc(tty, c); tty 673 drivers/char/keyboard.c putc(tty, '\033'); tty 674 drivers/char/keyboard.c putc(tty, c); tty 685 drivers/char/keyboard.c putc(tty, c); tty 706 drivers/char/keyboard.c putc(tty, c); tty 717 drivers/char/keyboard.c struct tty *tty; tty 720 drivers/char/keyboard.c tty = get_tty(MKDEV(VCONSOLES_MAJOR, current_cons)); tty 721 drivers/char/keyboard.c vc = (struct vconsole *)tty->driver_data; tty 733 drivers/char/keyboard.c tty = &tty_table[0]; tty 734 drivers/char/keyboard.c for(n = 0; n < NR_VCONSOLES; n++, tty++) { tty 735 drivers/char/keyboard.c if(!tty->read_q.count) { tty 738 drivers/char/keyboard.c if(tty->kbd.mode == K_RAW || tty->kbd.mode == K_MEDIUMRAW) { tty 746 drivers/char/keyboard.c tty->input(tty); tty 758 drivers/char/keyboard.c struct tty *tty; tty 761 drivers/char/keyboard.c tty = get_tty(MKDEV(VCONSOLES_MAJOR, current_cons)); tty 762 drivers/char/keyboard.c vc = (struct vconsole *)tty->driver_data; tty 181 drivers/char/serial.c static void serial_stop(struct tty *tty) tty 187 drivers/char/serial.c s = (struct serial *)tty->driver_data; tty 193 drivers/char/serial.c static void serial_start(struct tty *tty) tty 199 drivers/char/serial.c s = (struct serial *)tty->driver_data; tty 204 drivers/char/serial.c static void serial_deltab(struct tty *tty) tty 210 drivers/char/serial.c cb = tty->cooked_q.head; tty 218 drivers/char/serial.c while(!tty->tab_stop[++col]); tty 221 drivers/char/serial.c if(ISCNTRL(ch) && !ISSPACE(ch) && tty->termios.c_lflag & ECHOCTL) { tty 230 drivers/char/serial.c count = tty->column - col; tty 233 drivers/char/serial.c tty_queue_putchar(tty, &tty->write_q, '\b'); tty 234 drivers/char/serial.c tty->column--; tty 238 drivers/char/serial.c static void serial_reset(struct tty *tty) tty 240 drivers/char/serial.c termios_reset(tty); tty 241 drivers/char/serial.c tty->winsize.ws_row = 25; tty 242 drivers/char/serial.c tty->winsize.ws_col = 80; tty 243 drivers/char/serial.c tty->winsize.ws_xpixel = 0; tty 244 drivers/char/serial.c tty->winsize.ws_ypixel = 0; tty 245 drivers/char/serial.c tty->lnext = 0; tty 250 drivers/char/serial.c struct tty *tty; tty 252 drivers/char/serial.c tty = s->tty; tty 254 drivers/char/serial.c if(!(tty->termios.c_iflag & IGNBRK) && tty->termios.c_iflag & BRKINT) { tty 261 drivers/char/serial.c if(!(tty->termios.c_iflag & IGNPAR) && tty->termios.c_iflag & PARMRK) { tty 277 drivers/char/serial.c static void serial_send(struct tty *tty) tty 283 drivers/char/serial.c s = (struct serial *)tty->driver_data; tty 285 drivers/char/serial.c if(!tty->write_q.count) { tty 291 drivers/char/serial.c while(tty->write_q.count > 0 && count < UART_FIFO_SIZE) { tty 292 drivers/char/serial.c ch = tty_queue_getchar(&tty->write_q); tty 297 drivers/char/serial.c if(!tty->write_q.count) { tty 307 drivers/char/serial.c struct tty *tty; tty 310 drivers/char/serial.c tty = s->tty; tty 313 drivers/char/serial.c if(!tty_queue_room(&tty->read_q)) { tty 318 drivers/char/serial.c tty_queue_putchar(tty, &tty->read_q, ch); tty 344 drivers/char/serial.c serial_send(s->tty); tty 354 drivers/char/serial.c int serial_open(struct tty *tty) tty 359 drivers/char/serial.c minor = MINOR(tty->dev); tty 364 drivers/char/serial.c s = (struct serial *)tty->driver_data; tty 384 drivers/char/serial.c int serial_close(struct tty *tty) tty 389 drivers/char/serial.c minor = MINOR(tty->dev); tty 394 drivers/char/serial.c s = (struct serial *)tty->driver_data; tty 396 drivers/char/serial.c if(tty->count > 1) { tty 412 drivers/char/serial.c void serial_set_termios(struct tty *tty) tty 419 drivers/char/serial.c s = (struct serial *)tty->driver_data; tty 422 drivers/char/serial.c if(!(baud = tty->termios.c_cflag & CBAUD)) { tty 431 drivers/char/serial.c size = tty->termios.c_cflag & CSIZE; tty 450 drivers/char/serial.c stop = tty->termios.c_cflag & CSTOPB; tty 457 drivers/char/serial.c if(tty->termios.c_cflag & PARENB) { tty 459 drivers/char/serial.c } else if(tty->termios.c_cflag & PARODD) { tty 470 drivers/char/serial.c void serial_write(struct tty *tty) tty 476 drivers/char/serial.c s = (struct serial *)tty->driver_data; tty 483 drivers/char/serial.c struct tty *tty; tty 490 drivers/char/serial.c tty = s->tty; tty 491 drivers/char/serial.c if(tty->read_q.count) { tty 493 drivers/char/serial.c tty->input(tty); tty 508 drivers/char/serial.c struct tty *tty; tty 524 drivers/char/serial.c tty = get_tty(MKDEV(SERIAL_MAJOR, (1 << SERIAL_MSF) + n)); tty 525 drivers/char/serial.c tty->driver_data = (void *)s; tty 526 drivers/char/serial.c tty->stop = serial_stop; tty 527 drivers/char/serial.c tty->start = serial_start; tty 528 drivers/char/serial.c tty->deltab = serial_deltab; tty 529 drivers/char/serial.c tty->reset = serial_reset; tty 530 drivers/char/serial.c tty->input = do_cook; tty 531 drivers/char/serial.c tty->output = serial_write; tty 532 drivers/char/serial.c tty->open = serial_open; tty 533 drivers/char/serial.c tty->close = serial_close; tty 534 drivers/char/serial.c tty->set_termios = serial_set_termios; tty 535 drivers/char/serial.c serial_reset(tty); tty 538 drivers/char/serial.c tty->tab_stop[n2] = 1; tty 540 drivers/char/serial.c tty->tab_stop[n2] = 0; tty 543 drivers/char/serial.c tty->count = 0; tty 544 drivers/char/serial.c s->tty = tty; tty 26 drivers/char/tty.c struct tty tty_table[NR_TTYS]; tty 64 drivers/char/tty.c static int opost(struct tty *tty, unsigned char ch) tty 70 drivers/char/tty.c if(tty->termios.c_oflag & OPOST) { tty 73 drivers/char/tty.c if(tty->termios.c_oflag & ONLCR) { tty 74 drivers/char/tty.c if(tty_queue_room(&tty->write_q) >= 2) { tty 75 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '\r'); tty 76 drivers/char/tty.c tty->column = 0; tty 83 drivers/char/tty.c while(tty->column < (tty->winsize.ws_col - 1)) { tty 84 drivers/char/tty.c if(tty->tab_stop[++tty->column]) { tty 90 drivers/char/tty.c if(tty->column > 0) { tty 91 drivers/char/tty.c tty->column--; tty 94 drivers/char/tty.c if(tty->termios.c_oflag & OLCUC) { tty 98 drivers/char/tty.c tty->column++; tty 103 drivers/char/tty.c if(tty_queue_putchar(tty, &tty->write_q, ch) < 0) { tty 109 drivers/char/tty.c static void out_char(struct tty *tty, unsigned char ch) tty 111 drivers/char/tty.c if(ISCNTRL(ch) && !ISSPACE(ch) && (tty->termios.c_lflag & ECHOCTL)) { tty 112 drivers/char/tty.c if(tty->lnext || (!tty->lnext && ch != tty->termios.c_cc[VEOF])) { tty 113 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '^'); tty 114 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, ch + 64); tty 115 drivers/char/tty.c tty->column += 2; tty 118 drivers/char/tty.c opost(tty, ch); tty 122 drivers/char/tty.c static void erase_char(struct tty *tty, unsigned char erasechar) tty 126 drivers/char/tty.c if(erasechar == tty->termios.c_cc[VERASE]) { tty 127 drivers/char/tty.c if((ch = tty_queue_unputchar(&tty->cooked_q))) { tty 128 drivers/char/tty.c if(tty->termios.c_lflag & ECHO) { tty 129 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '\b'); tty 130 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, ' '); tty 131 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '\b'); tty 133 drivers/char/tty.c tty->deltab(tty); tty 135 drivers/char/tty.c if(ISCNTRL(ch) && !ISSPACE(ch) && tty->termios.c_lflag & ECHOCTL) { tty 136 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '\b'); tty 137 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, ' '); tty 138 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '\b'); tty 143 drivers/char/tty.c if(erasechar == tty->termios.c_cc[VWERASE]) { tty 146 drivers/char/tty.c while(tty->cooked_q.count > 0) { tty 147 drivers/char/tty.c ch = LAST_CHAR(&tty->cooked_q); tty 154 drivers/char/tty.c erase_char(tty, tty->termios.c_cc[VERASE]); tty 157 drivers/char/tty.c if(erasechar == tty->termios.c_cc[VKILL]) { tty 158 drivers/char/tty.c while(tty->cooked_q.count > 0) { tty 159 drivers/char/tty.c erase_char(tty, tty->termios.c_cc[VERASE]); tty 161 drivers/char/tty.c if(tty->termios.c_lflag & ECHOK && !(tty->termios.c_lflag & ECHOE)) { tty 162 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '\n'); tty 167 drivers/char/tty.c static void set_termios(struct tty *tty, struct termios *new_termios) tty 169 drivers/char/tty.c memcpy_b(&tty->termios, new_termios, sizeof(struct termios)); tty 170 drivers/char/tty.c if(tty->set_termios) { tty 171 drivers/char/tty.c tty->set_termios(tty); tty 175 drivers/char/tty.c static void set_termio(struct tty *tty, struct termio *new_termio) tty 201 drivers/char/tty.c struct tty * get_tty(__dev_t dev) tty 235 drivers/char/tty.c void disassociate_ctty(struct tty *tty) tty 239 drivers/char/tty.c if(!tty) { tty 244 drivers/char/tty.c tty->pgid = tty->sid = 0; tty 257 drivers/char/tty.c void termios_reset(struct tty *tty) tty 259 drivers/char/tty.c tty->kbd.mode = K_XLATE; tty 260 drivers/char/tty.c tty->termios.c_iflag = ICRNL | IXON | IXOFF; tty 261 drivers/char/tty.c tty->termios.c_oflag = OPOST | ONLCR; tty 262 drivers/char/tty.c tty->termios.c_cflag = B9600 | CS8 | HUPCL | CREAD | CLOCAL; tty 263 drivers/char/tty.c tty->termios.c_lflag = ISIG | ICANON | ECHO | ECHOE | ECHOK | ECHOCTL | ECHOKE | IEXTEN; tty 264 drivers/char/tty.c tty->termios.c_line = 0; tty 265 drivers/char/tty.c tty->termios.c_cc[VINTR] = 3; /* ^C */ tty 266 drivers/char/tty.c tty->termios.c_cc[VQUIT] = 28; /* ^\ */ tty 267 drivers/char/tty.c tty->termios.c_cc[VERASE] = BS; /* ^? (127) not '\b' (^H) */ tty 268 drivers/char/tty.c tty->termios.c_cc[VKILL] = 21; /* ^U */ tty 269 drivers/char/tty.c tty->termios.c_cc[VEOF] = 4; /* ^D */ tty 270 drivers/char/tty.c tty->termios.c_cc[VTIME] = 0; tty 271 drivers/char/tty.c tty->termios.c_cc[VMIN] = 1; tty 272 drivers/char/tty.c tty->termios.c_cc[VSWTC] = 0; tty 273 drivers/char/tty.c tty->termios.c_cc[VSTART] = 17; /* ^Q */ tty 274 drivers/char/tty.c tty->termios.c_cc[VSTOP] = 19; /* ^S */ tty 275 drivers/char/tty.c tty->termios.c_cc[VSUSP] = 26; /* ^Z */ tty 276 drivers/char/tty.c tty->termios.c_cc[VEOL] = '\n'; /* ^J */ tty 277 drivers/char/tty.c tty->termios.c_cc[VREPRINT] = 18; /* ^R */ tty 278 drivers/char/tty.c tty->termios.c_cc[VDISCARD] = 15; /* ^O */ tty 279 drivers/char/tty.c tty->termios.c_cc[VWERASE] = 23; /* ^W */ tty 280 drivers/char/tty.c tty->termios.c_cc[VLNEXT] = 22; /* ^V */ tty 281 drivers/char/tty.c tty->termios.c_cc[VEOL2] = 0; tty 284 drivers/char/tty.c void do_cook(struct tty *tty) tty 290 drivers/char/tty.c while(tty->read_q.count > 0) { tty 291 drivers/char/tty.c ch = tty_queue_getchar(&tty->read_q); tty 293 drivers/char/tty.c if((tty->termios.c_lflag & ISIG) && !tty->lnext) { tty 294 drivers/char/tty.c if(ch == tty->termios.c_cc[VINTR]) { tty 295 drivers/char/tty.c if(!(tty->termios.c_lflag & NOFLSH)) { tty 296 drivers/char/tty.c tty_queue_flush(&tty->read_q); tty 297 drivers/char/tty.c tty_queue_flush(&tty->cooked_q); tty 299 drivers/char/tty.c if(tty->pgid > 0) { tty 300 drivers/char/tty.c kill_pgrp(tty->pgid, SIGINT); tty 304 drivers/char/tty.c if(ch == tty->termios.c_cc[VQUIT]) { tty 305 drivers/char/tty.c if(tty->pgid > 0) { tty 306 drivers/char/tty.c kill_pgrp(tty->pgid, SIGQUIT); tty 310 drivers/char/tty.c if(ch == tty->termios.c_cc[VSUSP]) { tty 311 drivers/char/tty.c if(tty->pgid > 0) { tty 312 drivers/char/tty.c kill_pgrp(tty->pgid, SIGTSTP); tty 318 drivers/char/tty.c if(tty->termios.c_iflag & ISTRIP) { tty 321 drivers/char/tty.c if(tty->termios.c_iflag & IUCLC) { tty 327 drivers/char/tty.c if(!tty->lnext) { tty 329 drivers/char/tty.c if(tty->termios.c_iflag & IGNCR) { tty 332 drivers/char/tty.c if(tty->termios.c_iflag & ICRNL) { tty 337 drivers/char/tty.c if(tty->termios.c_iflag & INLCR) { tty 344 drivers/char/tty.c if(tty->termios.c_lflag & ICANON && !tty->lnext) { tty 345 drivers/char/tty.c if(ch == tty->termios.c_cc[VERASE] || ch == tty->termios.c_cc[VWERASE] || ch == tty->termios.c_cc[VKILL]) { tty 346 drivers/char/tty.c erase_char(tty, ch); tty 350 drivers/char/tty.c if(ch == tty->termios.c_cc[VREPRINT]) { tty 351 drivers/char/tty.c out_char(tty, ch); tty 352 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '\n'); tty 353 drivers/char/tty.c cb = tty->cooked_q.head; tty 357 drivers/char/tty.c out_char(tty, cb->data[n]); tty 365 drivers/char/tty.c if(ch == tty->termios.c_cc[VLNEXT] && tty->termios.c_lflag & IEXTEN) { tty 366 drivers/char/tty.c tty->lnext = 1; tty 367 drivers/char/tty.c if(tty->termios.c_lflag & ECHOCTL) { tty 368 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '^'); tty 369 drivers/char/tty.c tty_queue_putchar(tty, &tty->write_q, '\b'); tty 374 drivers/char/tty.c if(tty->termios.c_iflag & IXON) { tty 375 drivers/char/tty.c if(ch == tty->termios.c_cc[VSTART]) { tty 376 drivers/char/tty.c tty->start(tty); tty 379 drivers/char/tty.c if(ch == tty->termios.c_cc[VSTOP]) { tty 380 drivers/char/tty.c tty->stop(tty); tty 383 drivers/char/tty.c if(tty->termios.c_iflag & IXANY) { tty 384 drivers/char/tty.c tty->start(tty); tty 390 drivers/char/tty.c if(tty->termios.c_lflag & ICANON) { tty 391 drivers/char/tty.c if(ISCNTRL(ch) && !ISSPACE(ch) && (tty->termios.c_lflag & ECHOCTL)) { tty 392 drivers/char/tty.c out_char(tty, ch); tty 393 drivers/char/tty.c tty_queue_putchar(tty, &tty->cooked_q, ch); tty 394 drivers/char/tty.c tty->lnext = 0; tty 398 drivers/char/tty.c tty->canon_data = 1; tty 402 drivers/char/tty.c if(tty->termios.c_lflag & ECHO) { tty 403 drivers/char/tty.c out_char(tty, ch); tty 405 drivers/char/tty.c if((tty->termios.c_lflag & ECHONL) && (ch == '\n')) { tty 406 drivers/char/tty.c out_char(tty, ch); tty 409 drivers/char/tty.c tty_queue_putchar(tty, &tty->cooked_q, ch); tty 410 drivers/char/tty.c tty->lnext = 0; tty 412 drivers/char/tty.c tty->output(tty); tty 413 drivers/char/tty.c if(!(tty->termios.c_lflag & ICANON) || ((tty->termios.c_lflag & ICANON) && tty->canon_data)) { tty 422 drivers/char/tty.c struct tty *tty; tty 437 drivers/char/tty.c if(!(tty = get_tty(i->rdev))) { tty 443 drivers/char/tty.c if(tty->open) { tty 444 drivers/char/tty.c if((errno = tty->open(tty)) < 0) { tty 448 drivers/char/tty.c tty->count++; tty 449 drivers/char/tty.c tty->column = 0; tty 451 drivers/char/tty.c if(SESS_LEADER(current) && !current->ctty && !noctty_flag && !tty->sid) { tty 452 drivers/char/tty.c current->ctty = tty; tty 453 drivers/char/tty.c tty->sid = current->sid; tty 454 drivers/char/tty.c tty->pgid = current->pgid; tty 462 drivers/char/tty.c struct tty *tty; tty 465 drivers/char/tty.c if(!(tty = get_tty(i->rdev))) { tty 470 drivers/char/tty.c if(tty->close) { tty 471 drivers/char/tty.c if((errno = tty->close(tty)) < 0) { tty 475 drivers/char/tty.c tty->count--; tty 476 drivers/char/tty.c if(!tty->count) { tty 477 drivers/char/tty.c termios_reset(tty); tty 478 drivers/char/tty.c tty->pgid = tty->sid = 0; tty 482 drivers/char/tty.c if(p->ctty == tty) { tty 495 drivers/char/tty.c struct tty *tty; tty 499 drivers/char/tty.c if(!(tty = get_tty(i->rdev))) { tty 505 drivers/char/tty.c if(current->ctty == tty && current->pgid != tty->pgid) { tty 515 drivers/char/tty.c if(tty->kbd.mode == K_RAW || tty->kbd.mode == K_MEDIUMRAW) { tty 518 drivers/char/tty.c if((ch = tty_queue_getchar(&tty->read_q))) { tty 529 drivers/char/tty.c if(tty->termios.c_lflag & ICANON) { tty 530 drivers/char/tty.c if((ch = LAST_CHAR(&tty->cooked_q))) { tty 531 drivers/char/tty.c if(ch == '\n' || ch == tty->termios.c_cc[VEOL] || ch == tty->termios.c_cc[VEOF] || (tty->termios.c_lflag & IEXTEN && ch == tty->termios.c_cc[VEOL2] && tty->termios.c_cc[VEOL2] != 0)) { tty 533 drivers/char/tty.c tty->canon_data = 0; tty 535 drivers/char/tty.c if(ch == tty->termios.c_cc[VEOF]) { tty 536 drivers/char/tty.c tty_queue_unputchar(&tty->cooked_q); tty 540 drivers/char/tty.c if((ch = tty_queue_getchar(&tty->cooked_q))) { tty 550 drivers/char/tty.c if(tty->termios.c_cc[VTIME] > 0) { tty 554 drivers/char/tty.c if(!tty->termios.c_cc[VMIN]) { tty 556 drivers/char/tty.c timeout = tty->termios.c_cc[VTIME] * (HZ / 10); tty 558 drivers/char/tty.c while(kstat.ticks - ini_ticks < timeout && !tty->cooked_q.count) { tty 560 drivers/char/tty.c creq.arg = (unsigned int)&tty->cooked_q; tty 570 drivers/char/tty.c if((ch = tty_queue_getchar(&tty->cooked_q))) { tty 578 drivers/char/tty.c if(tty->cooked_q.count > 0) { tty 579 drivers/char/tty.c if(n < MIN(tty->termios.c_cc[VMIN], count)) { tty 580 drivers/char/tty.c ch = tty_queue_getchar(&tty->cooked_q); tty 583 drivers/char/tty.c if(n >= MIN(tty->termios.c_cc[VMIN], count)) { tty 587 drivers/char/tty.c timeout = tty->termios.c_cc[VTIME] * (HZ / 10); tty 589 drivers/char/tty.c creq.arg = (unsigned int)&tty->cooked_q; tty 599 drivers/char/tty.c if(!tty->cooked_q.count) { tty 606 drivers/char/tty.c if(tty->cooked_q.count > 0) { tty 607 drivers/char/tty.c if(min < tty->termios.c_cc[VMIN] || !tty->termios.c_cc[VMIN]) { tty 609 drivers/char/tty.c ch = tty_queue_getchar(&tty->cooked_q); tty 611 drivers/char/tty.c if(--tty->canon_data < 0) { tty 612 drivers/char/tty.c tty->canon_data = 0; tty 618 drivers/char/tty.c if(min >= tty->termios.c_cc[VMIN]) { tty 642 drivers/char/tty.c struct tty *tty; tty 645 drivers/char/tty.c if(!(tty = get_tty(i->rdev))) { tty 651 drivers/char/tty.c if(current->ctty == tty && current->pgid != tty->pgid) { tty 652 drivers/char/tty.c if(tty->termios.c_lflag & TOSTOP) { tty 671 drivers/char/tty.c if(opost(tty, ch) < 0) { tty 676 drivers/char/tty.c tty->output(tty); tty 684 drivers/char/tty.c if(tty->write_q.count > 0) { tty 705 drivers/char/tty.c struct tty *tty; tty 708 drivers/char/tty.c if(!(tty = get_tty(i->rdev))) { tty 722 drivers/char/tty.c memcpy_b((struct termios *)arg, &tty->termios, sizeof(struct termios)); tty 733 drivers/char/tty.c set_termios(tty, (struct termios *)arg); tty 744 drivers/char/tty.c set_termios(tty, (struct termios *)arg); tty 755 drivers/char/tty.c set_termios(tty, (struct termios *)arg); tty 756 drivers/char/tty.c tty_queue_flush(&tty->read_q); tty 767 drivers/char/tty.c termios2termio(&tty->termios, (struct termio *)arg); tty 778 drivers/char/tty.c set_termio(tty, (struct termio *)arg); tty 789 drivers/char/tty.c set_termio(tty, (struct termio *)arg); tty 800 drivers/char/tty.c set_termio(tty, (struct termio *)arg); tty 801 drivers/char/tty.c tty_queue_flush(&tty->read_q); tty 808 drivers/char/tty.c tty->stop(tty); tty 811 drivers/char/tty.c tty->start(tty); tty 820 drivers/char/tty.c tty_queue_flush(&tty->read_q); tty 821 drivers/char/tty.c tty_queue_flush(&tty->cooked_q); tty 824 drivers/char/tty.c tty_queue_flush(&tty->write_q); tty 827 drivers/char/tty.c tty_queue_flush(&tty->read_q); tty 828 drivers/char/tty.c tty_queue_flush(&tty->cooked_q); tty 829 drivers/char/tty.c tty_queue_flush(&tty->write_q); tty 836 drivers/char/tty.c if(SESS_LEADER(current) && (current->sid == tty->sid)) { tty 842 drivers/char/tty.c if(tty->sid) { tty 845 drivers/char/tty.c if(p->ctty == tty) { tty 854 drivers/char/tty.c current->ctty = tty; tty 855 drivers/char/tty.c tty->sid = current->sid; tty 856 drivers/char/tty.c tty->pgid = current->pgid; tty 867 drivers/char/tty.c memcpy_b((void *)arg, &tty->pgid, sizeof(__pid_t)); tty 881 drivers/char/tty.c memcpy_b(&tty->pgid, (void *)arg, sizeof(__pid_t)); tty 898 drivers/char/tty.c memcpy_b((void *)arg, &tty->winsize, sizeof(struct winsize)); tty 914 drivers/char/tty.c if(tty->winsize.ws_row != ws->ws_row) { tty 917 drivers/char/tty.c if(tty->winsize.ws_col != ws->ws_col) { tty 920 drivers/char/tty.c if(tty->winsize.ws_xpixel != ws->ws_xpixel) { tty 923 drivers/char/tty.c if(tty->winsize.ws_ypixel != ws->ws_ypixel) { tty 926 drivers/char/tty.c tty->winsize.ws_row = ws->ws_row; tty 927 drivers/char/tty.c tty->winsize.ws_col = ws->ws_col; tty 928 drivers/char/tty.c tty->winsize.ws_xpixel = ws->ws_xpixel; tty 929 drivers/char/tty.c tty->winsize.ws_ypixel = ws->ws_ypixel; tty 931 drivers/char/tty.c kill_pgrp(tty->pgid, SIGWINCH); tty 936 drivers/char/tty.c if(current->ctty != tty) { tty 940 drivers/char/tty.c disassociate_ctty(tty); tty 961 drivers/char/tty.c return vt_ioctl(tty, cmd, arg); tty 973 drivers/char/tty.c struct tty *tty; tty 975 drivers/char/tty.c if(!(tty = get_tty(i->rdev))) { tty 982 drivers/char/tty.c if(tty->cooked_q.count > 0) { tty 983 drivers/char/tty.c if(!(tty->termios.c_lflag & ICANON) || ((tty->termios.c_lflag & ICANON) && tty->canon_data)) { tty 989 drivers/char/tty.c if(!tty->write_q.count) { tty 146 drivers/char/tty_queue.c int tty_queue_putchar(struct tty *tty, struct clist *q, unsigned char ch) tty 169 drivers/char/tty_queue.c tty_queue_putchar(tty, q, ch); tty 20 drivers/char/vt.c int vt_ioctl(struct tty *tty, int cmd, unsigned long int arg) tty 26 drivers/char/vt.c if(MAJOR(tty->dev) != VCONSOLES_MAJOR) { tty 30 drivers/char/vt.c vc = (struct vconsole *)tty->driver_data; tty 84 drivers/char/vt.c memset_b((void *)arg, tty->kbd.mode, sizeof(unsigned char)); tty 91 drivers/char/vt.c tty->kbd.mode = arg; tty 92 drivers/char/vt.c tty_queue_flush(&tty->read_q); tty 121 drivers/char/vt.c tty = get_tty(MKDEV(VCONSOLES_MAJOR, n)); tty 122 drivers/char/vt.c if(!tty->count) { tty 151 drivers/char/vt.c tty->pid = current->pid; tty 165 drivers/char/vt.c tty = get_tty(MKDEV(VCONSOLES_MAJOR, n)); tty 166 drivers/char/vt.c if(tty->count) { tty 194 drivers/char/vt.c if(current_cons == MINOR(tty->dev) || IS_SUPERUSER) { tty 205 drivers/char/vt.c if(current_cons == MINOR(tty->dev)) { tty 130 include/fiwix/console.h struct tty *tty; tty 172 include/fiwix/console.h void vconsole_reset(struct tty *); tty 173 include/fiwix/console.h void vconsole_write(struct tty *); tty 178 include/fiwix/console.h void vconsole_start(struct tty *); tty 179 include/fiwix/console.h void vconsole_stop(struct tty *); tty 181 include/fiwix/console.h void vconsole_deltab(struct tty *); tty 111 include/fiwix/process.h struct tty *ctty; /* controlling terminal */ tty 102 include/fiwix/serial.h struct tty *tty; tty 106 include/fiwix/serial.h int serial_open(struct tty *); tty 107 include/fiwix/serial.h int serial_close(struct tty *); tty 108 include/fiwix/serial.h int serial_ioctl(struct tty *, int, unsigned long int); tty 109 include/fiwix/serial.h void serial_write(struct tty *); tty 63 include/fiwix/tty.h void (*stop)(struct tty *); tty 64 include/fiwix/tty.h void (*start)(struct tty *); tty 65 include/fiwix/tty.h void (*deltab)(struct tty *); tty 66 include/fiwix/tty.h void (*reset)(struct tty *); tty 67 include/fiwix/tty.h void (*input)(struct tty *); tty 68 include/fiwix/tty.h void (*output)(struct tty *); tty 69 include/fiwix/tty.h int (*open)(struct tty *); tty 70 include/fiwix/tty.h int (*close)(struct tty *); tty 71 include/fiwix/tty.h void (*set_termios)(struct tty *); tty 73 include/fiwix/tty.h extern struct tty tty_table[]; tty 76 include/fiwix/tty.h struct tty * get_tty(__dev_t); tty 77 include/fiwix/tty.h void disassociate_ctty(struct tty *); tty 78 include/fiwix/tty.h void termios_reset(struct tty *); tty 79 include/fiwix/tty.h void do_cook(struct tty *); tty 80 include/fiwix/tty.h int tty_putchar(struct tty *, unsigned char); tty 90 include/fiwix/tty.h int tty_queue_putchar(struct tty *, struct clist *, unsigned char); tty 97 include/fiwix/tty.h int vt_ioctl(struct tty *, int, unsigned long int); tty 22 lib/printk.c struct tty *tty; tty 26 lib/printk.c tty = get_tty(_syscondev); tty 31 lib/printk.c if(!tty) { tty 36 lib/printk.c tty_queue_putchar(tty, &tty->write_q, *(b++)); tty 39 lib/printk.c tty->output(tty);