tty_tiocmset(9)
π tty_tiocmset β set modem status β¨
okay so bestie, welcome to the Kernel API Manual page for tty_tiocmset(9) β yes it's a section 9 page, yes it's kernel-internal, no you cannot escape the tty subsystem, it's literally everywhere π
β¨ SYNOPSIS β¨
int tty_tiocmset (struct tty_struct *tty , unsigned int cmd , unsigned
__user *p );
that's the whole signature, no notes, she's serving "three-argument queen" and honestly? iconic.
π ARGUMENTS π
ttyβ the tty device, your main character, the whole point π«Άcmdβ the command, and she's one of three vibes: clear bits, set bits, or set all β pick your fighter πpβ a pointer to the bits you actually want, the user-space wish list, the blueprint πΈ
π¦ DESCRIPTION π¦
okay so here's the tea: tty_tiocmset sets the modem status bits, and it does that from the tty driver β but only if the driver's feature set actually supports it. not everyone can sit with us, y'know?
if the feature is not available, it returns -ENOTTY. that's it, that's the rejection text, no explanation, just -ENOTTY and a closed door π
Locking: none (up to the driver) β like, the function itself takes no locks, so if the driver needs locking, the driver sorts it out. no cap, that's the actual deal π
π SEE ALSO π
the lore is deep, so here's the full squad, straight from the kernel file ./drivers/tty/tty_io.c:
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_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_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 sixty-something friends and every single one of them is a real cross-reference, i checked, i would never lie to you π
and that's the page!! mwah π
cute little sign-off bestie: this one lives in ./drivers/tty and she was stamped October 2026 β go read the source, go be obsessed, go set some modem status bits, periodt ππ
π¦ 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