HWLOC_OBJ_ATTR_U_HWLOC_PCIDEV_ATTR_S(3)

πŸ’… hwloc_obj_attr_u::hwloc_pcidev_attr_s πŸ’…

okay bestie, this is the Library Functions Manual page for hwloc_obj_...idev_attr_s(3), and it’s giving β€œPCI device attributes, but make it a whole data-field situation.” no cap. this page ate and left no crumbs. We’re keeping every field, every type, every notation, and every caveat β€” just with way more group-chat energy. 🫢


🌸 NAME 🌸

hwloc_obj_attr_u::hwloc_pcidev_attr_s β€” the PCI Device specific Object Attributes bundle. iykyk: this is where the PCI-ish details for that object hang out. πŸ’–

✨ SYNOPSIS ✨

#include <hwloc.h>

πŸŽ€ Data Fields πŸŽ€

these are the data fields, exact types and names, zero edits, fr fr:

  • unsigned short domain
  • unsigned char bus
  • unsigned char dev
  • unsigned char func
  • unsigned short class_id
  • unsigned short vendor_id
  • unsigned short device_id
  • unsigned short subvendor_id
  • unsigned short subdevice_id
  • unsigned char revision
  • float linkspeed

🌈 Detailed Description 🌈

PCI Device specific Object Attributes. that’s the whole vibe: PCI device attributes live here, and the field docs below break down every single one. πŸ¦‹

πŸ¦‹ Field Documentation πŸ¦‹

unsigned char hwloc_obj_attr_u::hwloc_pcidev_attr_s::bus

bus number β€” the yy in the PCI BDF notation xxxx:yy:zz.t. iconic little middle chunk. 🚌

unsigned short hwloc_obj_attr_u::hwloc_pcidev_attr_s::class_id

the class number: first two bytes, without the prog_if. periodt. πŸŽ€

unsigned char hwloc_obj_attr_u::hwloc_pcidev_attr_s::dev

device number β€” the zz in the PCI BDF notation xxxx:yy:zz.t. that’s the device slot in the BDF lineup. ✨

unsigned short hwloc_obj_attr_u::hwloc_pcidev_attr_s::device_id

Device ID β€” the yyyy in [xxxx:yyyy]. yes, exactly that part. πŸ’…

unsigned short hwloc_obj_attr_u::hwloc_pcidev_attr_s::domain

domain number β€” the xxxx in the PCI BDF notation xxxx:yy:zz.t. heads up: only 16bits PCI domains are supported by default. don’t come for me, that’s what the page says. 🫢

unsigned char hwloc_obj_attr_u::hwloc_pcidev_attr_s::func

function number β€” the t in the PCI BDF notation xxxx:yy:zz.t. not me pointing at the tiny t, but it matters. πŸ“

float hwloc_obj_attr_u::hwloc_pcidev_attr_s::linkspeed

link speed in GB/s. this datarate is the currently configured speed of the entire PCI link β€” literally the sum of the bandwidth of all PCI lanes in that link. it may change during execution since some devices are able to slow their PCI links down when idle. so yeah, it can be a moving target, not a permanent personality trait. 😭

unsigned char hwloc_obj_attr_u::hwloc_pcidev_attr_s::revision

Revision number. that’s it, that’s the field. πŸ’œ

unsigned short hwloc_obj_attr_u::hwloc_pcidev_attr_s::subdevice_id

Sub-Device ID. the sub-device one, no extra lore on this page. πŸ¦‹

unsigned short hwloc_obj_attr_u::hwloc_pcidev_attr_s::subvendor_id

Sub-Vendor ID. the sub-vendor one, again no extra lore here. 🌸

unsigned short hwloc_obj_attr_u::hwloc_pcidev_attr_s::vendor_id

Vendor ID β€” the xxxx in [xxxx:yyyy]. main character of the bracket situation, fr fr. πŸ‘‘

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for Hardware Locality (hwloc) from the source code. so this page was auto-generated, not handwritten by a mysterious manpage goblin. πŸ’€


footer vibe check, bestie: Hardware Locality (hwloc) Β· Version 2.15.0 Β· hwloc_obj_...idev_attr_s(3) β€” the date slot is empty on this page, so no invented date from me. mwah πŸ’‹

πŸ“¦ where this page comes from