STRUCT MPT3_PASSTHRU_COMMAND(9)
π NAME (yes bestie, that's the name)
struct mpt3_passthru_command β the generic mpt firmware passthru command, aka the little struct that lets your app slide a raw MPI request straight through the driver π«Ά
It's the payload wrapper for passthru stuff, and every single one of its fields is a member β they're all spelled out under Members below, no cap, all of them, go look π
β¨ SYNOPSIS β¨
struct mpt3_passthru_command {
u8 dev_index;
uint32_t timeout;
void *reply_frame_buf_ptr;
void *data_in_buf_ptr;
void *data_out_buf_ptr;
uint32_t max_reply_bytes;
uint32_t data_in_size;
uint32_t data_out_size;
Mpi26MctpPassthroughRequest_t *mpi_request;
};
That's the whole shape of it. Nine fields, zero drama, like genuinely iconic formatting ngl π
π Members π
okay so this is the part where we meet the cast. each member has main character energy in its own way:
dev_index(u8) β the device index. literally just which device, bestie π’timeout(uint32_t) β command timeout in seconds. and if it's zero? the driver's default value steps in, no questions asked β°reply_frame_buf_ptr(void *) β where the MPI reply lands. the reply frame's home address πdata_in_buf_ptr(void *) β the destination for a read. data comes in here π₯data_out_buf_ptr(void *) β the data source for a write. data goes out from here π€max_reply_bytes(uint32_t) β maximum number of reply bytes to be sent to app. the cap, the limit, the "that's enough" βdata_in_size(uint32_t) β number bytes for data transfer in (read). yes it really says "number bytes", we're keeping it πdata_out_size(uint32_t) β number bytes for data transfer out (write). same vibe, other direction πmpi_request(Mpi26MctpPassthroughRequest_t *) β the request frame itself. the actual star of the show β
ngl the fields are the whole personality of this struct β no hidden extras, no secret defaults beyond that timeout zero case. what you see is what you get π
π SEE ALSO π
kernel file ./drivers/scsi/mpt3sas/mpt3sas_ctl.h β that's where this whole situation lives, go read it iykyk π
and the whole friend group of sibling structs, in the order the manpage lists them, not me skipping a single one:
struct mpt3_ioctl_header(9)struct mpt3_ioctl_diag_reset(9)struct mpt3_ioctl_pci_info(9)struct mpt3_ioctl_iocinfo(9)struct mpt3_ioctl_eventquery(9)struct mpt3_ioctl_eventenable(9)struct MPT3_IOCTL_EVENTS(9)struct mpt3_ioctl_eventreport(9)struct mpt3_ioctl_command(9)struct mpt3_ioctl_btdh_mapping(9)struct mpt3_diag_register(9)struct mpt3_diag_unregister(9)struct mpt3_diag_query(9)struct mpt3_diag_release(9)struct mpt3_diag_read_buffer(9)struct mpt3_addnl_diag_query(9)struct mpt3_enable_diag_sbr_reload(9)
and that's the page bestie π you read the whole thing, so proud of you fr fr. this little gem lives in the Kernel API Manual, it's from ./drivers/scsi/mpt3sas, and it's dated October 2026 β shoutout to that source dir for the lore, and to struct mpt3_...thru_command(9) for being the header title we all know and love πβ¨
π¦ 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