32#ifndef _LOS_TRACE_PRI_H
33#define _LOS_TRACE_PRI_H
44#ifdef LOSCFG_TRACE_CONTROL_AGENT
45#define TRACE_CMD_END_CHAR 0xD
48#define TRACE_ERROR PRINT_ERR
49#define TRACE_MODE_OFFLINE 0
50#define TRACE_MODE_ONLINE 1
53#define TRACE_DEFAULT_MASK (TRACE_HWI_FLAG | TRACE_TASK_FLAG)
54#define TRACE_CTL_MAGIC_NUM 0xDEADBEEF
55#define TRACE_BIGLITTLE_WORD 0x12345678
56#define TRACE_VERSION(MODE) (0xFFFFFFFF & (MODE))
57#define TRACE_MASK_COMBINE(c1, c2, c3, c4) (((c1) << 24) | ((c2) << 16) | ((c3) << 8) | (c4))
59#define TRACE_GET_MODE_FLAG(type) ((type) & 0xFFFFFFF0)
61#ifdef LOSCFG_KERNEL_SMP
63#define TRACE_LOCK(state) LOS_SpinLockSave(&g_traceSpin, &(state))
64#define TRACE_UNLOCK(state) LOS_SpinUnlockRestore(&g_traceSpin, (state))
66#define TRACE_LOCK(state) (state) = LOS_IntLock()
67#define TRACE_UNLOCK(state) LOS_IntRestore(state)
127#ifdef LOSCFG_RECORDER_MODE_ONLINE
132#define OsTraceNotifyStart() do { \
133 OsTraceSendNotify(SYS_START, TRACE_CTL_MAGIC_NUM); \
135 OsTraceSendObjTable(); \
138#define OsTraceNotifyStop() do { \
139 OsTraceSendNotify(SYS_STOP, TRACE_CTL_MAGIC_NUM); \
142#define OsTraceReset()
143#define OsTraceRecordDump(toClient)
148#define OsTraceNotifyStart()
149#define OsTraceNotifyStop()
UINT32 OsTraceBufInit(UINT32 size)
trace离线模式初始化
VOID(* TRACE_DUMP_HOOK)(BOOL toClient)
VOID OsTraceSendObjTable(VOID)
发送所有任务对象至串口
VOID OsTraceReset(VOID)
重置循环buf
@ TRACE_CMD_SET_EVENT_MASK
TRACE_DUMP_HOOK g_traceDumpHook
输出缓冲区数据
OfflineHead * OsTraceRecordGet(VOID)
VOID OsTraceSendHead(VOID)
发送头信息
VOID OsTraceRecordDump(BOOL toClient)
VOID OsTraceSendNotify(UINT32 type, UINT32 value)
发送通知类信息(启动,停止 trace 等通知)
UINT32 OsTraceGetMaskTid(UINT32 taskId)
VOID OsTraceObjAdd(UINT32 eventType, UINT32 taskId)
添加一个任务
VOID OsTraceWriteOrSendEvent(const TraceEventFrame *frame)
离线模式下保存帧数据 @note_thinking 此处未封装好,会懵逼,文件名中体现了对离线模式的保存或对在线模式的发送这样真的好吗? .
BOOL OsTraceIsEnable(VOID)
VOID OsTraceSetObj(ObjData *obj, const LosTaskCB *tcb)