STRUCT FC_EXCH_MGR_ANCHOR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct fc_exch_mgr_anchor(9) πŸ’–

okay bestie, welcome to the Kernel API Manual β€” we are looking at struct fc_exch_mgr_anchor, and it is giving primary structure for list of EMs. main character energy fr fr πŸ‘‘


🌸 NAME 🌸

struct fc_exch_mgr_anchor β€” primary structure for list of EMs. that’s the whole vibe: the headliner struct for keeping a list of EMs. 🫢


✨ SYNOPSIS ✨

       struct fc_exch_mgr_anchor {
           struct list_head ema_list;
           struct fc_exch_mgr *mp;
           bool (*match)(struct fc_frame *);
        };

🫢 Members 🫢

  • ema_list β€” Exchange Manager Anchor list πŸŽ€
  • mp β€” Exchange Manager associated with this anchor πŸ”₯
  • match β€” Routine to determine if this anchor's EM should be used πŸ‘‘

πŸ’– Description πŸ’–

When we walk the list of anchors, the match routine will be called for each anchor to determine if that EM should be used. it’s giving matchmaker energy πŸ’… The last anchor in the list will always match to handle any exchanges not handled by other EMs β€” no cap. The non-default EMs would be added to the anchor list by HW that provides offloads. πŸ”₯

bestie, remember the anchor-list rule: the last anchor always matches, so it catches whatever the other EMs didn’t. periodt. πŸ’€

πŸ”— SEE ALSO πŸ”—

Kernel file ./drivers/scsi/libfc/fc_exch.c πŸ‘€ plus this whole iconic friend group: struct fc_exch_pool(9), struct fc_exch_mgr(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_send(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). πŸ¦‹


mwah πŸ’‹ that’s the tea β€” source/version: ./drivers/scsi/libfc Β· date: October 2026 Β· page: struct fc_exch_mgr_anchor(9) 🌈

πŸ“¦ where this page comes from