gsmld_read(9)
π gsmld_read(9) β like, the read function for tty, bestie
okay so real quick before we dive in: this is a page from the Kernel API Manual, section 9. Yes, the kernel. Yes, the real one. Buckle up π
β¨ NAME β¨
gsmld_read β the read function for tty. that's it, that's the whole vibe πΈ
β¨ SYNOPSIS β¨
ssize_t gsmld_read (struct tty_struct *tty , struct file *file , u8 *buf
, size_t nr , void **cookie , unsigned long offset );
π«Ά ARGUMENTS π«Ά
ttyβ the tty device. bestie's whole personality, lowkey πfileβ the file object πbufβ a userspace buffer pointer β¨nrβ size of I/O πΈcookieβ unused πoffsetβ unused π (twins! both unused, iconic)
π₯ DESCRIPTION π₯
okay so this is where we do reads for the line discipline. and hear me out, the guarantees are kinda giving safety net: we are guaranteed that the line discipline will not be closed under us ππ«Ά but bestie, we may get multiple parallel readers and we must handle this ourselves. no cap. and we may also get a hangup. oh and it's always called in user context, and it may sleep. so like, plan accordingly π
π¨ also real talk: this code must be sure never to sleep through a hangup. not a drill, fr fr π
π SEE ALSO π
Kernel file ./drivers/tty/n_gsm.c β and now the friend group, and yes you're gonna meet all of them, we don't leave anyone out π:
gsm_fcs_add(9), gsm_fcs_add_block(9), gsm_read_ea(9), gsm_read_ea_val(9), gsm_encode_modem(9), gsm_encode_params(9), gsm_register_devices(9), gsm_unregister_devices(9), gsm_print_packet(9), gsm_stuff_frame(9), gsm_send(9), gsm_dlci_clear_queues(9), gsm_response(9), gsm_command(9), gsm_data_alloc(9), gsm_send_packet(9), gsm_is_flow_ctrl_msg(9), gsm_data_kick(9), __gsm_data_queue(9), gsm_data_queue(9), gsm_dlci_data_output(9), gsm_dlci_data_output_framed(9), gsm_dlci_modem_output(9), gsm_dlci_data_sweep(9), gsm_dlci_data_kick(9), gsm_control_command(9), gsm_control_reply(9), gsm_process_modem(9), gsm_process_negotiation(9), gsm_control_modem(9), gsm_control_negotiation(9), gsm_control_rls(9), gsm_control_message(9), gsm_control_response(9), gsm_control_keep_alive(9), gsm_control_transmit(9), gsm_control_retransmit(9), gsm_control_send(9), gsm_control_wait(9), gsm_dlci_close(9), gsm_dlci_open(9), gsm_dlci_negotiate(9), gsm_dlci_t1(9), gsm_dlci_begin_open(9), gsm_dlci_set_opening(9), gsm_dlci_set_wait_config(9), gsm_dlci_begin_close(9), gsm_dlci_data(9), gsm_dlci_command(9), gsm_kick_timer(9), gsm_dlci_copy_config_values(9), gsm_dlci_config(9), gsm_dlci_alloc(9), gsm_dlci_free(9), gsm_dlci_release(9), gsm_queue(9), gsm0_receive_state_check_and_fix(9), gsm0_receive(9), gsm1_receive_state_check_and_fix(9), gsm1_receive(9), gsm_error(9), gsm_cleanup_mux(9), gsm_activate_mux(9), gsm_free_mux(9), gsm_free_muxr(9), gsm_alloc_mux(9), gsmld_output(9), gsmld_write_trigger(9), gsmld_write_task(9), gsmld_attach_gsm(9), gsmld_detach_gsm(9), gsmld_flush_buffer(9), gsmld_close(9), gsmld_open(9), gsmld_write_wakeup(9), gsmld_write(9), gsmld_poll(9), gsm_modem_upd_via_data(9), gsm_modem_upd_via_msc(9), gsm_modem_update(9), gsm_wait_modem_change(9)
like I said. the whole group chat π β¨
okay that's the page, mwah π this little masterpiece lives in ./drivers/tty and it's dated October 2026 β so yeah, future-core of it all, 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