STRUCT HBM_DMA_RING_CTRL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct hbm_dma_ring_ctrl β€” it's giving "dma ring control block"

okay so bestie, welcome to the Kernel API Manual section 9, and today's main character is struct hbm_dma_ring_ctrl, the dma ring control block πŸŽ€ literally the little bookkeeping baddie that keeps track of where everybody is in the host and device circular buffers. no cap, it's just indexes and padding, but she ate.


✨ SYNOPSIS ✨

struct hbm_dma_ring_ctrl {
    u32 hbuf_wr_idx;
    u32 reserved1;
    u32 hbuf_rd_idx;
    u32 reserved2;
    u32 dbuf_wr_idx;
    u32 reserved3;
    u32 dbuf_rd_idx;
    u32 reserved4;
 };

like yes, it's a lot of u32s and a lot of reserveds β€” she's structured, she's aligned, she's iconic 🫢


πŸ¦‹ Members πŸ¦‹

  • hbuf_wr_idx β€” the host circular buffer write index, measured in slots ✍️
  • reserved1 β€” reserved for alignment (padding princess, she's just here for the vibes πŸ’…)
  • hbuf_rd_idx β€” the host circular buffer read index, also in slots πŸ‘€
  • reserved2 β€” reserved for alignment πŸŽ€
  • dbuf_wr_idx β€” the device circular buffer write index, in slots πŸ”₯
  • reserved3 β€” reserved for alignment ⭐
  • dbuf_rd_idx β€” the device circular buffer read index, in slots 🌸
  • reserved4 β€” reserved for alignment (last one, we love consistency πŸ’œ)
so the pattern is literally read/write index, then a lil alignment breather, then repeat for the device side. the reserved fields are only for alignment β€” don't be out here assigning meaning to them, bestie 😭

πŸ‘‘ SEE ALSO πŸ‘‘

this is the part where the whole friend group shows up. from the kernel file ./drivers/misc/mei/hw.h, we've got:

  • enum mei_hbm_status(9)
  • enum mei_ext_hdr_type(9)
  • struct mei_ext_hdr(9)
  • struct mei_ext_meta_hdr(9)
  • struct mei_ext_hdr_vtag(9)
  • mei_ext_begin(9)
  • mei_ext_last(9)
  • struct mei_ext_hdr_gsc_h2f(9)
  • struct mei_ext_hdr_gsc_f2h(9)
  • mei_ext_next(9)
  • mei_ext_hdr_len(9)
  • struct mei_msg_hdr(9)
  • struct mei_hbm_cl_cmd(9)
  • enum hbm_host_enum_flags(9)
  • struct hbm_host_enum_request(9)
  • struct mei_client_properties(9)
  • struct hbm_add_client_request(9)
  • struct hbm_add_client_response(9)
  • struct hbm_power_gate(9)
  • struct hbm_client_connect_request(9)
  • struct hbm_client_connect_response(9)
  • struct hbm_notification_request(9)
  • struct hbm_notification_response(9)
  • struct hbm_notification(9)
  • struct hbm_dma_mem_dscr(9)
  • struct hbm_dma_setup_request(9)
  • struct hbm_dma_setup_response(9)
  • struct hbm_capability_request(9)
  • struct hbm_capability_response(9)
  • struct hbm_client_dma_map_request(9)
  • struct hbm_client_dma_unmap_request(9)
  • struct hbm_client_dma_response(9)

like, the whole squad fr fr 🌈 go read them, iykyk.


that's the whole page, periodt πŸ’– this came out of ./drivers/misc/mei, dated October 2026, and it's filed under struct hbm_dma_ring_ctrl(9) β€” mwah, slay, bye bestie πŸ§šπŸ“

πŸ“¦ where this page comes from