drivers/gpu/drm/xe/xe_guc_klv_thresholds_set_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/xe/xe_guc_klv_thresholds_set_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/xe/xe_guc_klv_thresholds_set_types.h- Extension
.h- Size
- 2471 bytes
- Lines
- 75
- Domain
- Driver Families
- Bucket
- drivers/gpu
- Inferred role
- Driver Families: implementation source
- Status
- source 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.
Dependency Surface
xe_args.h
Detected Declarations
enum xe_guc_klv_threshold_index
Annotated Snippet
#ifndef _XE_GUC_KLV_THRESHOLDS_SET_TYPES_H_
#define _XE_GUC_KLV_THRESHOLDS_SET_TYPES_H_
#include "xe_args.h"
/**
* MAKE_XE_GUC_KLV_THRESHOLDS_SET - Generate various GuC thresholds definitions.
* @define: name of the inner macro to expand.
*
* The GuC firmware is able to monitor VF's adverse activity and will notify the
* PF driver once any threshold is exceeded.
*
* This super macro allows various conversions between the GuC adverse event
* threshold KLV definitions and the driver code without repeating similar code
* or risking missing some cases.
*
* For each GuC threshold definition, the inner macro &define will be provided
* with the &TAG, that corresponds to the GuC threshold KLV key name defined by
* ABI and the associated &NAME, that may be used in code or debugfs/sysfs::
*
* define(TAG, NAME)
*
* If required, KLVs can be labeled with GuC firmware version that added them::
*
* define(TAG, NAME, MAJOR, MINOR)
* define(TAG, NAME, MAJOR, MINOR, PATCH)
*/
#define MAKE_XE_GUC_KLV_THRESHOLDS_SET(define) \
define(CAT_ERR, cat_error_count) \
define(ENGINE_RESET, engine_reset_count) \
define(PAGE_FAULT, page_fault_count) \
define(H2G_STORM, guc_time_us) \
define(IRQ_STORM, irq_time_us) \
define(DOORBELL_STORM, doorbell_time_us) \
define(MULTI_LRC_COUNT, multi_lrc_count, 70, 53)\
/* end */
/**
* XE_GUC_KLV_NUM_THRESHOLDS - Number of GuC thresholds KLVs.
*
* Calculated automatically using &MAKE_XE_GUC_KLV_THRESHOLDS_SET.
*/
#define XE_GUC_KLV_NUM_THRESHOLDS \
(CALL_ARGS(COUNT_ARGS, MAKE_XE_GUC_KLV_THRESHOLDS_SET(ARGS_SEP_COMMA)) - 1)
/**
* MAKE_XE_GUC_KLV_THRESHOLD_INDEX - Create enumerator name.
* @TAG: unique TAG of the enum xe_guc_klv_threshold_index.
*/
#define MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG) \
CONCATENATE(XE_GUC_KLV_THRESHOLD_INDEX_, TAG)
/**
* enum xe_guc_klv_threshold_index - Index of the tracked GuC threshold.
*
* This enum is automatically generated using &MAKE_XE_GUC_KLV_THRESHOLDS_SET.
* All these generated enumerators will only be used by the also generated code.
*/
enum xe_guc_klv_threshold_index {
#define define_xe_guc_klv_threshold_index_enum(TAG, ...) \
\
MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG),
/* private: auto-generated enum definitions */
MAKE_XE_GUC_KLV_THRESHOLDS_SET(define_xe_guc_klv_threshold_index_enum)
#undef define_xe_guc_klv_threshold_index_enum
};
#endif
Annotation
- Immediate include surface: `xe_args.h`.
- Detected declarations: `enum xe_guc_klv_threshold_index`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source 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.