gsm_stuff_frame(9)
π gsm_stuff_frame(9) β like, the kernel API manual bestie
okay so we're deep in the Kernel API Manual today and the star of the show is gsm_stuff_frame(9). yes it's a real function name. yes it's giving "cursed but iconic". let's get into it π
β¨ NAME β¨
gsm_stuff_frame β bytestuff a packet π¦
β¨ SYNOPSIS β¨
int gsm_stuff_frame (const u8 *input , u8 *output , int len );
πΈ ARGUMENTS πΈ
inputβ the input buffer, aka where the raw stuff lives πoutputβ the output buffer, aka where the glow-up happens β¨lenβ length of input, like how much we're working with, no cap
π₯ DESCRIPTION π₯
so this one expands a buffer by bytestuffing it. that's it, that's the whole vibe π
the worst case size change is doubling β literally twice the size, so plan accordingly bestie. and the caller is responsible for handing out suitably sized buffers. that's on you, not on the function. the function is just doing its little bytestuff thing π
β οΈ fr fr: worst case is doubling and you own the buffer sizing. don't come crying to gsm_stuff_frame when your buffer's too smol π
π¦ SEE ALSO π¦
Kernel file ./drivers/tty/n_gsm.c β and honestly the whole n_gsm extended family showed up to the party, so here's everyone, in the order they rolled in π
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_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_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, eighty-ish functions and not one of them skipped π slay.
and that's the whole page bestie!! π«Ά sign-off time: this one lives in ./drivers/tty and it's dated October 2026, and yeah β it's gsm_stuff_frame(9) all the way down. go stuff some frames responsibly, ily, bye πβ¨πΈ
π¦ 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