Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 4 files:
- drivers/accessibility/speakup/spk_ttyio.c, line 380
- drivers/tty/n_gsm.c
- drivers/tty/n_tty.c
- drivers/tty/tty_ioctl.c, line 72
Smatch caller information:
drivers/tty/n_gsm.c gsmld_output() -> tty_write_room()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tty | 4096-ptr_max |
| PREEMPT_ADD | |||
| LOCK2 | &gsm->tx_lock | ||
| LOCK2 | flags | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct gsm_mux)->tx_lock |
drivers/tty/n_gsm.c gsmld_poll() -> tty_write_room()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tty | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->disc_data | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc | 1-u64max |
| PARAM_VALUE | 0 | tty->ldisc_sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.head.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.head.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->write_wait.head.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->write_wait.head.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->write_wait.head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->write_wait.head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->write_wait.lock.rlock.dep_map->name | 0-255 |
| DATA_SOURCE | 0 | tty | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | 0 | &tty->ldisc_sem | |
| HALF_LOCKED2 | &kvm->irq_srcu | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &vm->irqfds_lock | ||
| HALF_LOCKED2 | global &irqfds_srcu | ||
| TYPE_LOCK | (struct tty_struct)->ldisc_sem |
drivers/tty/n_gsm.c gsmld_write() -> tty_write_room()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tty | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->atomic_write_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->atomic_write_lock.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->atomic_write_lock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | tty->atomic_write_lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | tty->disc_data | 1-u64max |
| PARAM_VALUE | 0 | tty->ldisc | 1-u64max |
| PARAM_VALUE | 0 | tty->ldisc_sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write_room | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->termios_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | tty->termios_rwsem.first_waiter->type | 0-1 |
| BUF_SIZE | 0 | tty->write_buf | (-1),1024-65536 |
| CAPPED_DATA | 0 | tty | 1 |
| DATA_SOURCE | 0 | tty | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | tty->write_cnt | 1025-u16max[c] |
| LOCK2 | &gsm->tx_lock | ||
| LOCK2 | flags | ||
| LOCK2 | 0 | &tty->atomic_write_lock | |
| LOCK2 | 0 | &tty->ldisc_sem | |
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct gsm_mux)->tx_lock | ||
| TYPE_LOCK | (struct tty_struct)->atomic_write_lock | ||
| TYPE_LOCK | (struct tty_struct)->ldisc_sem |
drivers/accessibility/speakup/spk_ttyio.c spk_ttyio_synth_immediate() -> tty_write_room()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tty | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write_room | 0,4096-ptr_max |
| BUF_SIZE | 0 | tty | 1816 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &spk_mutex |
drivers/tty/n_tty.c __process_echoes() -> tty_write_room()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tty | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->disc_data | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->link->termios_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | tty->link->termios_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | tty->ops->break_ctl | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->chars_in_buffer | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->cleanup | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->close | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->compat_ioctl | 0,1607379221601308672,5008286898947497984,6364353445524312064 |
| PARAM_VALUE | 0 | tty->ops->flush_buffer | 0,759512161776693248,1438963212235436032,3037852187181395968,3356400052838694912,4884767172415688704,8736245651927326720,8787202642060013568 |
| PARAM_VALUE | 0 | tty->ops->flush_chars | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->get_icount | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->get_serial | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->hangup | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->install | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->ioctl | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->ldisc_ok | 0,6843386834578624512 |
| PARAM_VALUE | 0 | tty->ops->lookup | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->open | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->poll_get_char | 0,4172584550987694080,8810588628199956480 |
| PARAM_VALUE | 0 | tty->ops->poll_init | 0,1455831725284642816,7005422354281586688 |
| PARAM_VALUE | 0 | tty->ops->poll_put_char | 0,317088091350007808,4944462343817641984 |
| PARAM_VALUE | 0 | tty->ops->proc_show | 0,356236415985979392,5729891321464528896,9011853526131630080 |
| PARAM_VALUE | 0 | tty->ops->put_char | 0,46317935159074816,946511232463630336,5234932001147445248,6499862429192966144,7134038662404317184 |
| PARAM_VALUE | 0 | tty->ops->remove | 0,384629141214146560,3489019467251376128 |
| PARAM_VALUE | 0 | tty->ops->resize | 0,2815742157479378944,7598537204212207616 |
| PARAM_VALUE | 0 | tty->ops->send_xchar | 0,2462859047340216320,4708555404674125824,8710759130855649280 |
| PARAM_VALUE | 0 | tty->ops->set_ldisc | 0,1741587377620623360 |
| PARAM_VALUE | 0 | tty->ops->set_serial | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->set_termios | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->show_fdinfo | 0,5525676422896762880 |
| PARAM_VALUE | 0 | tty->ops->shutdown | 0,3518621193109893120,5469287042401259520 |
| PARAM_VALUE | 0 | tty->ops->start | 0,251324532200828928,1038803386632884224,1167599979921588224,1380472159287435264,2505730045728698368 |
| PARAM_VALUE | 0 | tty->ops->stop | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->throttle | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->tiocmget | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->tiocmset | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->unthrottle | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->wait_until_sent | 0,2578158375326154752,2614800216018440192,6874988682411192320,7074827580452507648,7916194843820081152 |
| PARAM_VALUE | 0 | tty->ops->write | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write_room | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->termios_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | tty->termios_rwsem.first_waiter->type | 0-1 |
| BUF_SIZE | 0 | tty | s32min,(-1),1-s32max |
| BUF_SIZE | 0 | tty | s32min,(-1),1-s32max |
| BUF_SIZE | 0 | tty->write_buf | (-1),1024-65536 |
| CAPPED_DATA | 0 | tty | 1 |
| DATA_SOURCE | 0 | tty | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | tty->termios.c_cflag | 0-u32max[c] |
| USER_DATA | 0 | tty->termios.c_iflag | 0-u32max[c] |
| USER_DATA | 0 | tty->termios.c_ispeed | 0-u32max |
| USER_DATA | 0 | tty->termios.c_lflag | 0-u32max[c] |
| USER_DATA | 0 | tty->termios.c_line | 0-255 |
| USER_DATA | 0 | tty->termios.c_oflag | 0-u32max[c] |
| USER_DATA | 0 | tty->termios.c_ospeed | 0-u32max |
| USER_DATA | 0 | tty->write_cnt | 1025-u16max[c] |
| NO_OVERFLOW_SIMPLE | 0 | tty->driver_data->d_fsdata | |
| NO_OVERFLOW_SIMPLE | 0 | tty->driver_data->d_fsdata->d_fsdata | |
| NO_OVERFLOW_SIMPLE | 0 | tty->name | |
| USER_PTR | 0 | tty->disc_data->priv->rx_skb->data | |
| LOCK2 | _T->lock | ||
| HALF_LOCKED2 | 0 | &tty->atomic_write_lock | |
| HALF_LOCKED2 | 0 | &tty->ldisc_sem | |
| HALF_LOCKED2 | 0 | &tty->legacy_mutex | |
| HALF_LOCKED2 | 0 | &tty->port->buf.lock | |
| HALF_LOCKED2 | 0 | &tty->termios_rwsem |
drivers/tty/n_tty.c n_tty_poll() -> tty_write_room()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tty | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->disc_data | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc | 1-u64max |
| PARAM_VALUE | 0 | tty->ldisc_sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->link | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->port->buf.work.lockdep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->read_wait.head.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.head.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->read_wait.lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->write_wait.head.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->write_wait.head.next->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->write_wait.head.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->write_wait.head.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->write_wait.lock.rlock.dep_map->name | 0-255 |
| DATA_SOURCE | 0 | tty | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | 0 | &tty->ldisc_sem | |
| HALF_LOCKED2 | &kvm->irq_srcu | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &vm->irqfds_lock | ||
| HALF_LOCKED2 | global &irqfds_srcu | ||
| TYPE_LOCK | (struct tty_struct)->ldisc_sem |
drivers/tty/n_tty.c process_output() -> tty_write_room()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tty | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->atomic_write_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->atomic_write_lock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | tty->atomic_write_lock.first_waiter->list.prev->prev | 5159360019465732096 |
| PARAM_VALUE | 0 | tty->disc_data | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->flush_chars | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write_room | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->termios_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | tty->termios_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | tty->write_wait.lock.rlock.dep_map->name | 0-255 |
| BUF_SIZE | 0 | tty->write_buf | (-1),1024-65536 |
| CAPPED_DATA | 0 | tty | 1 |
| DATA_SOURCE | 0 | tty | $1 |
| BIT_INFO | 0 | tty->termios.c_oflag | 0x1,0xffffffffffffffff |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | tty->write_cnt | 1025-u16max[c] |
| LOCK2 | _T->lock | ||
| LOCK2 | 0 | &tty->atomic_write_lock | |
| LOCK2 | 0 | &tty->ldisc_sem | |
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | 0 | &tty->termios_rwsem | |
| TYPE_LOCK | (struct tty_struct)->atomic_write_lock | ||
| TYPE_LOCK | (struct tty_struct)->ldisc_sem |
drivers/tty/n_tty.c process_output_block() -> tty_write_room()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | tty | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->atomic_write_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->atomic_write_lock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | tty->atomic_write_lock.first_waiter->list.prev->prev | 5159360019465732096 |
| PARAM_VALUE | 0 | tty->ldisc_sem.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ldisc_sem.read_wait.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->flush_chars | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write | 4096-ptr_max |
| PARAM_VALUE | 0 | tty->ops->write_room | 0,4096-ptr_max |
| PARAM_VALUE | 0 | tty->termios_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | tty->termios_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | tty->write_wait.lock.rlock.dep_map->name | 0-255 |
| BUF_SIZE | 0 | tty->write_buf | (-1),1024-65536 |
| CAPPED_DATA | 0 | tty | 1 |
| DATA_SOURCE | 0 | tty | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | tty->write_cnt | 1025-u16max[c] |
| LOCK2 | _T->lock | ||
| LOCK2 | 0 | &tty->atomic_write_lock | |
| LOCK2 | 0 | &tty->ldisc_sem | |
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | 0 | &tty->termios_rwsem | |
| TYPE_LOCK | (struct tty_struct)->atomic_write_lock | ||
| TYPE_LOCK | (struct tty_struct)->ldisc_sem |