更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
perf_output.c 文件参考

浏览源代码.

函数

STATIC VOID OsPerfDefaultNotify (VOID)
 
UINT32 OsPerfOutputInit (VOID *buf, UINT32 size)
 
VOID OsPerfOutputFlush (VOID)
 
UINT32 OsPerfOutputRead (CHAR *dest, UINT32 size)
 
STATIC BOOL OsPerfOutputBegin (UINT32 size)
 
STATIC VOID OsPerfOutputEnd (VOID)
 
UINT32 OsPerfOutputWrite (CHAR *data, UINT32 size)
 
VOID OsPerfOutputInfo (VOID)
 
VOID OsPerfNotifyHookReg (const PERF_BUF_NOTIFY_HOOK func)
 
VOID OsPerfFlushHookReg (const PERF_BUF_FLUSH_HOOK func)
 

变量

STATIC PERF_BUF_NOTIFY_HOOK g_perfBufNotifyHook = NULL
 
STATIC PERF_BUF_FLUSH_HOOK g_perfBufFlushHook = NULL
 
STATIC PerfOutputCB g_perfOutputCb
 

函数说明

◆ OsPerfDefaultNotify()

STATIC VOID OsPerfDefaultNotify ( VOID  )

在文件 perf_output.c38 行定义.

39{
40 PRINT_INFO("perf buf waterline notify!\n");
41}
这是这个函数的调用关系图:

◆ OsPerfFlushHookReg()

VOID OsPerfFlushHookReg ( const PERF_BUF_FLUSH_HOOK  func)

在文件 perf_output.c123 行定义.

124{
125 g_perfBufFlushHook = func;
126}
STATIC PERF_BUF_FLUSH_HOOK g_perfBufFlushHook
Definition: perf_output.c:35
这是这个函数的调用关系图:

◆ OsPerfNotifyHookReg()

VOID OsPerfNotifyHookReg ( const PERF_BUF_NOTIFY_HOOK  func)

在文件 perf_output.c118 行定义.

119{
120 g_perfBufNotifyHook = func;
121}
STATIC PERF_BUF_NOTIFY_HOOK g_perfBufNotifyHook
Definition: perf_output.c:34
这是这个函数的调用关系图:

◆ OsPerfOutputBegin()

STATIC BOOL OsPerfOutputBegin ( UINT32  size)

在文件 perf_output.c82 行定义.

83{
84 if (g_perfOutputCb.ringbuf.remain < size) {
85 PRINT_INFO("perf buf has no enough space for 0x%x\n", size);
86 return FALSE;
87 }
88 return TRUE;
89}
STATIC PerfOutputCB g_perfOutputCb
Definition: perf_output.c:36
UINT32 remain
Definition: los_cir_buf.h:54
这是这个函数的调用关系图:

◆ OsPerfOutputEnd()

STATIC VOID OsPerfOutputEnd ( VOID  )

在文件 perf_output.c91 行定义.

92{
95 if (g_perfBufNotifyHook != NULL) {
97 }
98 }
99}
UINT32 LOS_CirBufUsedSize(CirBuf *cirbufCB)
返回循环buf已使用的大小
Definition: los_cir_buf.c:37
VOID OsPerfOutputFlush(VOID)
Definition: perf_output.c:69
函数调用图:
这是这个函数的调用关系图:

◆ OsPerfOutputFlush()

VOID OsPerfOutputFlush ( VOID  )

在文件 perf_output.c69 行定义.

这是这个函数的调用关系图:

◆ OsPerfOutputInfo()

VOID OsPerfOutputInfo ( VOID  )

在文件 perf_output.c113 行定义.

114{
115 PRINT_EMG("dump perf data, addr: %p length: %#x\n", g_perfOutputCb.ringbuf.fifo, g_perfOutputCb.ringbuf.size);
116}
这是这个函数的调用关系图:

◆ OsPerfOutputInit()

UINT32 OsPerfOutputInit ( VOID *  buf,
UINT32  size 
)

在文件 perf_output.c43 行定义.

44{
45 UINT32 ret;
46 BOOL releaseFlag = FALSE;
47 if (buf == NULL) {
48 buf = LOS_MemAlloc(m_aucSysMem1, size);
49 if (buf == NULL) {
50 return LOS_NOK;
51 } else {
52 releaseFlag = TRUE;
53 }
54 }
55 ret = LOS_CirBufInit(&g_perfOutputCb.ringbuf, buf, size);
56 if (ret != LOS_OK) {
57 goto RELEASE;
58 }
59 g_perfOutputCb.waterMark = size / PERF_BUFFER_WATERMARK_ONE_N;
61 return ret;
62RELEASE:
63 if (releaseFlag) {
64 (VOID)LOS_MemFree(m_aucSysMem1, buf);
65 }
66 return ret;
67}
VOID * LOS_MemAlloc(VOID *pool, UINT32 size)
从指定内存池中申请size长度的内存,注意这可不是从内核堆空间中申请内存
Definition: los_memory.c:1123
UINT8 * m_aucSysMem1
系统动态内存池地址的起始地址 @note_thinking 能否不要用 0,1来命名核心变量 ???
Definition: los_memory.c:108
UINT32 LOS_MemFree(VOID *pool, VOID *ptr)
释放从指定动态内存中申请的内存
Definition: los_memory.c:1369
UINT32 LOS_CirBufInit(CirBuf *cirbufCB, CHAR *fifo, UINT32 size)
初始化循环buf
Definition: los_cir_buf.c:225
unsigned int UINT32
Definition: los_typedef.h:57
size_t BOOL
Definition: los_typedef.h:88
STATIC VOID OsPerfDefaultNotify(VOID)
Definition: perf_output.c:38
函数调用图:
这是这个函数的调用关系图:

◆ OsPerfOutputRead()

UINT32 OsPerfOutputRead ( CHAR dest,
UINT32  size 
)

在文件 perf_output.c76 行定义.

77{
79 return LOS_CirBufRead(&g_perfOutputCb.ringbuf, dest, size);
80}
UINT32 LOS_CirBufRead(CirBuf *cirbufCB, CHAR *buf, UINT32 size)
读取循环buf的数据
Definition: los_cir_buf.c:199
函数调用图:
这是这个函数的调用关系图:

◆ OsPerfOutputWrite()

UINT32 OsPerfOutputWrite ( CHAR data,
UINT32  size 
)

在文件 perf_output.c101 行定义.

102{
103 if (!OsPerfOutputBegin(size)) {
104 return LOS_NOK;
105 }
106
108
110 return LOS_OK;
111}
UINT32 LOS_CirBufWrite(CirBuf *cirbufCB, const CHAR *buf, UINT32 size)
写入数据到循环buf区
Definition: los_cir_buf.c:112
STATIC VOID OsPerfOutputEnd(VOID)
Definition: perf_output.c:91
STATIC BOOL OsPerfOutputBegin(UINT32 size)
Definition: perf_output.c:82
函数调用图:
这是这个函数的调用关系图:

变量说明

◆ g_perfBufFlushHook

STATIC PERF_BUF_FLUSH_HOOK g_perfBufFlushHook = NULL

在文件 perf_output.c35 行定义.

◆ g_perfBufNotifyHook

STATIC PERF_BUF_NOTIFY_HOOK g_perfBufNotifyHook = NULL

在文件 perf_output.c34 行定义.

◆ g_perfOutputCb

STATIC PerfOutputCB g_perfOutputCb

在文件 perf_output.c36 行定义.