STRUCT K3_RING(9)
π NAME π
okay so welcome to the Kernel API Manual, bestie β today's main character is struct k3_ring(9). struct k3_ring β RA Ring descriptor. That's the name drop, and yes it's giving kernel-internals royalty. π
β¨ SYNOPSIS β¨
The struct, exactly as it is, no edits, no cap:
struct k3_ring {
struct k3_ring_rt_regs __iomem *rt;
struct k3_ring_fifo_regs __iomem *fifos;
struct k3_ringacc_proxy_target_regs __iomem *proxy;
dma_addr_t ring_mem_dma;
void *ring_mem_virt;
const struct k3_ring_ops *ops;
u32 size;
enum k3_ring_size elm_size;
enum k3_ring_mode mode;
u32 flags;
#define K3_RING_FLAG_BUSY BIT(1);
#define K3_RING_FLAG_SHARED BIT(2);
#define K3_RING_FLAG_REVERSE BIT(3);
struct k3_ring_state state;
u32 ring_id;
struct k3_ringacc *parent;
u32 use_count;
int proxy_id;
struct device *dma_dev;
u32 asel;
#define K3_ADDRESS_ASEL_SHIFT 48;
};
Also peep the flag define besties living inside the struct code: K3_RING_FLAG_BUSY, K3_RING_FLAG_SHARED, K3_RING_FLAG_REVERSE, and K3_ADDRESS_ASEL_SHIFT. They're all right there above, periodt. π©
π Members π
Every field, no skips, no cap:
rtβ Ring control/status registers. The bossy little control center. ποΈfifosβ Ring queues registers. Queue energy fr fr. π¦proxyβ Ring Proxy Datapath registers. Proxy era. π°οΈring_mem_dmaβ Ring buffer dma address. Literal and important. π§ring_mem_virtβ Ring buffer virt address. Virtual bestie. π«§opsβ Ring operations. The operation squad. βοΈsizeβ Ring size in elements. Count elements, not vibes. π’elm_sizeβ Size of the ring element. Element-size check. πmodeβ Ring mode. Mode unlocked. ποΈflagsβ flags. Yes, lowercaseflagsβ I'm not adding lore. π©stateβ Ring state. State of mind, but for the ring. π«ring_idβ Ring Id. ID check! πͺͺparentβ Pointer onstruct k3_ringacc. Family-tree moment. π³use_countβ Use count for shared rings. Shared-ring accountability. π―proxy_idβ RA Ring Proxy Id (only ifK3_RINGACC_RING_USE_PROXY). Conditional icon. π―dma_devβ device to be used for DMA API (allocation, mapping). DMA device duties. π οΈaselβ Address Space Select value for physical addresses. Address-space selector, periodt. πΊοΈ
π SEE ALSO π
Kernel file ./drivers/soc/ti/k3-ringacc.c is your reference bestie, and these are the related pages: struct k3_ring_rt_regs(9), struct k3_ring_fifo_regs(9), struct k3_ringacc_proxy_gcfg_regs(9), struct k3_ringacc_proxy_target_regs(9), struct k3_ring_state(9), struct k3_ringacc(9), struct k3_ringacc_soc_data(9). Go read them if you want the full lore. π
That's it, bestie π β this page comes from ./drivers/soc/ti, it's dated October 2026, and it's all about struct k3_ring(9). Periodt. πβ¨
π¦ 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