tty_reopen(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… tty_reopen β€” Kernel API Manual, bestie edition πŸ’…

Okay so this is the tty_reopen(9) page from the Kernel API Manual, and it is short, it is sweet, and it is genuinely iconic for how little it needs to say. Let's get into it ✨


🌸 NAME 🌸

tty_reopen β€” fast re-open of an open tty

Like, it re-opens a tty that's already open. Fast. That's the whole vibe check. πŸ¦‹


✨ SYNOPSIS ✨

int tty_reopen (struct tty_struct *tty );

That's it. One function, one argument, returns an int. Clean. Minimalist. Main character energy. πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • tty β€” the tty to open. That's your girl. That's the one you're re-opening. 🫢

πŸ’– DESCRIPTION πŸ’–

So here's the tea: re-opens on master ptys are not allowed, and they return -EIO. Not negotiable, not a vibe, just no. 😭

Locking: the caller must hold tty_lock. Like, this is not optional, this is not a suggestion, this is the rule. Hold the lock or don't come to the function. Periodt. πŸ”₯

fr fr, don't skip the locking note. "Caller must hold tty_lock" is doing a lot of heavy lifting in this one line and it's not there for decoration πŸ’€

⭐ RETURN ⭐

  • 0 on success πŸŽ‰
  • -errno on error πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/tty/tty_io.c, plus the whole friend group:

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_init_dev(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) 🧚


That's the whole page, bestie β€” short king energy πŸ‘‘. This little cutie lives in ./drivers/tty and the page is dated October 2026, so bestie, go hold that tty_lock and slay πŸ’œπŸŒΈ

πŸ“¦ where this page comes from