STRUCT PS3_DMA_REGION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct ps3_dma_region β€” okay so this is the per-device DMA state variables structure, like literally the little home where one device's DMA situation gets tracked 🫢 that's it that's the name bestie


✨ SYNOPSIS ✨

struct ps3_dma_region {
    struct ps3_system_bus_device *dev;
    const struct ps3_dma_region_ops *region_ops;
    unsigned char ioid;
    enum ps3_dma_page_size page_size;
    enum ps3_dma_region_type region_type;
    unsigned long len;
    unsigned long offset;
    u64 dma_mask;
    unsigned long bus_addr;
    struct {
      spinlock_t lock;
      struct list_head head;
    } chunk_list;
 };

No cap, that's the whole vibe right there πŸ¦‹


πŸŽ€ Members πŸŽ€

  • dev β€” the device structure, the actual main character this region belongs to πŸ‘‘
  • region_ops β€” struct ps3_dma_region_ops β€” the dma region operations, aka the behavior pack πŸ’…
  • ioid β€” the IOID of the device who owns this region fr
  • page_size β€” the ioc pagesize, that's the enum page_size vibe ✨
  • region_type β€” the HV region type (the hypervisor's classification, iykyk)
  • len β€” the length in bytes of the region, like how much room it's taking up πŸ“
  • offset β€” the offset from the start of memory of the region, its lil starting point 🌸
  • dma_mask β€” the device dma_mask, straightforward slay
  • bus_addr β€” the 'translated' bus address of the region πŸ”₯ (yes, 'translated' in quotes, that's how it's written, don't come for me)
  • chunk_list β€” opaque variable used by the ioc page manager πŸ«₯ it's giving mystery, it's giving "don't touch, the ioc page manager handles it"

πŸ’… SEE ALSO πŸ’…

Kernel file ./arch/powerpc/include/asm/ps3.h β€” and the whole friend group:


πŸ’œ So that's the page!! Sourced from ./arch/powerpc/include/asm, dated October 2026, and titled struct ps3_dma_region(9) β€” go read the ps3 family, they all ate, no crumbs left 🧚⭐
πŸ“¦ where this page comes from