• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * rpmb_driver.h
3  *
4  * rpmb driver function, such as ioctl
5  *
6  * Copyright (C) 2022 Huawei Technologies Co., Ltd.
7  *
8  * This software is licensed under the terms of the GNU General Public
9  * License version 2, as published by the Free Software Foundation, and
10  * may be copied, distributed, and modified under those terms.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  */
17 
18 #ifndef __RPMB_DRIVER_H
19 #define __RPMB_DRIVER_H
20 
21 #include <linux/rpmb/rpmb.h>
22 
23 #ifdef CONFIG_VENDOR_RPMB
24 int vendor_rpmb_ioctl_cmd(enum func_id id, enum rpmb_op_type operation,
25 	struct storage_blk_ioc_rpmb_data *storage_data);
26 
tee_report_rpmb(void)27 static inline void tee_report_rpmb(void)
28 {
29 	rpmb_dump_io_latency();
30 }
31 #else
vendor_rpmb_ioctl_cmd(enum func_id id,enum rpmb_op_type operation,struct storage_blk_ioc_rpmb_data * storage_data)32 static inline int vendor_rpmb_ioctl_cmd(enum func_id id, enum rpmb_op_type operation,
33 			struct storage_blk_ioc_rpmb_data *storage_data)
34 {
35 	return 0xFF08;
36 }
37 
tee_report_rpmb(void)38 static inline void tee_report_rpmb(void)
39 {
40 }
41 #endif
42 
43 #if defined(CONFIG_VENDOR_RPMB) && !defined(CONFIG_RPMB_REQ_LOCK_DISABLE)
rpmb_driver_counter_lock(void)44 static inline void rpmb_driver_counter_lock(void)
45 {
46 	mutex_lock(&rpmb_counter_lock);
47 }
48 
rpmb_driver_counter_unlock(void)49 static inline void rpmb_driver_counter_unlock(void)
50 {
51 	mutex_unlock(&rpmb_counter_lock);
52 }
53 #else
rpmb_driver_counter_lock(void)54 static inline void rpmb_driver_counter_lock(void)
55 {
56 }
57 
rpmb_driver_counter_unlock(void)58 static inline void rpmb_driver_counter_unlock(void)
59 {
60 }
61 #endif
62 
63 int rpmb_ioctl_cmd(enum func_id id, enum rpmb_op_type operation,
64 	struct storage_blk_ioc_rpmb_data *storage_data);
65 #endif