blob: 861ddf12020d694fa419187fb225b38b974cebc6 [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001/*******************************************************************************
2* °æÈ¨ËùÓÐ (C)2012, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
3*
4* ÎļþÃû³Æ: oss_monitor.h
5* Îļþ±êʶ: oss_monitor.h
6* ÄÚÈÝÕªÒª: Ö§³Å²ã¼à¿ØÄ£¿éÍ·Îļþ£¬ele±íʾelement
7* ʹÓ÷½·¨: #include "oss_monitor.h"
8*
9* ÐÞ¸ÄÈÕÆÚ °æ±¾ºÅ Ð޸ıê¼Ç ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
10* ------------------------------------------------------------------------------
11* 2012/09/20 V1.0 Create ÁõÑÇÄÏ ´´½¨
12*
13*******************************************************************************/
14
15#ifndef _OSS_MONITOR_H
16#define _OSS_MONITOR_H
17
18/*******************************************************************************
19* Í·Îļþ *
20*******************************************************************************/
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26/*******************************************************************************
27* ºê¶¨Òå *
28*******************************************************************************/
29#define OSS_MON_PERCENT_RADIO 100
30
31/*¼à¿ØÐÅÏ¢×î´óÖµ*/
32#define OSS_MON_INFO_MAX_NUMBER (0x64)
33
34/*Ïß³Ì״̬ */
35#define OSS_MON_THREAD_RUNNING (0x01)
36#define OSS_MON_THREAD_READY (0x02)
37#define OSS_MON_THREAD_WAITING (0x04)
38
39/*ÈÎÎñ״̬ */
40#define OSS_MON_TASK_STOPPED (0x01)
41#define OSS_MON_TASK_IDLE (0x02)
42#define OSS_MON_TASK_READY (0x03)
43#define OSS_MON_TASK_RUN (0x04)
44
45/*¼à¿ØÏ̺߳ÍDSRµÄ¹ì¼£ */
46#define OSS_MON_EVENT_THREAD_SWAPIN (0x00)
47#define OSS_MON_EVENT_THREAD_SWAPOUT (0x01)
48#define OSS_MON_EVENT_DSR_SWAPIN (0x02)
49#define OSS_MON_EVENT_DSR_SWAPOUT (0x03)
50
51/*MMUµÄÊôÐÔ*/
52#define OSS_MON_MMU_PERMISSION_RW (0x01)
53#define OSS_MON_MMU_PERMISSION_RO (0x02)
54#define OSS_MON_MMU_ACCESS_WRITEBACK (0x04)
55#define OSS_MON_MMU_ACCESS_WRITETHROUGH (0x08)
56
57/*¼à¿Ø¿ª¹Ø±êÖ¾*/
58#define OSS_MON_FLAG_OFF (0x0)
59#define OSS_MON_FLAG_ON (0x1)
60
61/*ÏûÏ¢¶¨ÒåÀàÐÍ*/
62#define OSS_MON_INVALID (-1)
63#define OSS_MON_BASE (0x00)
64#define OSS_MON_VERSION (OSS_MON_BASE + 0)
65#define OSS_MON_CPU_FREQUENCY (OSS_MON_BASE + 1)
66#define OSS_MON_CPU_LOAD (OSS_MON_BASE + 2)
67#define OSS_MON_POOL (OSS_MON_BASE + 3)
68#define OSS_MON_POOL_ALLOC (OSS_MON_BASE + 4)
69#define OSS_MON_POOL_LEAK (OSS_MON_BASE + 5)
70#define OSS_MON_HEAP (OSS_MON_BASE + 6)
71#define OSS_MON_THREAD (OSS_MON_BASE + 7)
72#define OSS_MON_TASK (OSS_MON_BASE + 8)
73#define OSS_MON_EVENT (OSS_MON_BASE + 9)
74#define OSS_MON_MSG (OSS_MON_BASE + 10)
75#define OSS_MON_RAMLOG (OSS_MON_BASE + 11)
76#define OSS_MON_GET_VAR_REQ (OSS_MON_BASE + 12)
77#define OSS_MON_GET_VAR_ACK (OSS_MON_BASE + 13)
78#define OSS_MON_SET_VAR (OSS_MON_BASE + 14)
79#define OSS_MON_TIMER (OSS_MON_BASE + 15)
80#define OSS_MON_MMU (OSS_MON_BASE + 16)
81#define OSS_MON_SET_FLAG (OSS_MON_BASE + 17)
82
83/*******************************************************************************
84* Êý¾ÝÀàÐͶ¨Òå *
85*******************************************************************************/
86/*¼à¿Ø°æ±¾*/
87typedef struct
88{
89 const CHAR *version;
90} T_ZOss_Mon_Version;
91
92/*cpu µÄÖ÷Ƶ*/
93typedef struct
94{
95 UINT16 frequency;
96} T_ZOss_Mon_Cpu_Frequency;
97
98/*cpu ¸ºÔØ (load/100)*/
99typedef struct
100{
101 UINT16 load;
102} T_ZOss_Mon_Cpu_Load;
103
104/*pool ÅäÖÃÐÅÏ¢*/
105typedef struct
106{
107 UINT32 size;
108 UINT32 total;
109 UINT32 used;
110 UINT32 max_used;
111} T_ZOss_Mon_Pool_Ele;
112
113typedef struct
114{
115 UINT32 num;
116 T_ZOss_Mon_Pool_Ele *ele;
117} T_ZOss_Mon_Pool;
118
119/*pool alloc ÐÅÏ¢*/
120typedef struct
121{
122 UINT32 addr;
123 UINT32 owner;
124 UINT32 timestamp;
125 const CHAR *file;
126 UINT32 line;
127} T_ZOss_Mon_Pool_Alloc_Ele;
128
129typedef struct
130{
131 UINT32 num;
132 T_ZOss_Mon_Pool_Alloc_Ele *ele;
133} T_ZOss_Mon_Pool_Alloc;
134
135/*pool leak ÐÅÏ¢*/
136typedef struct
137{
138 UINT32 addr;
139 UINT32 owner;
140 UINT32 timestamp;
141 const CHAR *file;
142 UINT32 line;
143} T_ZOss_Mon_Pool_Leak_Ele;
144
145typedef struct
146{
147 UINT32 num;
148 T_ZOss_Mon_Pool_Leak_Ele *ele;
149} T_ZOss_Mon_Pool_Leak;
150
151/*heap ÐÅÏ¢*/
152typedef struct
153{
154 UINT32 base;
155 UINT32 size;
156 UINT32 used;
157} T_ZOss_Mon_Heap;
158
159/*Ïß³ÌÐÅÏ¢*/
160typedef struct
161{
162 CHAR *name;
163 UINT32 handle;
164 UINT32 msg_num;
165 UINT8 status;
166 UINT8 priority;
167 UINT16 stack_used;
168 UINT16 stack_max_used;
169 UINT16 cpu_load;
170} T_ZOss_Mon_Thread_Ele;
171
172typedef struct
173{
174 unsigned int num;
175 T_ZOss_Mon_Thread_Ele *ele;
176} T_ZOss_Mon_Thread;
177
178/*ÈÎÎñÐÅÏ¢*/
179typedef struct
180{
181 CHAR *name;
182 UINT32 handle;
183 UINT32 thread_handle;
184 UINT8 status;
185} T_ZOss_Mon_Task_Ele;
186
187typedef struct
188{
189 UINT32 num;
190 T_ZOss_Mon_Task_Ele *ele;
191} T_ZOss_Mon_Task;
192
193/*Ï̺߳ÍÖжϹ켣ÐÅÏ¢*/
194typedef struct
195{
196 UINT8 event;
197 CHAR *name;
198 UINT32 handle;
199 UINT64 tickstamp;
200} T_ZOss_Mon_Event_Ele;
201
202typedef struct
203{
204 UINT32 num;
205 T_ZOss_Mon_Event_Ele *ele;
206} T_ZOss_Mon_Event;
207
208/*ÏûÏ¢ÊÕ·¢ÐÅÏ¢*/
209typedef struct
210{
211 UINT32 msgId;
212 UINT32 ptr;
213 UINT32 size;
214 CHAR *sender;
215 CHAR *receiver;
216 UINT32 timestamp;
217} T_ZOss_Mon_Msg_Ele;
218
219typedef struct
220{
221 UINT32 num;
222 T_ZOss_Mon_Msg_Ele *ele;
223} T_ZOss_Mon_Msg;
224
225/*ramlog ÐÅÏ¢*/
226typedef struct
227{
228 UINT32 size;
229 const CHAR *ramlog;
230} T_ZOss_Mon_Ramlog;
231
232/*»ñÈ¡±äÁ¿ÇëÇó*/
233typedef struct
234{
235 UINT32 base;
236 UINT32 size;
237} T_ZOss_Mon_Get_Var_Req;
238
239/*»ñÈ¡±äÁ¿È·ÈÏÐÅÏ¢*/
240typedef struct
241{
242 UINT32 size;
243 UINT8 *value;
244} T_ZOss_Mon_Get_Var_Ack;
245
246/*ÉèÖñäÁ¿*/
247typedef struct
248{
249 UINT32 base;
250 UINT32 size;
251 UINT8 *value;
252} T_ZOss_Mon_Set_Var;
253
254/*¶¨Ê±Æ÷ÐÅÏ¢*/
255typedef struct
256{
257 UINT32 start_time;
258 UINT32 expire_time;
259 UINT32 callback_func;
260 UINT8 is_period;
261 UINT32 handle;
262} T_ZOss_Mon_Timer_Ele;
263
264typedef struct
265{
266 UINT32 num;
267 T_ZOss_Mon_Timer_Ele *ele;
268} T_ZOss_Mon_Timer;
269
270/*MMU ÐÅÏ¢*/
271typedef struct
272{
273 CHAR *name;
274 UINT32 vir_addr;
275 UINT32 phy_addr;
276 UINT32 size;
277 UINT8 attr; /* permission and access */
278} T_ZOss_Mon_Mmu_Ele;
279
280typedef struct
281{
282 UINT32 num;
283 T_ZOss_Mon_Mmu_Ele *ele;
284} T_ZOss_Mon_Mmu;
285
286/*MPU ÐÅÏ¢*/
287typedef struct
288{
289 CHAR *name;
290 UINT32 num;
291 UINT32 base;
292 UINT32 size;
293 UINT32 attr;
294 UINT32 subRegion;
295} T_ZOss_Mon_Mpu_Ele;
296
297typedef struct
298{
299 UINT32 num;
300 T_ZOss_Mon_Mpu_Ele *ele;
301} T_ZOss_Mon_Mpu;
302
303typedef struct
304{
305 UINT32 flag;
306} T_ZOss_Mon_Set_Flag;
307
308/*******************************************************************************
309* È«¾Ö±äÁ¿ÉùÃ÷ *
310*******************************************************************************/
311#ifdef _USE_MONITOR
312extern UINT32 gOsa_MonitorFlag;
313#endif
314
315/*******************************************************************************
316* È«¾Öº¯ÊýÉùÃ÷ *
317*******************************************************************************/
318/* TOS¸ú×ÙÄ£¿é */
319VOID zTos_GetMmuConfigTable(T_ZOss_Mon_Mmu *pMonMmuInfo);
320VOID pool_used_info(T_ZOss_Mon_Pool *pMonPoolInfo);
321VOID pool_alloc_info(T_ZOss_Mon_Pool_Alloc *pMonPoolAllocInfo);
322VOID pool_leak_info(T_ZOss_Mon_Pool_Leak *pMonPoolLeakInfo);
323VOID z0ss_GetMsgInfo(T_ZOss_Mon_Msg *pMonMsgInfo);
324VOID z0ss_GetEventInfo(T_ZOss_Mon_Event *pMonEventInfo);
325VOID zOss_GetAllTaskInfo(T_ZOss_Mon_Task *pMonTaskInfo);
326VOID z0ss_GetAllThreadInfo(T_ZOss_Mon_Thread *pMonThreadInfo);
327VOID zOss_GetTimerInfo(T_ZOss_Mon_Timer *pMonTimerInfo);
328VOID z0ss_GetRamlogInfo(T_ZOss_Mon_Ramlog *pMonRamlogInfo);
329VOID z0ss_GetHeapInfo(T_ZOss_Mon_Heap *pMonHeapInfo);
330
331#ifdef __cplusplus
332}
333#endif
334
335#endif // #ifndef _OSS_MONITOR_H
336