STRUCT TI_MSGMGR_DESC(9)
π struct ti_msgmgr_desc(9) π
okay so this is a page from the Kernel API Manual, section 9 β yes bestie, we're in the kernel docs now, grab a snack π
β¨ NAME β¨
struct ti_msgmgr_desc β literally just the description of the message manager integration. that's the whole vibe. π¦
πΈ SYNOPSIS πΈ
struct ti_msgmgr_desc {
u8 queue_count;
u8 max_message_size;
u8 max_messages;
u8 data_first_reg;
u8 data_last_reg;
u32 status_cnt_mask;
u32 status_err_mask;
bool tx_polled;
int tx_poll_timeout_ms;
const struct ti_msgmgr_valid_queue_desc *valid_queues;
const char *data_region_name;
const char *status_region_name;
const char *ctrl_region_name;
int num_valid_queues;
bool is_sproxy;
};
like, that's the struct. that's her. main character energy fr π
π Members π
the fields, one by one, no skips π
queue_countβ Number of Queues. that's it, that's the count π§max_message_sizeβ Message size in bytes. bytes!! not vibes, bytes.max_messagesβ Number of messages. how many messages we're dealing with πdata_first_regβ First data register for proxy data region. the first one, bestie.data_last_regβ Last data register for proxy data region. and obviously this is the last one π«Άstatus_cnt_maskβ Mask for getting the status value. mask on, status out β¨status_err_maskβ Mask for getting the error value, if applicable. note the "if applicable" β sometimes she's just not relevant, and that's fine πtx_polledβ Do I need to use polled mechanism for tx. the struct is literally asking itself. relatable.tx_poll_timeout_msβ Timeout in ms if polled. ms = milliseconds, keep up πvalid_queuesβ List of Valid queues that the processor can access. valid ones only, we don't do invalid queues here πdata_region_nameβ Name of the proxy data region.status_region_nameβ Name of the proxy status region.ctrl_region_nameβ Name of the proxy control region. that's all three regions accounted for, slay πnum_valid_queuesβ Number of valid queues. yes it's a different field fromqueue_count, don't come for me, that's just how it is πis_sproxyβ Is this an Secure Proxy instance? (the double-article is canon, we're keeping it, love that for the original author π)
π¦ Description π¦
so this structure is used in of match data to describe how integration for a specific compatible SoC is done. that's the entire job. it's giving "I'm the blueprint for how this SoC wires up its message manager" and honestly? iconic β¨
β SEE ALSO β
kernel file ./drivers/mailbox/ti-msgmgr.c, plus the whole friend group:
struct ti_msgmgr_valid_queue_desc(9)struct ti_queue_inst(9)struct ti_msgmgr_inst(9)ti_msgmgr_queue_get_num_messages(9)ti_msgmgr_queue_is_error(9)ti_msgmgr_queue_rx_interrupt(9)ti_msgmgr_queue_peek_data(9)ti_msgmgr_last_tx_done(9)ti_msgmgr_send_data(9)ti_msgmgr_queue_rx_irq_req(9)ti_msgmgr_queue_startup(9)ti_msgmgr_queue_shutdown(9)ti_msgmgr_of_xlate(9)ti_msgmgr_queue_setup(9)
go read them too, iykyk π
okay that's the page π« it lives in ./drivers/mailbox and it's dated October 2026 β so yeah, she's from the future, we stan a forward-thinking manpage πΈπ«Ά go forth and describe your message manager integration, bestie π
π¦ 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