gsmld_write(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– gsmld_write(9) β€” Kernel API Manual πŸ’–

okay so bestie, welcome to gsmld_write(9), a page straight out of the Kernel API Manual, and honestly? it's a little baddie of a function. let's get into it πŸŽ€


✨ NAME ✨

gsmld_write β€” the write function for tty. that's it, that's the vibe. it writes. to a tty. slay πŸ’…


✨ SYNOPSIS ✨

ssize_t gsmld_write (struct tty_struct *tty , struct file *file , const
u8 *buf , size_t nr );

look at her. four arguments, one ssize_t return, zero notes. iconic πŸ‘‘


✨ ARGUMENTS ✨

  • tty β€” the tty device. the main character of this whole operation 🫢
  • file β€” the file object. yes bestie, that file object 🌸
  • buf β€” a userspace buffer pointer. it's pointing at stuff. respect it ✨
  • nr β€” the size of the I/O. in other words, how much we're moving πŸ’«

✨ DESCRIPTION ✨

okay so here's the tea β˜• β€” this one gets called when the owner of the device wants to send a frame itself, or like, some other control data. very "i'll handle this myself" energy, love that for them πŸ’…

the data gets transferred as-is. no glow-up, no edits, no nothing. and because of that, it must be properly framed and checksummed as appropriate by userspace. so that's on you, bestie, not on the kernel πŸ™ˆ

also key detail: frames are either sent whole or not at all. no half-frames, no messy in-betweens, none of that. and like… that's genuinely a good thing? because it avoids pain on the user side 😭 fr fr, nobody wants to deal with a half-sent frame. we simply don't have the energy.


✨ SEE ALSO ✨

πŸ¦‹ Kernel file ./drivers/tty/n_gsm.c β€” go read it, iykyk

and now, the full bestie roll call β€” literally every single one, no skips, no cuts, periodt πŸ‘‘:

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_read(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… that's a lot of friends and she knows every single one of them πŸ’œ


🌈 and that's the whole page, bestie! no cap, you now know gsmld_write better than most people know their own wifi password ✨

this little masterpiece lives in ./drivers/tty, dated October 2026 β€” mwah, go forth and frame your data properly πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from