13d8536b4Sopenharmony_ci/* 23d8536b4Sopenharmony_ci * Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved. 33d8536b4Sopenharmony_ci * Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved. 43d8536b4Sopenharmony_ci * 53d8536b4Sopenharmony_ci * Redistribution and use in source and binary forms, with or without modification, 63d8536b4Sopenharmony_ci * are permitted provided that the following conditions are met: 73d8536b4Sopenharmony_ci * 83d8536b4Sopenharmony_ci * 1. Redistributions of source code must retain the above copyright notice, this list of 93d8536b4Sopenharmony_ci * conditions and the following disclaimer. 103d8536b4Sopenharmony_ci * 113d8536b4Sopenharmony_ci * 2. Redistributions in binary form must reproduce the above copyright notice, this list 123d8536b4Sopenharmony_ci * of conditions and the following disclaimer in the documentation and/or other materials 133d8536b4Sopenharmony_ci * provided with the distribution. 143d8536b4Sopenharmony_ci * 153d8536b4Sopenharmony_ci * 3. Neither the name of the copyright holder nor the names of its contributors may be used 163d8536b4Sopenharmony_ci * to endorse or promote products derived from this software without specific prior written 173d8536b4Sopenharmony_ci * permission. 183d8536b4Sopenharmony_ci * 193d8536b4Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 203d8536b4Sopenharmony_ci * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 213d8536b4Sopenharmony_ci * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 223d8536b4Sopenharmony_ci * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 233d8536b4Sopenharmony_ci * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 243d8536b4Sopenharmony_ci * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 253d8536b4Sopenharmony_ci * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 263d8536b4Sopenharmony_ci * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 273d8536b4Sopenharmony_ci * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 283d8536b4Sopenharmony_ci * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 293d8536b4Sopenharmony_ci * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 303d8536b4Sopenharmony_ci */ 313d8536b4Sopenharmony_ci 323d8536b4Sopenharmony_ci#include "trace_cnv.h" 333d8536b4Sopenharmony_ci#include "los_trace.h" 343d8536b4Sopenharmony_ci#include "los_task.h" 353d8536b4Sopenharmony_ci#include "los_sem.h" 363d8536b4Sopenharmony_ci#include "los_mux.h" 373d8536b4Sopenharmony_ci#include "los_queue.h" 383d8536b4Sopenharmony_ci#include "los_event.h" 393d8536b4Sopenharmony_ci#include "los_swtmr.h" 403d8536b4Sopenharmony_ci#include "los_hook.h" 413d8536b4Sopenharmony_ci 423d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMemInit(VOID *pool, UINT32 size) 433d8536b4Sopenharmony_ci{ 443d8536b4Sopenharmony_ci LOS_TRACE(MEM_INFO_REQ, pool); 453d8536b4Sopenharmony_ci} 463d8536b4Sopenharmony_ci 473d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMemAlloc(VOID *pool, VOID *ptr, UINT32 size) 483d8536b4Sopenharmony_ci{ 493d8536b4Sopenharmony_ci LOS_TRACE(MEM_ALLOC, pool, (UINTPTR)ptr, size); 503d8536b4Sopenharmony_ci} 513d8536b4Sopenharmony_ci 523d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMemFree(VOID *pool, VOID *ptr) 533d8536b4Sopenharmony_ci{ 543d8536b4Sopenharmony_ci LOS_TRACE(MEM_FREE, pool, (UINTPTR)ptr); 553d8536b4Sopenharmony_ci} 563d8536b4Sopenharmony_ci 573d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMemRealloc(VOID *pool, VOID *ptr, UINT32 size) 583d8536b4Sopenharmony_ci{ 593d8536b4Sopenharmony_ci LOS_TRACE(MEM_REALLOC, pool, (UINTPTR)ptr, size); 603d8536b4Sopenharmony_ci} 613d8536b4Sopenharmony_ci 623d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMemAllocAlign(VOID *pool, VOID *ptr, UINT32 size, UINT32 boundary) 633d8536b4Sopenharmony_ci{ 643d8536b4Sopenharmony_ci LOS_TRACE(MEM_ALLOC_ALIGN, pool, (UINTPTR)ptr, size, boundary); 653d8536b4Sopenharmony_ci} 663d8536b4Sopenharmony_ci 673d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceEventInit(PEVENT_CB_S eventCB) 683d8536b4Sopenharmony_ci{ 693d8536b4Sopenharmony_ci LOS_TRACE(EVENT_CREATE, (UINTPTR)eventCB); 703d8536b4Sopenharmony_ci} 713d8536b4Sopenharmony_ci 723d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceEventRead(PEVENT_CB_S eventCB, UINT32 eventMask, UINT32 mode, UINT32 timeout) 733d8536b4Sopenharmony_ci{ 743d8536b4Sopenharmony_ci LOS_TRACE(EVENT_READ, (UINTPTR)eventCB, eventCB->uwEventID, eventMask, mode, timeout); 753d8536b4Sopenharmony_ci} 763d8536b4Sopenharmony_ci 773d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceEventWrite(PEVENT_CB_S eventCB, UINT32 events) 783d8536b4Sopenharmony_ci{ 793d8536b4Sopenharmony_ci LOS_TRACE(EVENT_WRITE, (UINTPTR)eventCB, eventCB->uwEventID, events); 803d8536b4Sopenharmony_ci} 813d8536b4Sopenharmony_ci 823d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceEventClear(PEVENT_CB_S eventCB, UINT32 events) 833d8536b4Sopenharmony_ci{ 843d8536b4Sopenharmony_ci LOS_TRACE(EVENT_CLEAR, (UINTPTR)eventCB, eventCB->uwEventID, events); 853d8536b4Sopenharmony_ci} 863d8536b4Sopenharmony_ci 873d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceEventDestroy(PEVENT_CB_S eventCB) 883d8536b4Sopenharmony_ci{ 893d8536b4Sopenharmony_ci LOS_TRACE(EVENT_DELETE, (UINTPTR)eventCB, LOS_OK); 903d8536b4Sopenharmony_ci} 913d8536b4Sopenharmony_ci 923d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceQueueCreate(const LosQueueCB *queueCB) 933d8536b4Sopenharmony_ci{ 943d8536b4Sopenharmony_ci LOS_TRACE(QUEUE_CREATE, queueCB->queueID, queueCB->queueLen, queueCB->queueSize - sizeof(UINT32), 953d8536b4Sopenharmony_ci (UINTPTR)queueCB, 0); 963d8536b4Sopenharmony_ci} 973d8536b4Sopenharmony_ci 983d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceQueueRW(const LosQueueCB *queueCB, UINT32 operateType, 993d8536b4Sopenharmony_ci UINT32 bufferSize, UINT32 timeout) 1003d8536b4Sopenharmony_ci{ 1013d8536b4Sopenharmony_ci LOS_TRACE(QUEUE_RW, queueCB->queueID, queueCB->queueSize, bufferSize, operateType, 1023d8536b4Sopenharmony_ci queueCB->readWriteableCnt[OS_QUEUE_READ], queueCB->readWriteableCnt[OS_QUEUE_WRITE], timeout); 1033d8536b4Sopenharmony_ci} 1043d8536b4Sopenharmony_ci 1053d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceQueueDelete(const LosQueueCB *queueCB) 1063d8536b4Sopenharmony_ci{ 1073d8536b4Sopenharmony_ci LOS_TRACE(QUEUE_DELETE, queueCB->queueID, queueCB->queueState, queueCB->readWriteableCnt[OS_QUEUE_READ]); 1083d8536b4Sopenharmony_ci} 1093d8536b4Sopenharmony_ci 1103d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSemCreate(const LosSemCB *semCB) 1113d8536b4Sopenharmony_ci{ 1123d8536b4Sopenharmony_ci LOS_TRACE(SEM_CREATE, semCB->semID, 0, semCB->semCount); 1133d8536b4Sopenharmony_ci} 1143d8536b4Sopenharmony_ci 1153d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSemPost(const LosSemCB *semCB, const LosTaskCB *resumedTask) 1163d8536b4Sopenharmony_ci{ 1173d8536b4Sopenharmony_ci (VOID)resumedTask; 1183d8536b4Sopenharmony_ci LOS_TRACE(SEM_POST, semCB->semID, 0, semCB->semCount); 1193d8536b4Sopenharmony_ci} 1203d8536b4Sopenharmony_ci 1213d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSemPend(const LosSemCB *semCB, const LosTaskCB *runningTask, UINT32 timeout) 1223d8536b4Sopenharmony_ci{ 1233d8536b4Sopenharmony_ci (VOID)runningTask; 1243d8536b4Sopenharmony_ci LOS_TRACE(SEM_PEND, semCB->semID, semCB->semCount, timeout); 1253d8536b4Sopenharmony_ci} 1263d8536b4Sopenharmony_ci 1273d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSemDelete(const LosSemCB *semCB) 1283d8536b4Sopenharmony_ci{ 1293d8536b4Sopenharmony_ci LOS_TRACE(SEM_DELETE, semCB->semID, LOS_OK); 1303d8536b4Sopenharmony_ci} 1313d8536b4Sopenharmony_ci 1323d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMuxCreate(const LosMuxCB *muxCB) 1333d8536b4Sopenharmony_ci{ 1343d8536b4Sopenharmony_ci LOS_TRACE(MUX_CREATE, muxCB->muxID); 1353d8536b4Sopenharmony_ci} 1363d8536b4Sopenharmony_ci 1373d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMuxPost(const LosMuxCB *muxCB) 1383d8536b4Sopenharmony_ci{ 1393d8536b4Sopenharmony_ci LOS_TRACE(MUX_POST, muxCB->muxID, muxCB->muxCount, 1403d8536b4Sopenharmony_ci (muxCB->owner == NULL) ? 0xffffffff : muxCB->owner->taskID); 1413d8536b4Sopenharmony_ci} 1423d8536b4Sopenharmony_ci 1433d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMuxPend(const LosMuxCB *muxCB, UINT32 timeout) 1443d8536b4Sopenharmony_ci{ 1453d8536b4Sopenharmony_ci LOS_TRACE(MUX_PEND, muxCB->muxID, muxCB->muxCount, 1463d8536b4Sopenharmony_ci (muxCB->owner == NULL) ? 0xffffffff : muxCB->owner->taskID, timeout); 1473d8536b4Sopenharmony_ci} 1483d8536b4Sopenharmony_ci 1493d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceMuxDelete(const LosMuxCB *muxCB) 1503d8536b4Sopenharmony_ci{ 1513d8536b4Sopenharmony_ci LOS_TRACE(MUX_DELETE, muxCB->muxID, muxCB->muxStat, muxCB->muxCount, 1523d8536b4Sopenharmony_ci (muxCB->owner == NULL) ? 0xffffffff : muxCB->owner->taskID); 1533d8536b4Sopenharmony_ci} 1543d8536b4Sopenharmony_ci 1553d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceTaskCreate(const LosTaskCB *taskCB) 1563d8536b4Sopenharmony_ci{ 1573d8536b4Sopenharmony_ci LOS_TRACE(TASK_CREATE, taskCB->taskID, taskCB->taskStatus, taskCB->priority); 1583d8536b4Sopenharmony_ci} 1593d8536b4Sopenharmony_ci 1603d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceTaskPriModify(const LosTaskCB *taskCB, UINT32 prio) 1613d8536b4Sopenharmony_ci{ 1623d8536b4Sopenharmony_ci LOS_TRACE(TASK_PRIOSET, taskCB->taskID, taskCB->taskStatus, taskCB->priority, prio); 1633d8536b4Sopenharmony_ci} 1643d8536b4Sopenharmony_ci 1653d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceTaskDelete(const LosTaskCB *taskCB) 1663d8536b4Sopenharmony_ci{ 1673d8536b4Sopenharmony_ci LOS_TRACE(TASK_DELETE, taskCB->taskID, taskCB->taskStatus, (UINTPTR)taskCB->stackPointer); 1683d8536b4Sopenharmony_ci} 1693d8536b4Sopenharmony_ci 1703d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceTaskSwitchedIn(VOID) 1713d8536b4Sopenharmony_ci{ 1723d8536b4Sopenharmony_ci LosTaskCB *newTask = g_losTask.newTask; 1733d8536b4Sopenharmony_ci LosTaskCB *runTask = g_losTask.runTask; 1743d8536b4Sopenharmony_ci LOS_TRACE(TASK_SWITCH, newTask->taskID, runTask->priority, runTask->taskStatus, 1753d8536b4Sopenharmony_ci newTask->priority, newTask->taskStatus); 1763d8536b4Sopenharmony_ci} 1773d8536b4Sopenharmony_ci 1783d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceTaskResume(const LosTaskCB *taskCB) 1793d8536b4Sopenharmony_ci{ 1803d8536b4Sopenharmony_ci LOS_TRACE(TASK_RESUME, taskCB->taskID, taskCB->taskStatus, taskCB->priority); 1813d8536b4Sopenharmony_ci} 1823d8536b4Sopenharmony_ci 1833d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceTaskSuspend(const LosTaskCB *taskCB) 1843d8536b4Sopenharmony_ci{ 1853d8536b4Sopenharmony_ci LOS_TRACE(TASK_SUSPEND, taskCB->taskID, taskCB->taskStatus, g_losTask.runTask->taskID); 1863d8536b4Sopenharmony_ci} 1873d8536b4Sopenharmony_ci 1883d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceIsrEnter(UINT32 hwiNum) 1893d8536b4Sopenharmony_ci{ 1903d8536b4Sopenharmony_ci LOS_TRACE(HWI_RESPONSE_IN, hwiNum); 1913d8536b4Sopenharmony_ci} 1923d8536b4Sopenharmony_ci 1933d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceIsrExit(UINT32 hwiNum) 1943d8536b4Sopenharmony_ci{ 1953d8536b4Sopenharmony_ci LOS_TRACE(HWI_RESPONSE_OUT, hwiNum); 1963d8536b4Sopenharmony_ci} 1973d8536b4Sopenharmony_ci 1983d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSwtmrCreate(const SWTMR_CTRL_S *swtmr) 1993d8536b4Sopenharmony_ci{ 2003d8536b4Sopenharmony_ci LOS_TRACE(SWTMR_CREATE, swtmr->usTimerID); 2013d8536b4Sopenharmony_ci} 2023d8536b4Sopenharmony_ci 2033d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSwtmrDelete(const SWTMR_CTRL_S *swtmr) 2043d8536b4Sopenharmony_ci{ 2053d8536b4Sopenharmony_ci LOS_TRACE(SWTMR_DELETE, swtmr->usTimerID); 2063d8536b4Sopenharmony_ci} 2073d8536b4Sopenharmony_ci 2083d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSwtmrExpired(const SWTMR_CTRL_S *swtmr) 2093d8536b4Sopenharmony_ci{ 2103d8536b4Sopenharmony_ci LOS_TRACE(SWTMR_EXPIRED, swtmr->usTimerID); 2113d8536b4Sopenharmony_ci} 2123d8536b4Sopenharmony_ci 2133d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSwtmrStart(const SWTMR_CTRL_S *swtmr) 2143d8536b4Sopenharmony_ci{ 2153d8536b4Sopenharmony_ci LOS_TRACE(SWTMR_START, swtmr->usTimerID, swtmr->ucMode, swtmr->uwInterval); 2163d8536b4Sopenharmony_ci} 2173d8536b4Sopenharmony_ci 2183d8536b4Sopenharmony_ciSTATIC VOID LOS_TraceSwtmrStop(const SWTMR_CTRL_S *swtmr) 2193d8536b4Sopenharmony_ci{ 2203d8536b4Sopenharmony_ci LOS_TRACE(SWTMR_STOP, swtmr->usTimerID); 2213d8536b4Sopenharmony_ci} 2223d8536b4Sopenharmony_ci 2233d8536b4Sopenharmony_ciVOID OsTraceCnvInit(VOID) 2243d8536b4Sopenharmony_ci{ 2253d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MEM_ALLOC, LOS_TraceMemAlloc); 2263d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MEM_FREE, LOS_TraceMemFree); 2273d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MEM_INIT, LOS_TraceMemInit); 2283d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MEM_REALLOC, LOS_TraceMemRealloc); 2293d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MEM_ALLOCALIGN, LOS_TraceMemAllocAlign); 2303d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_EVENT_INIT, LOS_TraceEventInit); 2313d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_EVENT_READ, LOS_TraceEventRead); 2323d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_EVENT_WRITE, LOS_TraceEventWrite); 2333d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_EVENT_CLEAR, LOS_TraceEventClear); 2343d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_EVENT_DESTROY, LOS_TraceEventDestroy); 2353d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_QUEUE_CREATE, LOS_TraceQueueCreate); 2363d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_QUEUE_DELETE, LOS_TraceQueueDelete); 2373d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_QUEUE_READ, LOS_TraceQueueRW); 2383d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_QUEUE_READ_COPY, LOS_TraceQueueRW); 2393d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_QUEUE_WRITE, LOS_TraceQueueRW); 2403d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_QUEUE_WRITE_COPY, LOS_TraceQueueRW); 2413d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SEM_CREATE, LOS_TraceSemCreate); 2423d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SEM_DELETE, LOS_TraceSemDelete); 2433d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SEM_POST, LOS_TraceSemPost); 2443d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SEM_PEND, LOS_TraceSemPend); 2453d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MUX_CREATE, LOS_TraceMuxCreate); 2463d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MUX_POST, LOS_TraceMuxPost); 2473d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MUX_PEND, LOS_TraceMuxPend); 2483d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MUX_DELETE, LOS_TraceMuxDelete); 2493d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_TASK_PRIMODIFY, LOS_TraceTaskPriModify); 2503d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_TASK_DELETE, LOS_TraceTaskDelete); 2513d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_TASK_CREATE, LOS_TraceTaskCreate); 2523d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_TASK_SWITCHEDIN, LOS_TraceTaskSwitchedIn); 2533d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MOVEDTASKTOREADYSTATE, LOS_TraceTaskResume); 2543d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_MOVEDTASKTOSUSPENDEDLIST, LOS_TraceTaskSuspend); 2553d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_ISR_ENTER, LOS_TraceIsrEnter); 2563d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_ISR_EXIT, LOS_TraceIsrExit); 2573d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SWTMR_CREATE, LOS_TraceSwtmrCreate); 2583d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SWTMR_DELETE, LOS_TraceSwtmrDelete); 2593d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SWTMR_EXPIRED, LOS_TraceSwtmrExpired); 2603d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SWTMR_START, LOS_TraceSwtmrStart); 2613d8536b4Sopenharmony_ci LOS_HookReg(LOS_HOOK_TYPE_SWTMR_STOP, LOS_TraceSwtmrStop); 2623d8536b4Sopenharmony_ci} 263