gsm_control_retransmit(9)
π gsm_control_retransmit π
okay so bestie, we're in the Kernel API Manual today and the star of the show is gsm_control_retransmit(9) β literally the "oops did that control frame get lost, lemme send it again" girlie. sit down, grab a strawberry drink π, and let's get into it.
β¨ NAME β¨
gsm_control_retransmit β retransmit a control frame π«Ά
πΈ SYNOPSIS πΈ
void gsm_control_retransmit (struct timer_list *t );
like, that's the whole signature. no notes. π
π ARGUMENTS π
tβ the timer that's contained in our gsm object β°
π¦ DESCRIPTION π¦
so here's the vibe: this gets called off the T2 timer expiry, and its whole job is to retransmit control frames that have been lost in the system somewhere π like genuinely lost, gone, ghosted.
The control_lock protects us from colliding with another sender or a receive completion event β it's giving bodyguard energy ngl π₯
β οΈ but bestie, hear me: in that situation the timer may still occur in a small window, butgsm->pending_cmdwill beNULLand we just let the timer expire. no drama, no crash, we simply let it go π
π SEE ALSO π
the kernel file is ./drivers/tty/n_gsm.c and honestly the whole friend group is here β every single one, no cap:
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_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_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, the way this list ate and left no crumbs π go read them all iykyk π
sign-off time π§β¨
this little masterpiece lives in ./drivers/tty, dated October 2026, and it's gsm_control_retransmit(9) through and through. mwah π go retransmit those frames bestie, 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