Loading...
Note: File does not exist in v5.9.
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2024 Intel Corporation
4 */
5
6#ifndef _XE_GUC_KLV_THRESHOLDS_SET_H_
7#define _XE_GUC_KLV_THRESHOLDS_SET_H_
8
9#include "abi/guc_klvs_abi.h"
10#include "xe_guc_klv_helpers.h"
11#include "xe_guc_klv_thresholds_set_types.h"
12
13/**
14 * MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY - Prepare the name of the KLV key constant.
15 * @TAG: unique tag of the GuC threshold KLV key.
16 */
17#define MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG) \
18 MAKE_GUC_KLV_KEY(CONCATENATE(VF_CFG_THRESHOLD_, TAG))
19
20/**
21 * MAKE_GUC_KLV_VF_CFG_THRESHOLD_LEN - Prepare the name of the KLV length constant.
22 * @TAG: unique tag of the GuC threshold KLV key.
23 */
24#define MAKE_GUC_KLV_VF_CFG_THRESHOLD_LEN(TAG) \
25 MAKE_GUC_KLV_LEN(CONCATENATE(VF_CFG_THRESHOLD_, TAG))
26
27/**
28 * xe_guc_klv_threshold_key_to_index - Find index of the tracked GuC threshold.
29 * @key: GuC threshold KLV key.
30 *
31 * This translation is automatically generated using &MAKE_XE_GUC_KLV_THRESHOLDS_SET.
32 * Return: index of the GuC threshold KLV or -1 if not found.
33 */
34static inline int xe_guc_klv_threshold_key_to_index(u32 key)
35{
36 switch (key) {
37#define define_xe_guc_klv_threshold_key_to_index_case(TAG, ...) \
38 \
39 case MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG): \
40 return MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG);
41
42 /* private: auto-generated case statements */
43 MAKE_XE_GUC_KLV_THRESHOLDS_SET(define_xe_guc_klv_threshold_key_to_index_case)
44 }
45 return -1;
46#undef define_xe_guc_klv_threshold_key_to_index_case
47}
48
49/**
50 * xe_guc_klv_threshold_index_to_key - Get tracked GuC threshold KLV key.
51 * @index: GuC threshold KLV index.
52 *
53 * This translation is automatically generated using &MAKE_XE_GUC_KLV_THRESHOLDS_SET.
54 * Return: key of the GuC threshold KLV or 0 on malformed index.
55 */
56static inline u32 xe_guc_klv_threshold_index_to_key(enum xe_guc_klv_threshold_index index)
57{
58 switch (index) {
59#define define_xe_guc_klv_threshold_index_to_key_case(TAG, ...) \
60 \
61 case MAKE_XE_GUC_KLV_THRESHOLD_INDEX(TAG): \
62 return MAKE_GUC_KLV_VF_CFG_THRESHOLD_KEY(TAG);
63
64 /* private: auto-generated case statements */
65 MAKE_XE_GUC_KLV_THRESHOLDS_SET(define_xe_guc_klv_threshold_index_to_key_case)
66 }
67 return 0; /* unreachable */
68#undef define_xe_guc_klv_threshold_index_to_key_case
69}
70
71#endif