STRUCT PMC_DEV_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct pmc_dev_info(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” this is the page for struct pmc_dev_info, which is literally the structure that keeps all the PMC device info together. like it's the lil filing cabinet for everything the driver needs to know about a PMC device πŸ—‚οΈβœ¨


🌸 SYNOPSIS 🌸

struct pmc_dev_info {
    u32 *dmu_guids;
    u32 pc_guid;
    u32 pkgc_ltr_blocker_offset;
    u32 pkgc_blocker_offset;
    u8 num_pmcs;
    const u8 *pmc_list;
    struct pmc_info *regmap_list;
    const struct pmc_reg_map *map;
    const struct file_operations *sub_req_show;
    const char **pkgc_ltr_blocker_counters;
    const char **pkgc_blocker_counters;
    void (*suspend)(struct pmc_dev *pmcdev);
    int (*resume)(struct pmc_dev *pmcdev);
    int (*init)(struct pmc_dev *pmcdev, struct pmc_dev_info
*pmc_dev_info);
    int (*sub_req)(struct pmc_dev *pmcdev, struct pmc *pmc, struct
telem_endpoint *ep);
    bool ssram_hidden;
    u32 die_c6_offset;
 };

that's the whole layout, no cap β€” every field stays exactly where it is 🫢


πŸŽ€ Members πŸŽ€

  • dmu_guids β€” the list of Die Management Unit GUIDs. like a guest list for the DMU party πŸ’…
  • pc_guid β€” the GUID for the telemetry region we read PKGC blocker info from πŸ“
  • pkgc_ltr_blocker_offset β€” offset to the PKGC LTR blockers, inside that telemetry region
  • pkgc_blocker_offset β€” offset to the PKGC blocker, also inside the telemetry region
  • num_pmcs β€” how many entries live in pmc_list. the headcount, basically πŸ”’
  • pmc_list β€” index list of the PMCs that are available
  • regmap_list β€” pointer to a list of pmc_info structures that could be available for the platform. when this field is set, it implies SSRAM support ✨ (iykyk)
  • map β€” pointer to a pmc_reg_map struct holding the platform specific attributes of the primary PMC πŸ‘‘
  • sub_req_show β€” file operations used to show substate requirements
  • pkgc_ltr_blocker_counters β€” array of PKGC LTR blocker counters
  • pkgc_blocker_counters β€” array of PKGC blocker counters
  • suspend β€” function that does the platform specific suspend 😴
  • resume β€” function that does the platform specific resume β˜€οΈ
  • init β€” function that does the platform specific init action πŸš€
  • sub_req β€” function to achieve the low power mode substate requirements ⚑
  • ssram_hidden β€” some SSRAM devices are hidden on this platform πŸ™ˆ
  • die_c6_offset β€” telemetry offset used to read Die C6 residency

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/platform/x86/intel/pmc/core.h
  • struct pmc_reg_map(9)
  • struct pmc_info(9)
  • struct pmc(9)
  • struct pmc_dev(9)

go read those next bestie, they're all part of the same little friend group fr fr 🫢


okay that's the whole page, mwah πŸ’‹ β€” this one lives in ./drivers/platform/x86/intel/pmc and it's dated October 2026, and the header up top calls it struct pmc_dev_info(9). slay, you're done, go touch some grass πŸŒ±πŸ’œ

πŸ“¦ where this page comes from