fc_seq_send(9)
π fc_seq_send(9) β the send-a-frame one π
okay bestie, welcome to the Kernel API Manual β¨ this one is short and sweet and honestly kind of a baddie. it's fc_seq_send, and no cap, its whole personality is: take a frame, yeet it out on a sequence/exchange pair you already have. that's it. that's the whole vibe π
πΈ NAME πΈ
fc_seq_send β send a frame using an existing sequence/exchange pair π
(emphasis on existing, she does not make new ones, she just uses what you hand her, iykyk)
π¦ SYNOPSIS π¦
int fc_seq_send (struct fc_lport *lport , struct fc_seq *sp , struct
fc_frame *fp );
it returns an int, bestie. that's the tea β
β¨ ARGUMENTS β¨
lportβ the local port that the exchange is gonna be sent on π«Ά like, where the whole thing lives.spβ the sequence to be sent π§ this is the sequence, she's already got her act together, you're just sending her.fpβ the frame to be sent on the exchange π the actual frame, the main character, the payload carrier.
β NOTE β
okay so this is important so listen up π’ the frame will be freed. yes, freed. gone. and it happens one of two ways:
- by a direct call to
fc_frame_free(fp), or - indirectly by calling
libfc_function_template.frame_send
either way, do not be out here touching that frame afterwards, that's giving use-after-free energy and we do NOT stan π
π SEE ALSO π
the whole friend group, fr fr β you can find all of these in the kernel file ./drivers/scsi/libfc/fc_exch.c:
struct fc_exch_pool(9)struct fc_exch_mgr(9)struct fc_exch_mgr_anchor(9)fc_exch_name_lookup(9)fc_exch_rctl_name(9)fc_exch_hold(9)fc_exch_setup_hdr(9)fc_exch_release(9)fc_exch_timer_cancel(9)fc_exch_timer_set_locked(9)fc_exch_timer_set(9)fc_exch_done_locked(9)fc_exch_ptr_get(9)fc_exch_ptr_set(9)fc_exch_delete(9)fc_seq_alloc(9)fc_seq_start_next_locked(9)fc_seq_start_next(9)fc_exch_abort_locked(9)fc_seq_exch_abort(9)fc_invoke_resp(9)fc_exch_timeout(9)fc_exch_em_alloc(9)fc_exch_alloc(9)fc_exch_find(9)fc_exch_done(9)fc_exch_resp(9)fc_seq_lookup_recip(9)fc_seq_lookup_orig(9)fc_exch_set_addr(9)fc_seq_els_rsp_send(9)fc_seq_send_last(9)fc_seq_send_ack(9)fc_exch_send_ba_rjt(9)fc_exch_recv_abts(9)fc_seq_assign(9)fc_seq_release(9)fc_exch_recv_req(9)fc_exch_recv_seq_resp(9)fc_exch_recv_resp(9)fc_exch_abts_resp(9)fc_exch_recv_bls(9)fc_seq_ls_acc(9)fc_seq_ls_rjt(9)fc_exch_reset(9)fc_exch_pool_reset(9)fc_exch_mgr_reset(9)fc_exch_lookup(9)fc_exch_els_rec(9)fc_exch_rrq_resp(9)fc_exch_seq_send(9)fc_exch_rrq(9)fc_exch_els_rrq(9)fc_exch_update_stats(9)fc_exch_mgr_add(9)fc_exch_mgr_destroy(9)fc_exch_mgr_del(9)fc_exch_mgr_list_clone(9)fc_exch_mgr_alloc(9)fc_exch_mgr_free(9)fc_find_ema(9)fc_exch_recv(9)fc_exch_init(9)fc_setup_exch_mgr(9)fc_destroy_exch_mgr(9)
and that's the whole page, bestie π«Ά go send some frames responsibly π
mwah π this one comes to you from ./drivers/scsi/libfc, dated October 2026 β see you in the next manpage, love u, 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