PVR_PACKED_BVNC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… PVR_PACKED_BVNC β€” like, the Kernel API Manual one, bestie ✨

okay so real talk, this is PVR_PACKED_BVNC(9) from the Kernel API Manual and it's literally just a lil macro that smooshes four numbers into one big 64-bit unsigned integer. it's giving "packing cubes but for GPU identifiers" πŸŽ€


🌸 NAME 🌸

PVR_PACKED_BVNC β€” packs B, V, N and C values into a 64-bit unsigned integer. that's it, that's the whole gig 🫢


✨ SYNOPSIS ✨

PVR_PACKED_BVNC (b , v , n , c );

yes bestie the spacing is a little chaotic, we're keeping it exactly as-is, no cap πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • b β€” Branch ID. the B in the group chat.
  • v β€” Version ID. the V, obviously.
  • n β€” Number of scalable units. the N, and lowkey the most mysterious one.
  • c β€” Config ID. the C, rounding out the squad.

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so the packed layout is this iconic thing right here:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     63..48   47..32   31..16   15..0 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
+========+========+========+=======+ | B      | V      | N      | C
|

like, every field gets its own lil 16-bit slice of the 64-bit pie and honestly? slay. πŸ”₯

now here's the important part β€” if you have a struct pvr_gpu_id sitting around, use pvr_gpu_id_to_packed_bvnc instead of this macro. why? because it makes sure you get proper type checking. it's the responsible-main-character move, fr fr. πŸ™ˆ


πŸ‘‘ RETURN πŸ‘‘

Packed BVNC. that's the whole return value, bestie β€” one packed lil integer, no more no less πŸ’–


🌈 SEE ALSO 🌈


and that's the whole page!! 🧚 mwah πŸ’‹ this lil rewrite lives in ./drivers/gpu/drm/imagination, dated October 2026, and it's still PVR_PACKED_BVNC(9) at the end of the day β€” periodt. ⭐

πŸ“¦ where this page comes from