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#ifndef TLOGCAT_H 13#define TLOGCAT_H 14 15#include <stdint.h> 16 17#ifdef LOG_TEEOS_TAG 18#undef LOG_TEEOS_TAG 19#endif 20#define LOG_TEEOS_TAG "teeos" 21 22#define LOG_ITEM_MAX_LEN 1024 23 24#define LEVEL_ERROR 0 25#define LEVEL_WARNING 1 26#define LEVEL_INFO 2 27#define LEVEL_DEBUG 3 28#define LEVEL_VERBO 4 29 30#define TOTAL_LEVEL_NUMS 5 31 32#define LOG_FILE_INDEX_MAX 4U 33 34#define NEVER_USED_LEN 32U 35#define TEE_UUID_LEN 16U 36#define ITEM_RESERVED_LEN 1U 37 38/* 64 byte head + user log */ 39struct LogItem { 40 uint8_t neverUsed[NEVER_USED_LEN]; 41 uint16_t magic; 42 uint16_t reserved0; 43 uint32_t serialNo; 44 uint16_t logRealLen; /* log real len */ 45 uint16_t logBufferLen; /* log buffer's len, multiple of 32 bytes */ 46 uint8_t uuid[TEE_UUID_LEN]; 47 uint8_t logSourceType; 48 uint8_t reserved[ITEM_RESERVED_LEN]; 49 uint8_t logLevel; 50 uint8_t newLine; /* '\n' char, easy viewing log in bbox.bin file */ 51 uint8_t logBuffer[0]; 52}; 53 54#define CLOCK_SEG_NODE_LEN 8U 55struct TeeUuid { 56 uint32_t timeLow; 57 uint16_t timeMid; 58 uint16_t timeHiAndVersion; 59 uint8_t clockSeqAndNode[CLOCK_SEG_NODE_LEN]; 60}; 61#endif 62