1 /* 2 * Copyright (C) 2022 Huawei Technologies Co., Ltd. 3 * Licensed under the Mulan PSL v2. 4 * You can use this software according to the terms and conditions of the Mulan PSL v2. 5 * You may obtain a copy of Mulan PSL v2 at: 6 * http://license.coscl.org.cn/MulanPSL2 7 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR 8 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR 9 * PURPOSE. 10 * See the Mulan PSL v2 for more details. 11 */ 12 13 #ifndef TEE_TASK_EXCEPTION_H 14 #define TEE_TASK_EXCEPTION_H 15 16 #include <stdint.h> 17 #include <stddef.h> 18 #include "tee_defines.h" 19 #include "gtask_core.h" 20 21 enum TaStatus { 22 TA_STATUS_NORMAL = 0, 23 TA_STATUS_SELF_DEAD = 1, /* TA self has exception */ 24 TA_STATUS_FATHER_DEAD = 2, /* TA's father TA has exception */ 25 }; 26 27 int32_t process_task_crash(uint32_t cmd_id, uint32_t task_id, const uint8_t *msg_buf, 28 uint32_t msg_size); 29 int32_t handle_kill_task(const smc_cmd_t *cmd); 30 void ta_exception_handle_ack(int32_t sess_status, uint32_t task_id, uint32_t father_task_id); 31 void ta_exception_handle_buildin_agent_ack(uint32_t task_id); 32 TEE_Result ta_exception_handle_agent_ack(const smc_cmd_t *cmd); 33 #endif 34