tty_init_dev(9)
π tty_init_dev(9) π
okay bestie, this one comes straight from the Kernel API Manual, section 9, and it's literally the glow-up routine for a tty device β¨.
πΈ NAME πΈ
tty_init_dev β initialise a tty device π
β¨ SYNOPSIS β¨
struct tty_struct * tty_init_dev (struct tty_driver *driver , int idx );
π«Ά ARGUMENTS π«Ά
driverβ the tty driver we are opening a device on π main character driver energy.idxβ device index π the little number that says which one.
π¦ DESCRIPTION π¦
Prepare a tty device. This may not be a "new" clean device β it could also be an active device, no cap. The pty drivers require special handling because of this, iykyk.
Locking tea β: the function is called under the tty_mutex, which protects us from the tty struct or the driver itself going away. literally holding the lock so nobody ghosts mid-operation π
On exit the tty device has the line discipline attached and a reference count of 1. If a pair was created for pty/tty use and the other was a pty master then it too has a reference count of 1. both of them at 1, periodt π
WSH 06/09/97: Rewritten to remove races and properly clean up after a failed open. The new code protects the open with a mutex, so it's really quite straightforward. The mutex locking can probably be relaxed for the (most common) case of reopening a tty.
π₯ RETURN π₯
new tty structure β iconic, returned to you π
π SEE ALSO π
Kernel file: ./drivers/tty/tty_io.c β and the whole squad, in order:
free_tty_struct(9),tty_free_file(9),tty_name(9),get_tty_driver(9),tty_dev_name_to_number(9),tty_find_polling_driver(9),tty_wakeup(9),tty_release_redirect(9),__tty_hangup(9),tty_hangup(9)tty_vhangup(9),tty_vhangup_self(9),tty_vhangup_session(9),tty_hung_up_p(9),stop_tty(9),start_tty(9),tty_read(9),tty_write(9),tty_send_xchar(9),pty_line_name(9)tty_line_name(9),tty_driver_lookup_tty(9),tty_init_termios(9),tty_standard_install(9),tty_driver_install_tty(9),tty_driver_remove_tty(9),tty_reopen(9),tty_save_termios(9),tty_flush_works(9),release_one_tty(9)tty_kref_put(9),release_tty(9),tty_release_checks(9),tty_kclose(9),tty_release_struct(9),tty_release(9),tty_open_current_tty(9),tty_lookup_driver(9),tty_kopen_exclusive(9),tty_kopen_shared(9)tty_open_by_driver(9),tty_open(9),tty_poll(9),tiocsti(9),tiocgwinsz(9),tty_do_resize(9),tiocswinsz(9),tioccons(9),tiocsetd(9),tiocgetd(9)send_break(9),tty_get_tiocm(9),tty_tiocmget(9),tty_tiocmset(9),tty_get_icount(9),alloc_tty_struct(9),tty_put_char(9),tty_register_device(9),tty_register_device_attr(9),tty_unregister_device(9)__tty_alloc_driver(9),tty_driver_kref_put(9),tty_register_driver(9),tty_unregister_driver(9)
xoxo, signed with love by ./drivers/tty, dated October 2026, and filed under tty_init_dev(9) ππ«Άπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms