Lines Matching refs:tail
167 static void tty_copy(const struct tty_struct *tty, void *to, size_t tail,
171 size_t size = N_TTY_BUF_SIZE - tail;
172 void *from = read_buf_addr(ldata, tail);
585 static int n_tty_process_echo_ops(struct tty_struct *tty, size_t *tail,
595 if (MASK(ldata->echo_commit) == MASK(*tail + 1))
602 op = echo_buf(ldata, *tail + 1);
608 if (MASK(ldata->echo_commit) == MASK(*tail + 2))
611 num_chars = echo_buf(ldata, *tail + 2);
633 *tail += 3;
638 *tail += 2;
644 *tail += 2;
655 *tail += 2;
672 *tail += 2;
705 size_t tail;
710 tail = ldata->echo_tail;
711 while (MASK(ldata->echo_commit) != MASK(tail)) {
712 c = echo_buf(ldata, tail);
714 int ret = n_tty_process_echo_ops(tty, &tail, space);
732 tail += 1;
738 * data at the tail to prevent a subsequent overrun */
739 while (ldata->echo_commit > tail &&
740 ldata->echo_commit - tail >= ECHO_DISCARD_WATERMARK) {
741 if (echo_buf(ldata, tail) == ECHO_OP_START) {
742 if (echo_buf(ldata, tail + 1) == ECHO_OP_ERASE_TAB)
743 tail += 3;
745 tail += 2;
747 tail++;
751 ldata->echo_tail = tail;
1028 size_t tail = ldata->read_head;
1037 while (MASK(tail) != MASK(ldata->canon_head)) {
1038 tail--;
1039 c = read_buf(ldata, tail);
1301 size_t tail = ldata->canon_head;
1306 while (MASK(tail) != MASK(ldata->read_head)) {
1307 echo_char(read_buf(ldata, tail), tty);
1308 tail++;
1713 size_t tail = smp_load_acquire(&ldata->read_tail);
1715 room = N_TTY_BUF_SIZE - (ldata->read_head - tail);
1720 overflow = ldata->icanon && ldata->canon_head == tail;
1966 size_t tail = MASK(ldata->read_tail);
1968 n = min(head - ldata->read_tail, N_TTY_BUF_SIZE - tail);
1971 u8 *from = read_buf_addr(ldata, tail);
2018 size_t tail, canon_head;
2028 tail = MASK(ldata->read_tail);
2029 size = min_t(size_t, tail + n, N_TTY_BUF_SIZE);
2031 n_tty_trace("%s: nr:%zu tail:%zu n:%zu size:%zu\n",
2032 __func__, *nr, tail, n, size);
2034 eol = find_next_bit(ldata->read_flags, size, tail);
2035 more = n - (size - tail);
2043 n = eol - tail;
2051 n_tty_trace("%s: eol:%zu found:%d n:%zu c:%zu tail:%zu more:%zu\n",
2052 __func__, eol, found, n, c, tail, more);
2054 tty_copy(tty, *kbp, tail, n);
2082 size_t tail, canon_head;
2085 tail = ldata->read_tail;
2088 if (tail == canon_head)
2091 // See if the tail position is EOF in the circular buffer
2092 tail &= (N_TTY_BUF_SIZE - 1);
2093 if (!test_bit(tail, ldata->read_flags))
2095 if (read_buf(ldata, tail) != __DISABLED_CHAR)
2099 clear_bit(tail, ldata->read_flags);
2481 size_t nr, head, tail;
2486 tail = ldata->read_tail;
2487 nr = head - tail;
2489 while (MASK(head) != MASK(tail)) {
2490 if (test_bit(MASK(tail), ldata->read_flags) &&
2491 read_buf(ldata, tail) == __DISABLED_CHAR)
2493 tail++;