STRUCT MBOX_INFO(9)
π struct mbox_info(9) β the kernel API page for struct mbox_info
okay so bestie, buckle up, because this is the little struct that makes the mailbox channels between your cores actually talk to each other. it's called struct mbox_info, and it is, fr fr, just "mailbox channel data" β that's the whole vibe. π
β¨ NAME β¨
struct mbox_info β mailbox channel data π
π¦ SYNOPSIS π¦
struct mbox_info {
unsigned char rx_mc_buf[MBOX_CLIENT_BUF_MAX];
unsigned char tx_mc_buf[MBOX_CLIENT_BUF_MAX];
struct zynqmp_r5_core *r5_core;
struct work_struct mbox_work;
struct mbox_client mbox_cl;
struct mbox_chan *tx_chan;
struct mbox_chan *rx_chan;
};
no cap, that's the whole shape of it. copy it exactly, don't get creative with it π
πΈ Members πΈ
rx_mc_bufβ the buffer where we copy data coming in from the mailbox rx channel. it'sunsigned char rx_mc_buf[MBOX_CLIENT_BUF_MAX], so it's got room forMBOX_CLIENT_BUF_MAXbytes of incoming goodness πtx_mc_bufβ the buffer where we copy data going out to the mailbox tx channel. alsounsigned char tx_mc_buf[MBOX_CLIENT_BUF_MAX]. matching energy, iconic π«Άr5_coreβ a pointer (struct zynqmp_r5_core *) to ther5_corethat this mailbox belongs to. it's like, "whose mailbox is this anyway?" β this member answers that β¨mbox_workβ astruct work_structthat lets us schedule work after data shows up from the mailbox. so when the data lands, this is what queues up the follow-through πmbox_clβ the mailbox client, astruct mbox_client. yes bestie, that's the client side of the relationship π€tx_chanβ astruct mbox_chan *β the mailbox tx channel. outgoing mail goes here π€rx_chanβ astruct mbox_chan *β the mailbox rx channel. incoming mail lands here π₯
ngl,rx_chanandtx_chanbeing separate is the whole point β one for the mail you send, one for the mail you get. main character and supporting character, both essential π
π₯ SEE ALSO π₯
okay so if you wanna go deeper (and you should, we're obsessed with context), the kernel file is ./drivers/remoteproc/xlnx_r5_remoteproc.c, and here's the full bestie roll call β all of these are (9) man pages:
struct mem_bank_data(9)struct zynqmp_sram_bank(9)struct rsc_tbl_data(9)struct xlnx_rproc_crash_report(9)struct zynqmp_r5_core(9)struct zynqmp_r5_cluster(9)event_notified_idr_cb(9)handle_event_notified(9)zynqmp_r5_mb_rx_cb(9)zynqmp_r5_setup_mbox(9)zynqmp_r5_rproc_prepare(9)zynqmp_r5_rproc_unprepare(9)zynqmp_r5_alloc_rproc_core(9)zynqmp_r5_get_tcm_node(9)
and that's the whole page, bestie β 10/10, no notes, ate and left no crumbs π
this came out of ./drivers/remoteproc and it's dated October 2026 β¨ go read the other pages, ily, bye π§
π¦ 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