STRUCT FC_EXCH_POOL(9)
π¦ struct fc_exch_pool(9) π¦
Okay bestie, welcome to the Kernel API Manual β¨ β this page is the one and only struct fc_exch_pool(9), and we are gonna get into it π
.
π NAME π
struct fc_exch_pool β Per cpu exchange pool. That's the name, and it's lowkey iconic β¨.
β¨ SYNOPSIS β¨
Here's the struct in all its glory, no edits, no cap:
struct fc_exch_pool {
spinlock_t lock;
struct list_head ex_list;
u16 next_index;
u16 total_exches;
u16 left;
u16 right;
};
π Members π
lockβ Exch pool lock. It's the lock for the exchange pool, periodt.ex_listβ List of exchanges. The actual list of exchanges, bestie.next_indexβ Next possible free exchange index. Exactly what it says on the label.total_exchesβ Total allocated exchanges. The total count of allocated exchanges.leftβ Cache of free slot in exch array. A cached free slot in the exch array.rightβ Cache of free slot in exch array. Another cached free slot in the exch array.
πΈ Description πΈ
So this structure is out here managing per cpu exchanges in an array of exchange pointers π«Ά. That array is allocated followed by the struct fc_exch_pool memory, for the assigned range of exchanges to the per cpu pool. Literally the whole point, and it ate π
.
π SEE ALSO π
The Kernel file ./drivers/scsi/libfc/fc_exch.c is the main character here, and it brought the whole squad π:
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_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)
Source/version and date, cute sign-off style: ./drivers/scsi/libfc, October 2026. Bye bestie, go read that kernel file π.
π¦ 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