STRUCT RPMSG_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct rpmsg_info(9) β€” the rpmsg audio info struct, bestie πŸ’–

okay so this page is from the Kernel API Manual (section 9, the kernel-api girlies πŸŽ€), and it's literally all about struct rpmsg_info β€” the rpmsg audio information struct. no cap, that's the whole name. let's get into it ✨


🌸 SYNOPSIS 🌸

like, here's the whole struct, character for character, i would never do you dirty:

struct rpmsg_info {
    struct rpmsg_device      *rpdev;
    struct device            *dev;
    struct completion        cmd_complete;
    struct pm_qos_request    pm_qos_req;
    struct rpmsg_r_msg       r_msg;
    struct rpmsg_msg         msg[MSG_MAX_NUM];
    struct rpmsg_msg         notify[2];
    bool notify_updated[2];
    struct workqueue_struct  *rpmsg_wq;
    struct work_of_rpmsg     work_list[WORK_MAX_NUM];
    int work_write_index;
    int work_read_index;
    int msg_drop_count[2];
    int num_period[2];
    void *callback_param[2];
    dma_callback callback[2];
    int (*send_message)(struct rpmsg_msg *msg, struct rpmsg_info *info);
    spinlock_t lock[2];
    spinlock_t wq_lock;
    struct mutex             msg_lock;
    struct stream_timer      stream_timer[2];
 };

like yes, the indentation on that last brace is exactly what the source says, i'm not touching it πŸ’…


πŸ‘‘ Members πŸ‘‘

okay bestie, field-by-field breakdown, let's go 🫢

  • rpdev β€” pointer of rpmsg_device. iconic pointer energy.
  • dev β€” pointer for the imx_pcm_rpmsg device.
  • cmd_complete β€” command is finished. that's the completion, she's done βœ…
  • pm_qos_req β€” request of pm qos.
  • r_msg β€” received rpmsg.
  • msg β€” array of rpmsg.
  • notify β€” notification msg (type C) for TX & RX. yes, type C, keep that.
  • notify_updated β€” notification flag for TX & RX.
  • rpmsg_wq β€” rpmsg workqueue.
  • work_list β€” array of work list for workqueue.
  • work_write_index β€” write index of work list.
  • work_read_index β€” read index of work list.
  • msg_drop_count β€” counter of dropped msg for TX & RX.
  • num_period β€” period number for TX & RX.
  • callback_param β€” parameter for period elapse callback for TX & RX.
  • callback β€” period elapse callback for TX & RX.
  • send_message β€” function pointer for send message.
  • lock β€” spin lock for TX & RX.
  • wq_lock β€” lock for work queue.
  • msg_lock β€” lock for send message.
  • stream_timer β€” timer for tigger workqueue. (yes, "tigger" β€” that's the original's spelling, not me being silly, i promise πŸ˜­πŸ’€)
also notice basically everything is [2] β€” TX & RX, two of everything, twins energy fr fr 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./sound/soc/fsl/imx-pcm-rpmsg.h
  • struct rpmsg_head(9)
  • struct param_s(9)

okay that's the whole vibe check βœ… this one lives under ./sound/soc/fsl, dated October 2026, and it's the struct rpmsg_info(9) page from the Kernel API Manual β€” go read the header file bestie, it ate πŸ’…βœ¨πŸ’–

πŸ“¦ where this page comes from