PVR_PACKED_BVNC(9)
π 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 π
- Kernel file
./drivers/gpu/drm/imagination/pvr_device.h struct pvr_gpu_id(9)struct pvr_fw_version(9)struct pvr_device_data(9)struct pvr_device(9)struct pvr_file(9)PVR_HAS_FEATURE(9)PVR_FEATURE_VALUE(9)PVR_HAS_QUIRK(9)PVR_HAS_ENHANCEMENT(9)pvr_gpu_id_to_packed_bvnc(9)PVR_CR_FIELD_GET(9)pvr_cr_read32(9)pvr_cr_read64(9)pvr_cr_write32(9)pvr_cr_write64(9)pvr_cr_poll_reg32(9)pvr_cr_poll_reg64(9)pvr_round_up_to_cacheline_size(9)- IOCTL validation helpers(9)
pvr_ioctl_union_padding_check(9)PVR_STATIC_ASSERT_64BIT_ALIGNED(9)PVR_IOCTL_UNION_PADDING_CHECK(9)
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
- 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