1419b0af8Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
2419b0af8Sopenharmony_ci/*
3419b0af8Sopenharmony_ci * drivers/auth_ctl/auth_ctrl.h
4419b0af8Sopenharmony_ci *
5419b0af8Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
6419b0af8Sopenharmony_ci *
7419b0af8Sopenharmony_ci */
8419b0af8Sopenharmony_ci
9419b0af8Sopenharmony_ci#ifndef __AUTH_CTRL_H
10419b0af8Sopenharmony_ci#define __AUTH_CTRL_H
11419b0af8Sopenharmony_ci
12419b0af8Sopenharmony_ci#include <linux/ioctl.h>
13419b0af8Sopenharmony_ci#include <linux/types.h>
14419b0af8Sopenharmony_ci#include <linux/spinlock.h>
15419b0af8Sopenharmony_ci#include <linux/list.h>
16419b0af8Sopenharmony_ci#include <linux/refcount.h>
17419b0af8Sopenharmony_ci
18419b0af8Sopenharmony_ci#include <linux/sched/qos_ctrl.h>
19419b0af8Sopenharmony_ci
20419b0af8Sopenharmony_cistruct auth_struct {
21419b0af8Sopenharmony_ci	struct mutex mutex;
22419b0af8Sopenharmony_ci	refcount_t usage;
23419b0af8Sopenharmony_ci	unsigned int status;
24419b0af8Sopenharmony_ci#ifdef CONFIG_RTG_AUTHORITY
25419b0af8Sopenharmony_ci	unsigned int rtg_auth_flag;
26419b0af8Sopenharmony_ci#endif
27419b0af8Sopenharmony_ci#ifdef CONFIG_QOS_AUTHORITY
28419b0af8Sopenharmony_ci	unsigned int qos_auth_flag;
29419b0af8Sopenharmony_ci#endif
30419b0af8Sopenharmony_ci#ifdef CONFIG_QOS_CTRL
31419b0af8Sopenharmony_ci	unsigned int num[NR_QOS];
32419b0af8Sopenharmony_ci	struct list_head tasks[NR_QOS];
33419b0af8Sopenharmony_ci#endif
34419b0af8Sopenharmony_ci};
35419b0af8Sopenharmony_ci
36419b0af8Sopenharmony_ci/*
37419b0af8Sopenharmony_ci * for debug fs
38419b0af8Sopenharmony_ci */
39419b0af8Sopenharmony_cistruct idr *get_auth_ctrl_idr(void);
40419b0af8Sopenharmony_cistruct mutex *get_auth_idr_mutex(void);
41419b0af8Sopenharmony_ci
42419b0af8Sopenharmony_ci#ifdef CONFIG_AUTH_QOS_DEBUG
43419b0af8Sopenharmony_ciint __init init_sched_auth_debug_procfs(void);
44419b0af8Sopenharmony_ci#else
45419b0af8Sopenharmony_cistatic inline int init_sched_auth_debug_procfs(void)
46419b0af8Sopenharmony_ci{
47419b0af8Sopenharmony_ci	return 0;
48419b0af8Sopenharmony_ci}
49419b0af8Sopenharmony_ci#endif
50419b0af8Sopenharmony_ci
51419b0af8Sopenharmony_ci#endif /* __AUTH_CTRL_H */
52419b0af8Sopenharmony_ci
53