STRUCT DRM_IVPU_BO_CREATE_FROM_USERPTR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so this is the Kernel API Manual page for struct drm_ivpu_bo_create_from_userptr β€” and what it does is literally create a dma-buf from a user pointer. that's the whole vibe. 🫢


✨ SYNOPSIS ✨

bestie, here's the struct in all its glory β€” copy it exactly, no improvising:

struct drm_ivpu_bo_create_from_userptr {
    __u64 user_ptr;
    __u64 size;
    __u32 flags;
    __u32 handle;
    __u64 vpu_addr;
};

πŸŽ€ Members πŸŽ€

  • user_ptr β€” the user pointer to the memory region. ⚠️ it must be page aligned, no exceptions, she's strict about this.
  • size β€” how big the memory region is, in bytes. also must be page aligned. yes, both of them. iykyk. πŸ“
  • flags β€” the supported flags, and here's the lineup:
    • DRM_IVPU_BO_HIGH_MEM β€” allocate the VPU address from the >4GB range. big-address energy. πŸ”₯
    • DRM_IVPU_BO_DMA_MEM β€” allocate from the DMA memory range that's accessible by hardware DMA. πŸš€
    • DRM_IVPU_BO_READ_ONLY β€” allocate it as a read-only buffer object. no touchy. πŸ™ˆ
  • handle β€” the returned GEM object handle. it comes back to you, bestie. 🎁
  • vpu_addr β€” the returned VPU virtual address. also a gift. ⭐

🌸 Description 🌸

so the whole point of this icon is that it creates a GEM buffer object from a user pointer to a memory region. that's it, that's the tea. πŸ“


πŸ¦‹ SEE ALSO πŸ¦‹

go read these next, they're all in the kernel file ./include/uapi/drm/ivpu_accel.h:


aaaand that's the page!! 🧚 source is ./include/uapi/drm, dated October 2026, and it's the manual entry for struct drm_i...from_userptr(9). periodt. πŸ‘‘πŸ’–

πŸ“¦ where this page comes from