STRUCT FC_BSG_INFO(9)
π struct fc_bsg_info(9) β Kernel API Manual, but make it cute π
okay so bestie. this is a page from the Kernel API Manual and it's literally all about struct fc_bsg_info. yes the name is giving "what does that even mean" but stay with me, it's shorter than it looks and you're gonna slay it β¨
β¨ NAME β¨
struct fc_bsg_info β the FC Passthrough managemet structure π (that's the official title, typo and all, no cap β I'm not touching it, it's iconic)
πΈ SYNOPSIS πΈ
struct fc_bsg_info {
struct bsg_job *job;
struct fc_lport *lport;
u16 rsp_code;
struct scatterlist *sg;
u32 nents;
size_t offset;
};
six fields. that's it. that's the whole struct. she's compact and she knows it π«Ά
π¦ Members π¦
let's go field by field, main character by main character:
jobβ the passthrough job. like, the whole reason we're here πlportβ the local port you're passing a command through. your little doorway πΈrsp_codeβ the expected response code. what we think is coming back πsgβ literallyjob->reply_payload.sg_list. that's the whole description. she points at the scatterlist β¨nentsβjob->reply_payload.sg_cnt. the count. how many of those entries we're dealing with π’offsetβ the offset into the response data. the little scoot-in distance into the buffer π
π SEE ALSO π
β sidebar: this all lives in the Kernel file ./drivers/scsi/libfc/fc_lport.c β that's the source of truth, bestie π«Ά
and now the guest list. it's long. it's a whole group chat. but every single one is invited, so here we go:
fc_frame_drop(9)fc_lport_rport_callback(9)fc_lport_state(9)fc_lport_ptp_setup(9)fc_get_host_port_state(9)fc_get_host_speed(9)fc_get_host_stats(9)fc_lport_flogi_fill(9)fc_lport_add_fc4_type(9)fc_lport_recv_rlir_req(9)fc_lport_recv_echo_req(9)fc_lport_recv_rnid_req(9)fc_lport_recv_logo_req(9)fc_fabric_login(9)__fc_linkup(9)fc_linkup(9)__fc_linkdown(9)fc_linkdown(9)fc_fabric_logoff(9)fc_lport_destroy(9)fc_set_mfs(9)fc_lport_disc_callback(9)fc_lport_enter_ready(9)fc_lport_set_port_id(9)fc_lport_set_local_id(9)fc_lport_recv_flogi_req(9)fc_lport_recv_els_req(9)fc_lport_recv(9)fc_lport_reset(9)fc_lport_reset_locked(9)fc_lport_enter_reset(9)fc_lport_enter_disabled(9)fc_lport_error(9)fc_lport_ns_resp(9)fc_lport_ms_resp(9)fc_lport_scr_resp(9)fc_lport_enter_scr(9)fc_lport_enter_ns(9)fc_lport_enter_dns(9)fc_lport_enter_ms(9)fc_lport_enter_fdmi(9)fc_lport_timeout(9)fc_lport_logo_resp(9)fc_lport_enter_logo(9)fc_lport_flogi_resp(9)fc_lport_enter_flogi(9)fc_lport_config(9)fc_lport_init(9)fc_lport_bsg_resp(9)fc_lport_els_request(9)fc_lport_ct_request(9)fc_lport_bsg_request(9)
fifty-two entries. yes I counted. yes I have no plans for my evening π
and that's the whole page, bestie β you ate that π β¨
πΈ source is./drivers/scsi/libfc, dated October 2026, and the whole thing is filed understruct fc_bsg_info(9). mwah, go readfc_lport.cπππ¦
π¦ 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