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)16static 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)28static 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)37bool dsmm_is_secureshield_enabled(void) 38 { 39 return get_secureshield_state() == STATE_ON; 40 }