• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (c) 2024 Huawei Device Co., Ltd.
4  */
5 
6 #include <linux/proc_fs.h>
7 
8 #include "dsmm_secureshield.h"
9 #include "xpm_log.h"
10 
11 #define STATE_UNINT 0
12 #define STATE_ON    1
13 #define STATE_OFF   2
14 
15 static uint32_t secureshield_state = STATE_UNINT;
init_secureshield_state(void)16 static int init_secureshield_state(void)
17 {
18     if (strstr(saved_command_line, "advsecmode.state=1")) {
19         secureshield_state = STATE_ON;
20     } else {
21         // secureshield is defaultly set to off
22         secureshield_state = STATE_OFF;
23     }
24     xpm_log_info("secureshield init to %d", secureshield_state);
25     return secureshield_state;
26 }
27 
get_secureshield_state(void)28 static int get_secureshield_state(void)
29 {
30     if (secureshield_state == STATE_UNINT) {
31         return init_secureshield_state();
32     } else {
33         return secureshield_state;
34     }
35 }
36 
dsmm_is_secureshield_enabled(void)37 bool dsmm_is_secureshield_enabled(void)
38 {
39     return get_secureshield_state() == STATE_ON;
40 }