/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2020. All rights reserved. * Description: SSM function file for Huanglong SSM * Author: ssm group * Create: 2019/12/11 */ #ifndef __DRV_SSM_H__ #define __DRV_SSM_H__ #include "drv_ssm_ext.h" #include "soc_log.h" #include "osal_ext.h" #undef LOG_MODULE_ID #define LOG_MODULE_ID SOC_ID_SSM #define ssm_check_pointer_return_if_fail(pointer) \ do { \ if ((pointer) == TD_NULL) { \ soc_log_err("pointer %s is null\n", #pointer); \ return TD_FAILURE; \ } \ } while (0) typedef struct { td_u64 buf_addr_begin; td_u64 buf_addr_end; } ssm_teec_buf_addr; typedef td_s32 (*fn_ssm_proc_read)(td_void *pf, td_void *data); td_void drv_ssm_error_handler(struct file *ssm_filp); td_s32 drv_ssm_teec_init(td_void); td_void drv_ssm_teec_deinit(td_void); td_s32 drv_ssm_teec_create(struct file *ssm_filp, ext_ssm_intent intent, td_handle *handle); td_s32 drv_ssm_teec_destroy(td_handle ssm_handle); td_s32 drv_ssm_teec_add_resource(td_handle ssm_handle, ext_ssm_module_resource res_info); td_s32 drv_ssm_teec_attach_buffer(ext_ssm_buffer_attach_info attach_info, td_u64 *addr); td_s32 drv_ssm_teec_get_intent(td_handle ssm_handle, ext_ssm_intent *get_intent); #ifdef SSM_TEST_SUPPORT td_s32 drv_ssm_teec_check_buffer(ext_ssm_buffer_check_info check_info); td_s32 drv_ssm_teec_send_tbl(td_handle session_handle, ext_ssm_send_policy_tbl *p); #endif td_s32 drv_ssm_proc_read(td_void *fp); td_s32 drv_ssm_create_proc(td_char *name, fn_ssm_proc_read read_fn, osal_proc_cmd *cmd_list, td_u32 cmd_cnt); td_void drv_ssm_destroy_proc(td_char *name); td_s32 drv_ssm_set_tee_log_level(td_u32 level); #endif