pvr_ioctl_create_bo(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

pvr_ioctl_create_bo β€” the IOCTL that creates a GEM buffer object, and yes bestie, this is the Kernel API Manual page for pvr_ioctl_create_bo(9). Main-character syscall energy only πŸ’…βœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

int pvr_ioctl_create_bo (struct drm_device *drm_dev , void *raw_args ,
struct drm_file *file );

🌸 ARGUMENTS 🌸

  • drm_dev β€” [IN] the target DRM device. That’s the vibe check target 🎯
  • raw_args β€” [IN/OUT] the arguments passed to this IOCTL. This must be of type struct drm_pvr_ioctl_create_bo_args, no substitutions bestie 🫢
  • file β€” [IN] the DRM file-private data. Very private. Very file. Very DRM. πŸ’–

✨ DESCRIPTION ✨

This one gets called from userspace with DRM_IOCTL_PVR_CREATE_BO β€” that’s literally the whole description, and honestly? Iconic. πŸ‘‘


πŸ”₯ RETURN πŸ”₯

  • 0 on success πŸŽ‰
  • -EINVAL if the value of drm_pvr_ioctl_create_bo_args.size is zero or wider than typedef size_t
  • -EINVAL if any bits in drm_pvr_ioctl_create_bo_args.flags that are reserved or undefined are set
  • -EINVAL if any padding fields in drm_pvr_ioctl_create_bo_args are not zero
  • Any error encountered while creating the object (see pvr_gem_object_create), or
  • Any error encountered while transferring ownership of the object into a userspace-accessible handle (see pvr_gem_object_into_handle)
Fr fr, those -EINVAL cases are the β€œcheck ur args before u come at me” squad 😭 Keep reserved flags and padding clean, bestie.

🌈 SEE ALSO 🌈

Kernel file ./drivers/gpu/drm/imagination/pvr_drv.c, plus PowerVR (Series 6 and later) and IMG Graphics Driver(9) β€” and the whole cinematic universe of related pages:


Source/version: ./drivers/gpu/drm/imagination β€” dated October 2026. That’s the cute lil sign-off, bestie πŸ«ΆπŸ’– Go create some buffer objects responsibly ✨

πŸ“¦ where this page comes from