1419b0af8Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
2419b0af8Sopenharmony_ci/*
3419b0af8Sopenharmony_ci * drivers/auth_ctl/qos_ctrl.h
4419b0af8Sopenharmony_ci *
5419b0af8Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
6419b0af8Sopenharmony_ci *
7419b0af8Sopenharmony_ci */
8419b0af8Sopenharmony_ci
9419b0af8Sopenharmony_ci#ifndef __QOS_CTRL_H
10419b0af8Sopenharmony_ci#define __QOS_CTRL_H
11419b0af8Sopenharmony_ci
12419b0af8Sopenharmony_ci#include "../../kernel/sched/sched.h"
13419b0af8Sopenharmony_ci
14419b0af8Sopenharmony_ci#include <linux/sched/qos_ctrl.h>
15419b0af8Sopenharmony_ci
16419b0af8Sopenharmony_ci/* min qos level used in kernel space, begin index for LOOP */
17419b0af8Sopenharmony_ci#define QOS_POLICY_MIN_LEVEL 0
18419b0af8Sopenharmony_ci
19419b0af8Sopenharmony_cistruct qos_policy_item {
20419b0af8Sopenharmony_ci	int nice;
21419b0af8Sopenharmony_ci	int latency_nice;
22419b0af8Sopenharmony_ci	int uclamp_min;
23419b0af8Sopenharmony_ci	int uclamp_max;
24419b0af8Sopenharmony_ci	int rt_sched_priority;
25419b0af8Sopenharmony_ci	int policy;
26419b0af8Sopenharmony_ci};
27419b0af8Sopenharmony_ci
28419b0af8Sopenharmony_cistruct qos_policy_map {
29419b0af8Sopenharmony_ci	rwlock_t lock;
30419b0af8Sopenharmony_ci	bool initialized;
31419b0af8Sopenharmony_ci	unsigned int policy_flag;
32419b0af8Sopenharmony_ci	struct qos_policy_item levels[NR_QOS];
33419b0af8Sopenharmony_ci};
34419b0af8Sopenharmony_ci
35419b0af8Sopenharmony_ciint __init init_qos_ctrl(void);
36419b0af8Sopenharmony_ci
37419b0af8Sopenharmony_ci#endif /* __OQS_CTRL_H */
38419b0af8Sopenharmony_ci
39