STRUCT PDS_FWCTL_QUERY_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct pds_fwctl_query_cmd(9) ✨

okay so bestie, welcome to the Kernel API Manual entry for struct pds_fwctl_query_cmd β€” literally the little struct that carries your query command over to the firmware control interface. she's small, she's packed, she's iconic. let's get into it 🫢


🌸 NAME 🌸

struct pds_fwctl_query_cmd β€” the firmware control query command structure, no cap πŸ’–


✨ SYNOPSIS ✨

here's the whole glow-up, verbatim, do not touch:

struct pds_fwctl_query_cmd {
    u8 opcode;
    u8 entity;
    u8 version;
    u8 rsvd;
    __le32 query_data_buf_len;
    __le64 query_data_buf_pa;
    union {
      __le32 ep;
      __le32 op;
    };
 };

πŸ’… Members πŸ’…

  • opcode β€” the operation code for the command. it's giving "what are we doing today" energy πŸ”₯
  • entity β€” the entity type you're querying, and it's an enum pds_fwctl_query_entity bestie, so pick a real one πŸ‘‘
  • version β€” the version of the query data structure that the driver supports. gotta know which era we're in ⭐
  • rsvd β€” reserved. she's there, she's quiet, she's not for you πŸ™ˆ
  • query_data_buf_len β€” length of the query data buffer. how much room the vibes need πŸ“
  • query_data_buf_pa β€” physical address of the query data buffer. physical, not virtual, don't get it twisted 😭
  • {unnamed_union} β€” anonymous union, main character energy, doesn't even need a name πŸ’€
    • ep β€” endpoint identifier to query β€” this is the one you use when entity is PDS_FWCTL_RPC_ENDPOINT πŸŽ€
    • op β€” operation identifier to query β€” this is the one you use when entity is PDS_FWCTL_RPC_OPERATION πŸ¦‹

🌈 Description 🌈

okay so this struct is what you use to send a query command to the firmware control interface. that's the whole job. and here's the slay detail: the structure is packed so there's literally no padding between the fields β€” not one single extra byte, we keep it tight, we keep it cute βœ¨πŸ’œ


πŸ¦‹ SEE ALSO πŸ¦‹

the whole extended friend group, all of them, every single one, no one left out 🫢:

  • Kernel file ./include/linux/pds/pds_adminq.h struct
  • pds_core_notifyq_event(9)
  • struct pds_core_link_change_event(9)
  • struct pds_core_reset_event(9)
  • struct pds_core_client_event(9)
  • struct pds_core_notifyq_cmd(9)
  • struct pds_core_client_reg_cmd(9)
  • struct pds_core_client_reg_comp(9)
  • struct pds_core_client_unreg_cmd(9)
  • struct pds_core_client_request_cmd(9)
  • enum pds_core_logical_qtype(9)
  • union pds_core_lif_config(9)
  • struct pds_core_lif_status(9)
  • struct pds_core_lif_info(9)
  • struct pds_core_lif_identity(9)
  • struct pds_core_lif_identify_cmd(9)
  • struct pds_core_lif_identify_comp(9)
  • struct pds_core_lif_init_cmd(9)
  • struct pds_core_lif_init_comp(9)
  • struct pds_core_lif_reset_cmd(9)
  • enum pds_core_lif_attr(9)
  • struct pds_core_lif_setattr_cmd(9)
  • struct pds_core_lif_setattr_comp(9)
  • struct pds_core_lif_getattr_cmd(9)
  • struct pds_core_lif_getattr_comp(9)
  • struct pds_core_q_identity(9)
  • struct pds_core_q_identify_cmd(9)
  • struct pds_core_q_identify_comp(9)
  • struct pds_core_q_init_cmd(9)
  • struct pds_core_q_init_comp(9)
  • struct pds_vdpa_cmd(9)
  • struct pds_vdpa_init_cmd(9)
  • struct pds_vdpa_ident(9)
  • struct pds_vdpa_ident_cmd(9)
  • struct pds_vdpa_status_cmd(9)
  • enum pds_vdpa_attr(9)
  • struct pds_vdpa_setattr_cmd(9)
  • struct pds_vdpa_vq_init_cmd(9)
  • struct pds_vdpa_vq_init_comp(9)
  • struct pds_vdpa_vq_reset_cmd(9)
  • struct pds_vdpa_vq_reset_comp(9)
  • struct pds_vdpa_set_features_cmd(9)
  • struct pds_lm_cmd(9)
  • struct pds_lm_state_size_cmd(9)
  • struct pds_lm_state_size_comp(9)
  • struct pds_lm_suspend_cmd(9)
  • struct pds_lm_suspend_status_cmd(9)
  • struct pds_lm_resume_cmd(9)
  • struct pds_lm_sg_elem(9)
  • struct pds_lm_save_cmd(9)
  • struct pds_lm_restore_cmd(9)
  • union pds_lm_dev_state(9)
  • struct pds_lm_dirty_region_info(9)
  • struct pds_lm_dirty_status_cmd(9)
  • enum pds_lm_dirty_bmp_type(9)
  • struct pds_lm_dirty_status_comp(9)
  • struct pds_lm_dirty_enable_cmd(9)
  • struct pds_lm_dirty_disable_cmd(9)
  • struct pds_lm_dirty_seq_ack_cmd(9)
  • struct pds_lm_host_vf_status_cmd(9)
  • struct pds_fwctl_cmd(9)
  • struct pds_fwctl_comp(9)
  • struct pds_fwctl_ident_cmd(9)
  • struct pds_fwctl_ident(9)
  • struct pds_fwctl_query_comp(9)
  • struct pds_fwctl_query_data_endpoint(9)
  • struct pds_fwctl_query_data_operation(9)
  • struct pds_fwctl_query_data(9)
  • struct pds_fwctl_rpc_cmd(9)
  • struct pds_sg_elem(9)
  • struct pds_fwctl_rpc_comp(9)

and that's the whole page bestie!! okay so the cute little sign-off details: this one lives over in ./include/linux/pds and it's dated October 2026 πŸ’– go forth and query, you're gonna slay πŸ§šβœ¨πŸŽ€

πŸ“¦ where this page comes from