gsm_print_packet(9)
π gsm_print_packet β a Kernel API Manual moment (section 9, bestie)
okay so real talk, this is a page from the Kernel API Manual, and it's all about one lil function that prints frames so you can debug them. no cap, it's iconic in a very nerdy way. let's get into it π
β¨ NAME β¨
gsm_print_packet β display a frame for debug π¦
β¨ SYNOPSIS β¨
void gsm_print_packet (const char *hdr , int addr , int cr , u8 control
, const u8 *data , int dlen );
like, that's the whole signature. she's void, she takes six things, she's living her best life π
β¨ ARGUMENTS β¨
so every single one of these matters, don't skip any π
hdrβ the header you want printed out before the decode happens. it's the vibe-setter, the little intro card πΈaddrβ the address, specifically the EA from the framecrβ the C/R bit, seen as initiatorcontrolβ the control field, and yes it includes the PF bitdataβ the data bytes that followdlenβ the length of that data π
β¨ DESCRIPTION β¨
so what does it actually do? it displays a packet in human readable format, purely for debugging purposes. that's the whole assignment, and she ate π₯
the style is based on amateur radio LAP-B dump display β yes, that's a real aesthetic, and honestly? it's giving retro-cool. iykyk π»β¨
ngl this is a debug tool, so it's here to help you look at frames, not to do anything spicy to them π«Ά
β¨ SEE ALSO β¨
okay bestie, brace yourself, because the related-functions list is long and we're not skipping a single one β the kernel file is ./drivers/tty/n_gsm.c, and here's the whole squad ππ
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_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_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)
periodt. that's all of them, every last one π
and that's the page! little sign-off from your girl: this one lives in ./drivers/tty, dated October 2026, and it's gsm_print_packet(9) β go print some packets, bestie, and slay it πππ
π¦ 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