gsm_dlci_data(9)
okay so bestie β welcome to gsm_dlci_data(9), straight out of the Kernel API Manual (the 9 is the section number, we love a numbered girlie β¨). This one's short, sweet, and honestly kind of iconic: it's the little function that catches data when a frame rolls in. Let's get into it π«Ά
π NAME π
gsm_dlci_data β data arrived π
Like, literally that's the whole vibe. Data showed up. The function is here for it.
β¨ SYNOPSIS β¨
void gsm_dlci_data (struct gsm_dlci *dlci , const u8 *data , int clen );
No return value, no drama β void queen behavior, we love to see it π
π¦ ARGUMENTS π¦
dlciβ the channel π this is the whole point, the channel the data belongs todataβ the block of bytes received π a big lil pile of raw bytesclenβ the length of that received block π so we know how many bytes we're working with, no guessing
πΈ DESCRIPTION πΈ
So here's the tea β β a UI or UIH frame has arrived, and it's carrying data for a channel that is not the control channel. Main character data energy, honestly.
Then it's basically a vibe check on the virtual tty:
- if the relevant virtual tty is open, we shovel the bits down it π (yes, "shovel" is the technical term, periodt)
- if it is not open, we drop them π no tty, no home, bye bestie
That's it. That's the function. Zero notes, ate and left no crumbs π₯
π SEE ALSO π
Kernel file ./drivers/tty/n_gsm.c β the mothership the whole GSM mux family lives in π and here's the full squad, because every single one of them is a reference and we do not leave anybody out of the group chat:
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_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)
and that's the whole friend group π§π
ngl bestie, this page came from ./drivers/tty and it's dated October 2026, courtesy of the Kernel API Manual. so when you cite it, cite it with your whole chest π
ππ¦ slay, and good luck out there with your frames β¨
π¦ 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