STRUCT MHUV3(9)
π struct mhuv3(9) π
okay so bestie, welcome to the glow-up of struct mhuv3(9) β a Kernel API Manual moment, and honestly? it's giving main character energy for the MHUv3 mailbox controller data π this is the struct that holds all the deets about one of those blocks, and we're gonna walk through every single field together, no cap.
β¨ NAME β¨
struct mhuv3 β the MHUv3 mailbox controller data. that's it, that's the whole vibe π¦
πΈ SYNOPSIS πΈ
struct mhuv3 {
enum mhuv3_frame frame;
bool auto_op_full;
unsigned int major;
unsigned int minor;
unsigned int implem;
unsigned int rev;
unsigned int var;
unsigned int prod_id;
unsigned int num_chans;
int cmb_irq;
struct ctrl_page __iomem *ctrl;
union {
struct mhu3_pbx_frame_reg __iomem *pbx;
struct mhu3_mbx_frame_reg __iomem *mbx;
};
struct mhuv3_extension *ext[NUM_EXT];
struct mbox_controller mbox;
};
literally copy this exactly, okay? no fixing, no "improving", no nothing π€ the compiler does not care about your aesthetics.
π Members π
frameβ the frame type, bestie. it's eitherMBX_FRAMEorPBX_FRAME, pick your fighter βοΈauto_op_fullβ a flag that tells you whether this MHU supports AutoOp full mode. just a lil yes/no, iconic behaviour β¨majorβ the MHUv3 controller architectural major version. the big number πminorβ the MHUv3 controller architectural minor version. the smol number πimplemβ the MHUv3 controller IIDR implementer. who made it, basically π«Άrevβ the MHUv3 controller IIDR revision. the revision, ngl πvarβ the MHUv3 controller IIDR variant. the variant, fr fr π¦prod_idβ the MHUv3 controller IIDRproduct_id. the product id itself, we love a literal queen πnum_chansβ the total number of channels discovered across all extensions. all of them. every last one π₯cmb_irqβ the combined IRQ number, but only if one was found defined. if not, it's just vibes πctrlβ a reference to the MHUv3 control page for this block. your map to the control page, iykyk π{unnamed_union}β anonymous. yes it's anonymous, no we can't name it, it's mysterious like that πpbxβ base address of the PBX register mapping region πmbxβ base address of the MBX register mapping region π
extβ an array holding descriptors for any found implemented extension. it'sstruct mhuv3_extension *ext[NUM_EXT];, so you know it's an array of pointers, one slot per extension, slay πmboxβ the mailbox controller belonging to the MHU frame. the actual mailbox controller, the whole point, the main event π
lowkey reminder bestie: the union withpbxandmbxis anonymous β that's not me being weird, that's literally in the page.{unnamed_union}. periodt.
π₯ SEE ALSO π₯
- Kernel file
./drivers/mailbox/arm_mhuv3.c struct mhuv3_protocol_ops(9)struct mhuv3_mbox_chan_priv(9)struct mhuv3_extension(9)
go read those next, bestie, they're all connected and it's a whole storyline π§
okay so that's the whole page!! and for the cute sign-off: this lives in ./drivers/mailbox, and it's dated October 2026 β so yeah, we're reading a manual from the future, which is honestly very main character of us βπ byeee π«Ά
π¦ 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