drivers/platform/x86/intel/pmt/features.c
Source file repositories/reference/linux-study-clean/drivers/platform/x86/intel/pmt/features.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/platform/x86/intel/pmt/features.c- Extension
.c- Size
- 5327 bytes
- Lines
- 206
- Domain
- Driver Families
- Bucket
- drivers/platform
- Inferred role
- Driver Families: exported/initcall integration point
- Status
- integration implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/export.hlinux/types.hlinux/intel_pmt_features.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2025, Intel Corporation.
* All Rights Reserved.
*
* Author: "David E. Box" <david.e.box@linux.intel.com>
*/
#include <linux/export.h>
#include <linux/types.h>
#include <linux/intel_pmt_features.h>
const char * const pmt_feature_names[] = {
[FEATURE_PER_CORE_PERF_TELEM] = "per_core_performance_telemetry",
[FEATURE_PER_CORE_ENV_TELEM] = "per_core_environment_telemetry",
[FEATURE_PER_RMID_PERF_TELEM] = "per_rmid_perf_telemetry",
[FEATURE_ACCEL_TELEM] = "accelerator_telemetry",
[FEATURE_UNCORE_TELEM] = "uncore_telemetry",
[FEATURE_CRASH_LOG] = "crash_log",
[FEATURE_PETE_LOG] = "pete_log",
[FEATURE_TPMI_CTRL] = "tpmi_control",
[FEATURE_TRACING] = "tracing",
[FEATURE_PER_RMID_ENERGY_TELEM] = "per_rmid_energy_telemetry",
};
EXPORT_SYMBOL_NS_GPL(pmt_feature_names, "INTEL_PMT_DISCOVERY");
enum feature_layout feature_layout[] = {
[FEATURE_PER_CORE_PERF_TELEM] = LAYOUT_WATCHER,
[FEATURE_PER_CORE_ENV_TELEM] = LAYOUT_WATCHER,
[FEATURE_PER_RMID_PERF_TELEM] = LAYOUT_RMID,
[FEATURE_ACCEL_TELEM] = LAYOUT_WATCHER,
[FEATURE_UNCORE_TELEM] = LAYOUT_WATCHER,
[FEATURE_CRASH_LOG] = LAYOUT_COMMAND,
[FEATURE_PETE_LOG] = LAYOUT_COMMAND,
[FEATURE_TPMI_CTRL] = LAYOUT_CAPS_ONLY,
[FEATURE_TRACING] = LAYOUT_CAPS_ONLY,
[FEATURE_PER_RMID_ENERGY_TELEM] = LAYOUT_RMID,
};
struct pmt_cap pmt_cap_common[] = {
{PMT_CAP_TELEM, "telemetry"},
{PMT_CAP_WATCHER, "watcher"},
{PMT_CAP_CRASHLOG, "crashlog"},
{PMT_CAP_STREAMING, "streaming"},
{PMT_CAP_THRESHOLD, "threshold"},
{PMT_CAP_WINDOW, "window"},
{PMT_CAP_CONFIG, "config"},
{PMT_CAP_TRACING, "tracing"},
{PMT_CAP_INBAND, "inband"},
{PMT_CAP_OOB, "oob"},
{PMT_CAP_SECURED_CHAN, "secure_chan"},
{PMT_CAP_PMT_SP, "pmt_sp"},
{PMT_CAP_PMT_SP_POLICY, "pmt_sp_policy"},
{}
};
struct pmt_cap pmt_cap_pcpt[] = {
{PMT_CAP_PCPT_CORE_PERF, "core_performance"},
{PMT_CAP_PCPT_CORE_C0_RES, "core_c0_residency"},
{PMT_CAP_PCPT_CORE_ACTIVITY, "core_activity"},
{PMT_CAP_PCPT_CACHE_PERF, "cache_performance"},
{PMT_CAP_PCPT_QUALITY_TELEM, "quality_telemetry"},
{}
};
struct pmt_cap *pmt_caps_pcpt[] = {
pmt_cap_common,
pmt_cap_pcpt,
NULL
};
struct pmt_cap pmt_cap_pcet[] = {
{PMT_CAP_PCET_WORKPOINT_HIST, "workpoint_histogram"},
{PMT_CAP_PCET_CORE_CURR_TEMP, "core_current_temp"},
{PMT_CAP_PCET_CORE_INST_RES, "core_inst_residency"},
{PMT_CAP_PCET_QUALITY_TELEM, "quality_telemetry"},
{PMT_CAP_PCET_CORE_CDYN_LVL, "core_cdyn_level"},
{PMT_CAP_PCET_CORE_STRESS_LVL, "core_stress_level"},
{PMT_CAP_PCET_CORE_DAS, "core_digital_aging_sensor"},
{PMT_CAP_PCET_FIVR_HEALTH, "fivr_health"},
{PMT_CAP_PCET_ENERGY, "energy"},
{PMT_CAP_PCET_PEM_STATUS, "pem_status"},
{PMT_CAP_PCET_CORE_C_STATE, "core_c_state"},
{}
};
struct pmt_cap *pmt_caps_pcet[] = {
pmt_cap_common,
pmt_cap_pcet,
Annotation
- Immediate include surface: `linux/export.h`, `linux/types.h`, `linux/intel_pmt_features.h`.
- Atlas domain: Driver Families / drivers/platform.
- Implementation status: integration implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.