• Home
  • Raw
  • Download

Lines Matching refs:ldata

129 static inline size_t read_cnt(struct n_tty_data *ldata)  in read_cnt()  argument
131 return ldata->read_head - ldata->read_tail; in read_cnt()
134 static inline unsigned char read_buf(struct n_tty_data *ldata, size_t i) in read_buf() argument
136 return ldata->read_buf[i & (N_TTY_BUF_SIZE - 1)]; in read_buf()
139 static inline unsigned char *read_buf_addr(struct n_tty_data *ldata, size_t i) in read_buf_addr() argument
141 return &ldata->read_buf[i & (N_TTY_BUF_SIZE - 1)]; in read_buf_addr()
144 static inline unsigned char echo_buf(struct n_tty_data *ldata, size_t i) in echo_buf() argument
146 return ldata->echo_buf[i & (N_TTY_BUF_SIZE - 1)]; in echo_buf()
149 static inline unsigned char *echo_buf_addr(struct n_tty_data *ldata, size_t i) in echo_buf_addr() argument
151 return &ldata->echo_buf[i & (N_TTY_BUF_SIZE - 1)]; in echo_buf_addr()
157 struct n_tty_data *ldata = tty->disc_data; in tty_copy_to_user() local
159 const void *from = read_buf_addr(ldata, tail); in tty_copy_to_user()
169 from = ldata->read_buf; in tty_copy_to_user()
190 struct n_tty_data *ldata = tty->disc_data; in n_tty_kick_worker() local
193 if (unlikely(ldata->no_room)) { in n_tty_kick_worker()
194 ldata->no_room = 0; in n_tty_kick_worker()
210 struct n_tty_data *ldata = tty->disc_data; in chars_in_buffer() local
213 if (!ldata->icanon) in chars_in_buffer()
214 n = ldata->commit_head - ldata->read_tail; in chars_in_buffer()
216 n = ldata->canon_head - ldata->read_tail; in chars_in_buffer()
237 struct n_tty_data *ldata = tty->disc_data; in n_tty_check_throttle() local
244 if (ldata->icanon && ldata->canon_head == ldata->read_tail) in n_tty_check_throttle()
250 if (N_TTY_BUF_SIZE - read_cnt(ldata) >= TTY_THRESHOLD_THROTTLE) in n_tty_check_throttle()
301 static inline void put_tty_queue(unsigned char c, struct n_tty_data *ldata) in put_tty_queue() argument
303 *read_buf_addr(ldata, ldata->read_head) = c; in put_tty_queue()
304 ldata->read_head++; in put_tty_queue()
318 static void reset_buffer_flags(struct n_tty_data *ldata) in reset_buffer_flags() argument
320 ldata->read_head = ldata->canon_head = ldata->read_tail = 0; in reset_buffer_flags()
321 ldata->echo_head = ldata->echo_tail = ldata->echo_commit = 0; in reset_buffer_flags()
322 ldata->commit_head = 0; in reset_buffer_flags()
323 ldata->echo_mark = 0; in reset_buffer_flags()
324 ldata->line_start = 0; in reset_buffer_flags()
326 ldata->erasing = 0; in reset_buffer_flags()
327 bitmap_zero(ldata->read_flags, N_TTY_BUF_SIZE); in reset_buffer_flags()
328 ldata->push = 0; in reset_buffer_flags()
419 struct n_tty_data *ldata = tty->disc_data; in do_output_char() local
428 ldata->column = 0; in do_output_char()
432 ldata->canon_column = ldata->column = 0; in do_output_char()
436 ldata->canon_column = ldata->column; in do_output_char()
439 if (O_ONOCR(tty) && ldata->column == 0) in do_output_char()
444 ldata->canon_column = ldata->column = 0; in do_output_char()
447 ldata->canon_column = ldata->column = 0; in do_output_char()
450 spaces = 8 - (ldata->column & 7); in do_output_char()
454 ldata->column += spaces; in do_output_char()
458 ldata->column += spaces; in do_output_char()
461 if (ldata->column > 0) in do_output_char()
462 ldata->column--; in do_output_char()
469 ldata->column++; in do_output_char()
494 struct n_tty_data *ldata = tty->disc_data; in process_output() local
497 mutex_lock(&ldata->output_lock); in process_output()
502 mutex_unlock(&ldata->output_lock); in process_output()
531 struct n_tty_data *ldata = tty->disc_data; in process_output_block() local
536 mutex_lock(&ldata->output_lock); in process_output_block()
540 mutex_unlock(&ldata->output_lock); in process_output_block()
552 ldata->column = 0; in process_output_block()
555 ldata->canon_column = ldata->column; in process_output_block()
558 if (O_ONOCR(tty) && ldata->column == 0) in process_output_block()
562 ldata->canon_column = ldata->column = 0; in process_output_block()
567 if (ldata->column > 0) in process_output_block()
568 ldata->column--; in process_output_block()
575 ldata->column++; in process_output_block()
583 mutex_unlock(&ldata->output_lock); in process_output_block()
614 struct n_tty_data *ldata = tty->disc_data; in __process_echoes() local
621 tail = ldata->echo_tail; in __process_echoes()
622 while (ldata->echo_commit != tail) { in __process_echoes()
623 c = echo_buf(ldata, tail); in __process_echoes()
633 op = echo_buf(ldata, tail + 1); in __process_echoes()
639 num_chars = echo_buf(ldata, tail + 2); in __process_echoes()
652 num_chars += ldata->canon_column; in __process_echoes()
662 if (ldata->column > 0) in __process_echoes()
663 ldata->column--; in __process_echoes()
669 ldata->canon_column = ldata->column; in __process_echoes()
674 if (ldata->column > 0) in __process_echoes()
675 ldata->column--; in __process_echoes()
686 ldata->column++; in __process_echoes()
707 ldata->column += 2; in __process_echoes()
733 while (ldata->echo_commit - tail >= ECHO_DISCARD_WATERMARK) { in __process_echoes()
734 if (echo_buf(ldata, tail) == ECHO_OP_START) { in __process_echoes()
735 if (echo_buf(ldata, tail + 1) == ECHO_OP_ERASE_TAB) in __process_echoes()
743 ldata->echo_tail = tail; in __process_echoes()
749 struct n_tty_data *ldata = tty->disc_data; in commit_echoes() local
753 head = ldata->echo_head; in commit_echoes()
754 ldata->echo_mark = head; in commit_echoes()
755 old = ldata->echo_commit - ldata->echo_tail; in commit_echoes()
760 nr = head - ldata->echo_tail; in commit_echoes()
764 mutex_lock(&ldata->output_lock); in commit_echoes()
765 ldata->echo_commit = head; in commit_echoes()
767 mutex_unlock(&ldata->output_lock); in commit_echoes()
775 struct n_tty_data *ldata = tty->disc_data; in process_echoes() local
778 if (ldata->echo_mark == ldata->echo_tail) in process_echoes()
781 mutex_lock(&ldata->output_lock); in process_echoes()
782 ldata->echo_commit = ldata->echo_mark; in process_echoes()
784 mutex_unlock(&ldata->output_lock); in process_echoes()
793 struct n_tty_data *ldata = tty->disc_data; in flush_echoes() local
796 ldata->echo_commit == ldata->echo_head) in flush_echoes()
799 mutex_lock(&ldata->output_lock); in flush_echoes()
800 ldata->echo_commit = ldata->echo_head; in flush_echoes()
802 mutex_unlock(&ldata->output_lock); in flush_echoes()
813 static inline void add_echo_byte(unsigned char c, struct n_tty_data *ldata) in add_echo_byte() argument
815 *echo_buf_addr(ldata, ldata->echo_head++) = c; in add_echo_byte()
825 static void echo_move_back_col(struct n_tty_data *ldata) in echo_move_back_col() argument
827 add_echo_byte(ECHO_OP_START, ldata); in echo_move_back_col()
828 add_echo_byte(ECHO_OP_MOVE_BACK_COL, ldata); in echo_move_back_col()
839 static void echo_set_canon_col(struct n_tty_data *ldata) in echo_set_canon_col() argument
841 add_echo_byte(ECHO_OP_START, ldata); in echo_set_canon_col()
842 add_echo_byte(ECHO_OP_SET_CANON_COL, ldata); in echo_set_canon_col()
861 struct n_tty_data *ldata) in echo_erase_tab() argument
863 add_echo_byte(ECHO_OP_START, ldata); in echo_erase_tab()
864 add_echo_byte(ECHO_OP_ERASE_TAB, ldata); in echo_erase_tab()
873 add_echo_byte(num_chars, ldata); in echo_erase_tab()
887 static void echo_char_raw(unsigned char c, struct n_tty_data *ldata) in echo_char_raw() argument
890 add_echo_byte(ECHO_OP_START, ldata); in echo_char_raw()
891 add_echo_byte(ECHO_OP_START, ldata); in echo_char_raw()
893 add_echo_byte(c, ldata); in echo_char_raw()
911 struct n_tty_data *ldata = tty->disc_data; in echo_char() local
914 add_echo_byte(ECHO_OP_START, ldata); in echo_char()
915 add_echo_byte(ECHO_OP_START, ldata); in echo_char()
918 add_echo_byte(ECHO_OP_START, ldata); in echo_char()
919 add_echo_byte(c, ldata); in echo_char()
928 static inline void finish_erasing(struct n_tty_data *ldata) in finish_erasing() argument
930 if (ldata->erasing) { in finish_erasing()
931 echo_char_raw('/', ldata); in finish_erasing()
932 ldata->erasing = 0; in finish_erasing()
951 struct n_tty_data *ldata = tty->disc_data; in eraser() local
957 if (ldata->read_head == ldata->canon_head) { in eraser()
967 ldata->read_head = ldata->canon_head; in eraser()
971 ldata->read_head = ldata->canon_head; in eraser()
972 finish_erasing(ldata); in eraser()
976 echo_char_raw('\n', ldata); in eraser()
983 while (ldata->read_head != ldata->canon_head) { in eraser()
984 head = ldata->read_head; in eraser()
989 c = read_buf(ldata, head); in eraser()
990 } while (is_continuation(c, tty) && head != ldata->canon_head); in eraser()
1003 cnt = ldata->read_head - head; in eraser()
1004 ldata->read_head = head; in eraser()
1007 if (!ldata->erasing) { in eraser()
1008 echo_char_raw('\\', ldata); in eraser()
1009 ldata->erasing = 1; in eraser()
1015 echo_char_raw(read_buf(ldata, head), ldata); in eraser()
1016 echo_move_back_col(ldata); in eraser()
1023 size_t tail = ldata->read_head; in eraser()
1032 while (tail != ldata->canon_head) { in eraser()
1034 c = read_buf(ldata, tail); in eraser()
1045 echo_erase_tab(num_chars, after_tab, ldata); in eraser()
1048 echo_char_raw('\b', ldata); in eraser()
1049 echo_char_raw(' ', ldata); in eraser()
1050 echo_char_raw('\b', ldata); in eraser()
1053 echo_char_raw('\b', ldata); in eraser()
1054 echo_char_raw(' ', ldata); in eraser()
1055 echo_char_raw('\b', ldata); in eraser()
1062 if (ldata->read_head == ldata->canon_head && L_ECHO(tty)) in eraser()
1063 finish_erasing(ldata); in eraser()
1092 struct n_tty_data *ldata = tty->disc_data; in isig() local
1105 mutex_lock(&ldata->output_lock); in isig()
1106 ldata->echo_head = ldata->echo_tail = 0; in isig()
1107 ldata->echo_mark = ldata->echo_commit = 0; in isig()
1108 mutex_unlock(&ldata->output_lock); in isig()
1140 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_break() local
1149 put_tty_queue('\377', ldata); in n_tty_receive_break()
1150 put_tty_queue('\0', ldata); in n_tty_receive_break()
1152 put_tty_queue('\0', ldata); in n_tty_receive_break()
1170 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_overrun() local
1172 ldata->num_overrun++; in n_tty_receive_overrun()
1173 if (time_after(jiffies, ldata->overrun_time + HZ) || in n_tty_receive_overrun()
1174 time_after(ldata->overrun_time, jiffies)) { in n_tty_receive_overrun()
1175 tty_warn(tty, "%d input overrun(s)\n", ldata->num_overrun); in n_tty_receive_overrun()
1176 ldata->overrun_time = jiffies; in n_tty_receive_overrun()
1177 ldata->num_overrun = 0; in n_tty_receive_overrun()
1194 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_parity_error() local
1200 put_tty_queue('\377', ldata); in n_tty_receive_parity_error()
1201 put_tty_queue('\0', ldata); in n_tty_receive_parity_error()
1202 put_tty_queue(c, ldata); in n_tty_receive_parity_error()
1204 put_tty_queue('\0', ldata); in n_tty_receive_parity_error()
1206 put_tty_queue(c, ldata); in n_tty_receive_parity_error()
1242 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_char_special() local
1282 if (ldata->icanon) { in n_tty_receive_char_special()
1290 ldata->lnext = 1; in n_tty_receive_char_special()
1292 finish_erasing(ldata); in n_tty_receive_char_special()
1294 echo_char_raw('^', ldata); in n_tty_receive_char_special()
1295 echo_char_raw('\b', ldata); in n_tty_receive_char_special()
1302 size_t tail = ldata->canon_head; in n_tty_receive_char_special()
1304 finish_erasing(ldata); in n_tty_receive_char_special()
1306 echo_char_raw('\n', ldata); in n_tty_receive_char_special()
1307 while (tail != ldata->read_head) { in n_tty_receive_char_special()
1308 echo_char(read_buf(ldata, tail), tty); in n_tty_receive_char_special()
1316 echo_char_raw('\n', ldata); in n_tty_receive_char_special()
1332 if (ldata->canon_head == ldata->read_head) in n_tty_receive_char_special()
1333 echo_set_canon_col(ldata); in n_tty_receive_char_special()
1342 put_tty_queue(c, ldata); in n_tty_receive_char_special()
1345 set_bit(ldata->read_head & (N_TTY_BUF_SIZE - 1), ldata->read_flags); in n_tty_receive_char_special()
1346 put_tty_queue(c, ldata); in n_tty_receive_char_special()
1347 smp_store_release(&ldata->canon_head, ldata->read_head); in n_tty_receive_char_special()
1355 finish_erasing(ldata); in n_tty_receive_char_special()
1357 echo_char_raw('\n', ldata); in n_tty_receive_char_special()
1360 if (ldata->canon_head == ldata->read_head) in n_tty_receive_char_special()
1361 echo_set_canon_col(ldata); in n_tty_receive_char_special()
1369 put_tty_queue(c, ldata); in n_tty_receive_char_special()
1371 put_tty_queue(c, ldata); in n_tty_receive_char_special()
1378 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_char_inline() local
1385 finish_erasing(ldata); in n_tty_receive_char_inline()
1387 if (ldata->canon_head == ldata->read_head) in n_tty_receive_char_inline()
1388 echo_set_canon_col(ldata); in n_tty_receive_char_inline()
1394 put_tty_queue(c, ldata); in n_tty_receive_char_inline()
1395 put_tty_queue(c, ldata); in n_tty_receive_char_inline()
1406 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_char_fast() local
1413 finish_erasing(ldata); in n_tty_receive_char_fast()
1415 if (ldata->canon_head == ldata->read_head) in n_tty_receive_char_fast()
1416 echo_set_canon_col(ldata); in n_tty_receive_char_fast()
1420 put_tty_queue(c, ldata); in n_tty_receive_char_fast()
1466 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_char_lnext() local
1468 ldata->lnext = 0; in n_tty_receive_char_lnext()
1483 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_buf_real_raw() local
1486 head = ldata->read_head & (N_TTY_BUF_SIZE - 1); in n_tty_receive_buf_real_raw()
1488 memcpy(read_buf_addr(ldata, head), cp, n); in n_tty_receive_buf_real_raw()
1489 ldata->read_head += n; in n_tty_receive_buf_real_raw()
1493 head = ldata->read_head & (N_TTY_BUF_SIZE - 1); in n_tty_receive_buf_real_raw()
1495 memcpy(read_buf_addr(ldata, head), cp, n); in n_tty_receive_buf_real_raw()
1496 ldata->read_head += n; in n_tty_receive_buf_real_raw()
1503 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_buf_raw() local
1510 put_tty_queue(*cp++, ldata); in n_tty_receive_buf_raw()
1534 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_buf_standard() local
1548 put_tty_queue(c, ldata); in n_tty_receive_buf_standard()
1551 if (!test_bit(c, ldata->char_map)) in n_tty_receive_buf_standard()
1568 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_buf_fast() local
1577 if (!test_bit(c, ldata->char_map)) in n_tty_receive_buf_fast()
1593 struct n_tty_data *ldata = tty->disc_data; in __receive_buf() local
1596 if (ldata->real_raw) in __receive_buf()
1598 else if (ldata->raw || (L_EXTPROC(tty) && !preops)) in __receive_buf()
1603 if (ldata->lnext) { in __receive_buf()
1622 if (ldata->icanon && !L_EXTPROC(tty)) in __receive_buf()
1626 smp_store_release(&ldata->commit_head, ldata->read_head); in __receive_buf()
1628 if (read_cnt(ldata)) { in __receive_buf()
1671 struct n_tty_data *ldata = tty->disc_data; in n_tty_receive_buf_common() local
1690 size_t tail = smp_load_acquire(&ldata->read_tail); in n_tty_receive_buf_common()
1692 room = N_TTY_BUF_SIZE - (ldata->read_head - tail); in n_tty_receive_buf_common()
1697 overflow = ldata->icanon && ldata->canon_head == tail; in n_tty_receive_buf_common()
1699 ldata->read_head--; in n_tty_receive_buf_common()
1701 ldata->no_room = flow && !room; in n_tty_receive_buf_common()
1765 struct n_tty_data *ldata = tty->disc_data; in n_tty_set_termios() local
1768 bitmap_zero(ldata->read_flags, N_TTY_BUF_SIZE); in n_tty_set_termios()
1769 ldata->line_start = ldata->read_tail; in n_tty_set_termios()
1770 if (!L_ICANON(tty) || !read_cnt(ldata)) { in n_tty_set_termios()
1771 ldata->canon_head = ldata->read_tail; in n_tty_set_termios()
1772 ldata->push = 0; in n_tty_set_termios()
1774 set_bit((ldata->read_head - 1) & (N_TTY_BUF_SIZE - 1), in n_tty_set_termios()
1775 ldata->read_flags); in n_tty_set_termios()
1776 ldata->canon_head = ldata->read_head; in n_tty_set_termios()
1777 ldata->push = 1; in n_tty_set_termios()
1779 ldata->commit_head = ldata->read_head; in n_tty_set_termios()
1780 ldata->erasing = 0; in n_tty_set_termios()
1781 ldata->lnext = 0; in n_tty_set_termios()
1784 ldata->icanon = (L_ICANON(tty) != 0); in n_tty_set_termios()
1790 bitmap_zero(ldata->char_map, 256); in n_tty_set_termios()
1793 set_bit('\r', ldata->char_map); in n_tty_set_termios()
1795 set_bit('\n', ldata->char_map); in n_tty_set_termios()
1798 set_bit(ERASE_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1799 set_bit(KILL_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1800 set_bit(EOF_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1801 set_bit('\n', ldata->char_map); in n_tty_set_termios()
1802 set_bit(EOL_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1804 set_bit(WERASE_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1805 set_bit(LNEXT_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1806 set_bit(EOL2_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1809 ldata->char_map); in n_tty_set_termios()
1813 set_bit(START_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1814 set_bit(STOP_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1817 set_bit(INTR_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1818 set_bit(QUIT_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1819 set_bit(SUSP_CHAR(tty), ldata->char_map); in n_tty_set_termios()
1821 clear_bit(__DISABLED_CHAR, ldata->char_map); in n_tty_set_termios()
1822 ldata->raw = 0; in n_tty_set_termios()
1823 ldata->real_raw = 0; in n_tty_set_termios()
1825 ldata->raw = 1; in n_tty_set_termios()
1829 ldata->real_raw = 1; in n_tty_set_termios()
1831 ldata->real_raw = 0; in n_tty_set_termios()
1859 struct n_tty_data *ldata = tty->disc_data; in n_tty_close() local
1864 vfree(ldata); in n_tty_close()
1880 struct n_tty_data *ldata; in n_tty_open() local
1883 ldata = vmalloc(sizeof(*ldata)); in n_tty_open()
1884 if (!ldata) in n_tty_open()
1887 ldata->overrun_time = jiffies; in n_tty_open()
1888 mutex_init(&ldata->atomic_read_lock); in n_tty_open()
1889 mutex_init(&ldata->output_lock); in n_tty_open()
1891 tty->disc_data = ldata; in n_tty_open()
1893 ldata->column = 0; in n_tty_open()
1894 ldata->canon_column = 0; in n_tty_open()
1895 ldata->num_overrun = 0; in n_tty_open()
1896 ldata->no_room = 0; in n_tty_open()
1897 ldata->lnext = 0; in n_tty_open()
1911 struct n_tty_data *ldata = tty->disc_data; in input_available_p() local
1914 if (ldata->icanon && !L_EXTPROC(tty)) in input_available_p()
1915 return ldata->canon_head != ldata->read_tail; in input_available_p()
1917 return ldata->commit_head - ldata->read_tail >= amt; in input_available_p()
1945 struct n_tty_data *ldata = tty->disc_data; in copy_from_read_buf() local
1949 size_t head = smp_load_acquire(&ldata->commit_head); in copy_from_read_buf()
1950 size_t tail = ldata->read_tail & (N_TTY_BUF_SIZE - 1); in copy_from_read_buf()
1953 n = min(head - ldata->read_tail, N_TTY_BUF_SIZE - tail); in copy_from_read_buf()
1956 const unsigned char *from = read_buf_addr(ldata, tail); in copy_from_read_buf()
1961 smp_store_release(&ldata->read_tail, ldata->read_tail + n); in copy_from_read_buf()
1963 if (L_EXTPROC(tty) && ldata->icanon && is_eof && in copy_from_read_buf()
1964 (head == ldata->read_tail)) in copy_from_read_buf()
1999 struct n_tty_data *ldata = tty->disc_data; in canon_copy_from_read_buf() local
2009 n = min(*nr + 1, smp_load_acquire(&ldata->canon_head) - ldata->read_tail); in canon_copy_from_read_buf()
2011 tail = ldata->read_tail & (N_TTY_BUF_SIZE - 1); in canon_copy_from_read_buf()
2017 eol = find_next_bit(ldata->read_flags, size, tail); in canon_copy_from_read_buf()
2021 eol = find_next_bit(ldata->read_flags, more, 0); in canon_copy_from_read_buf()
2031 if (!found || read_buf(ldata, eol) != __DISABLED_CHAR) { in canon_copy_from_read_buf()
2046 clear_bit(eol, ldata->read_flags); in canon_copy_from_read_buf()
2047 smp_store_release(&ldata->read_tail, ldata->read_tail + c); in canon_copy_from_read_buf()
2050 if (!ldata->push) in canon_copy_from_read_buf()
2051 ldata->line_start = ldata->read_tail; in canon_copy_from_read_buf()
2053 ldata->push = 0; in canon_copy_from_read_buf()
2112 struct n_tty_data *ldata = tty->disc_data; in n_tty_read() local
2130 if (!mutex_trylock(&ldata->atomic_read_lock)) in n_tty_read()
2133 if (mutex_lock_interruptible(&ldata->atomic_read_lock)) in n_tty_read()
2141 if (!ldata->icanon) { in n_tty_read()
2152 tail = ldata->read_tail; in n_tty_read()
2211 if (ldata->icanon && !L_EXTPROC(tty)) { in n_tty_read()
2243 if (tail != ldata->read_tail) in n_tty_read()
2248 mutex_unlock(&ldata->atomic_read_lock); in n_tty_read()
2329 struct n_tty_data *ldata = tty->disc_data; in n_tty_write() local
2332 mutex_lock(&ldata->output_lock); in n_tty_write()
2334 mutex_unlock(&ldata->output_lock); in n_tty_write()
2406 static unsigned long inq_canon(struct n_tty_data *ldata) in inq_canon() argument
2410 if (ldata->canon_head == ldata->read_tail) in inq_canon()
2412 head = ldata->canon_head; in inq_canon()
2413 tail = ldata->read_tail; in inq_canon()
2417 if (test_bit(tail & (N_TTY_BUF_SIZE - 1), ldata->read_flags) && in inq_canon()
2418 read_buf(ldata, tail) == __DISABLED_CHAR) in inq_canon()
2428 struct n_tty_data *ldata = tty->disc_data; in n_tty_ioctl() local
2437 retval = inq_canon(ldata); in n_tty_ioctl()
2439 retval = read_cnt(ldata); in n_tty_ioctl()