zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/plat/inc/oss/oss_monitor.h b/cp/ps/plat/inc/oss/oss_monitor.h
new file mode 100644
index 0000000..861ddf1
--- /dev/null
+++ b/cp/ps/plat/inc/oss/oss_monitor.h
@@ -0,0 +1,336 @@
+/*******************************************************************************

+* °æÈ¨ËùÓÐ (C)2012, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£

+* 

+* ÎļþÃû³Æ:     oss_monitor.h

+* Îļþ±êʶ:     oss_monitor.h

+* ÄÚÈÝÕªÒª:     Ö§³Å²ã¼à¿ØÄ£¿éÍ·Îļþ£¬ele±íʾelement

+* ʹÓ÷½·¨:     #include "oss_monitor.h"

+* 

+* ÐÞ¸ÄÈÕÆÚ        °æ±¾ºÅ      Ð޸ıê¼Ç        ÐÞ¸ÄÈË          ÐÞ¸ÄÄÚÈÝ

+* ------------------------------------------------------------------------------

+* 2012/09/20      V1.0        Create          ÁõÑÇÄÏ          ´´½¨

+* 

+*******************************************************************************/

+

+#ifndef _OSS_MONITOR_H

+#define _OSS_MONITOR_H

+

+/*******************************************************************************

+*                                   Í·Îļþ                                     *

+*******************************************************************************/

+

+#ifdef __cplusplus

+extern "C" {

+#endif

+

+/*******************************************************************************

+*                                   ºê¶¨Òå                                     *

+*******************************************************************************/

+#define OSS_MON_PERCENT_RADIO           100    

+

+/*¼à¿ØÐÅÏ¢×î´óÖµ*/

+#define OSS_MON_INFO_MAX_NUMBER         (0x64)

+

+/*Ïß³Ì״̬ */

+#define OSS_MON_THREAD_RUNNING          (0x01)

+#define OSS_MON_THREAD_READY            (0x02)

+#define OSS_MON_THREAD_WAITING          (0x04)

+

+/*ÈÎÎñ״̬ */

+#define OSS_MON_TASK_STOPPED            (0x01)

+#define OSS_MON_TASK_IDLE               (0x02)

+#define OSS_MON_TASK_READY              (0x03)

+#define OSS_MON_TASK_RUN                (0x04)

+

+/*¼à¿ØÏ̺߳ÍDSRµÄ¹ì¼£ */

+#define OSS_MON_EVENT_THREAD_SWAPIN     (0x00) 

+#define OSS_MON_EVENT_THREAD_SWAPOUT    (0x01)

+#define OSS_MON_EVENT_DSR_SWAPIN        (0x02)

+#define OSS_MON_EVENT_DSR_SWAPOUT       (0x03)

+

+/*MMUµÄÊôÐÔ*/

+#define OSS_MON_MMU_PERMISSION_RW       (0x01)

+#define OSS_MON_MMU_PERMISSION_RO       (0x02)

+#define OSS_MON_MMU_ACCESS_WRITEBACK    (0x04)

+#define OSS_MON_MMU_ACCESS_WRITETHROUGH (0x08)

+

+/*¼à¿Ø¿ª¹Ø±êÖ¾*/

+#define OSS_MON_FLAG_OFF                (0x0)

+#define OSS_MON_FLAG_ON                 (0x1)

+

+/*ÏûÏ¢¶¨ÒåÀàÐÍ*/

+#define OSS_MON_INVALID                 (-1)

+#define OSS_MON_BASE                    (0x00)

+#define OSS_MON_VERSION                 (OSS_MON_BASE + 0)

+#define OSS_MON_CPU_FREQUENCY           (OSS_MON_BASE + 1)

+#define OSS_MON_CPU_LOAD                (OSS_MON_BASE + 2)

+#define OSS_MON_POOL                    (OSS_MON_BASE + 3)

+#define OSS_MON_POOL_ALLOC              (OSS_MON_BASE + 4)

+#define OSS_MON_POOL_LEAK               (OSS_MON_BASE + 5)

+#define OSS_MON_HEAP                    (OSS_MON_BASE + 6)

+#define OSS_MON_THREAD                  (OSS_MON_BASE + 7)

+#define OSS_MON_TASK                    (OSS_MON_BASE + 8)

+#define OSS_MON_EVENT                   (OSS_MON_BASE + 9)

+#define OSS_MON_MSG                     (OSS_MON_BASE + 10)

+#define OSS_MON_RAMLOG                  (OSS_MON_BASE + 11)

+#define OSS_MON_GET_VAR_REQ             (OSS_MON_BASE + 12)

+#define OSS_MON_GET_VAR_ACK             (OSS_MON_BASE + 13)

+#define OSS_MON_SET_VAR                 (OSS_MON_BASE + 14)

+#define OSS_MON_TIMER                   (OSS_MON_BASE + 15)

+#define OSS_MON_MMU                     (OSS_MON_BASE + 16)

+#define OSS_MON_SET_FLAG                (OSS_MON_BASE + 17)

+

+/*******************************************************************************

+*                                Êý¾ÝÀàÐͶ¨Òå                                  *

+*******************************************************************************/

+/*¼à¿Ø°æ±¾*/

+typedef struct

+{

+    const CHAR *version;

+} T_ZOss_Mon_Version;

+

+/*cpu µÄÖ÷Ƶ*/

+typedef struct

+{

+    UINT16  frequency;

+} T_ZOss_Mon_Cpu_Frequency;

+

+/*cpu ¸ºÔØ (load/100)*/

+typedef struct

+{

+    UINT16  load;

+} T_ZOss_Mon_Cpu_Load;

+

+/*pool ÅäÖÃÐÅÏ¢*/

+typedef struct

+{

+    UINT32  size;

+    UINT32  total;

+    UINT32  used;

+    UINT32  max_used;

+} T_ZOss_Mon_Pool_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Pool_Ele *ele;

+} T_ZOss_Mon_Pool;

+

+/*pool alloc ÐÅÏ¢*/

+typedef struct

+{

+    UINT32      addr;

+    UINT32      owner;

+    UINT32      timestamp;

+    const CHAR *file;

+    UINT32      line;

+} T_ZOss_Mon_Pool_Alloc_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Pool_Alloc_Ele *ele;

+} T_ZOss_Mon_Pool_Alloc;

+

+/*pool leak ÐÅÏ¢*/

+typedef struct

+{

+    UINT32      addr;

+    UINT32      owner;

+    UINT32      timestamp;

+    const CHAR  *file;

+    UINT32      line;

+} T_ZOss_Mon_Pool_Leak_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Pool_Leak_Ele *ele;

+} T_ZOss_Mon_Pool_Leak;

+

+/*heap ÐÅÏ¢*/

+typedef struct

+{

+    UINT32  base;

+    UINT32  size;

+    UINT32  used;

+} T_ZOss_Mon_Heap;

+

+/*Ïß³ÌÐÅÏ¢*/

+typedef struct

+{

+    CHAR    *name;

+    UINT32  handle;

+    UINT32  msg_num;

+    UINT8   status;

+    UINT8   priority;

+    UINT16  stack_used;

+    UINT16  stack_max_used;

+    UINT16  cpu_load;

+} T_ZOss_Mon_Thread_Ele;

+

+typedef struct

+{

+    unsigned int num;

+    T_ZOss_Mon_Thread_Ele *ele;

+} T_ZOss_Mon_Thread;

+

+/*ÈÎÎñÐÅÏ¢*/

+typedef struct

+{

+    CHAR    *name;

+    UINT32  handle;

+    UINT32  thread_handle;

+    UINT8   status;

+} T_ZOss_Mon_Task_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Task_Ele *ele;

+} T_ZOss_Mon_Task;

+

+/*Ï̺߳ÍÖжϹ켣ÐÅÏ¢*/

+typedef struct

+{

+    UINT8   event;

+    CHAR    *name;

+    UINT32  handle;

+    UINT64  tickstamp;

+} T_ZOss_Mon_Event_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Event_Ele *ele;

+} T_ZOss_Mon_Event;

+

+/*ÏûÏ¢ÊÕ·¢ÐÅÏ¢*/

+typedef struct

+{   

+    UINT32  msgId;

+    UINT32  ptr;

+    UINT32  size;

+    CHAR    *sender;

+    CHAR    *receiver;

+    UINT32  timestamp;

+} T_ZOss_Mon_Msg_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Msg_Ele  *ele;

+} T_ZOss_Mon_Msg;

+

+/*ramlog ÐÅÏ¢*/

+typedef struct

+{   

+    UINT32  size;

+    const CHAR *ramlog;

+} T_ZOss_Mon_Ramlog;

+

+/*»ñÈ¡±äÁ¿ÇëÇó*/

+typedef struct

+{

+    UINT32  base;

+    UINT32  size;

+} T_ZOss_Mon_Get_Var_Req;

+

+/*»ñÈ¡±äÁ¿È·ÈÏÐÅÏ¢*/

+typedef struct

+{

+    UINT32  size;

+    UINT8   *value;

+} T_ZOss_Mon_Get_Var_Ack;

+

+/*ÉèÖñäÁ¿*/

+typedef struct

+{

+    UINT32  base;

+    UINT32  size;

+    UINT8   *value;

+} T_ZOss_Mon_Set_Var;

+

+/*¶¨Ê±Æ÷ÐÅÏ¢*/

+typedef struct

+{

+    UINT32  start_time;

+    UINT32  expire_time;

+    UINT32  callback_func;

+    UINT8   is_period;

+    UINT32  handle;

+} T_ZOss_Mon_Timer_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Timer_Ele *ele;

+} T_ZOss_Mon_Timer;

+

+/*MMU ÐÅÏ¢*/

+typedef struct

+{

+    CHAR    *name;

+    UINT32  vir_addr;

+    UINT32  phy_addr;

+    UINT32  size;

+    UINT8   attr; /* permission and access */

+} T_ZOss_Mon_Mmu_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Mmu_Ele *ele;

+} T_ZOss_Mon_Mmu;

+

+/*MPU ÐÅÏ¢*/

+typedef struct

+{

+    CHAR   *name;

+    UINT32 num;

+    UINT32 base;

+    UINT32 size;

+    UINT32 attr;

+    UINT32 subRegion;

+} T_ZOss_Mon_Mpu_Ele;

+

+typedef struct

+{

+    UINT32  num;

+    T_ZOss_Mon_Mpu_Ele *ele;

+} T_ZOss_Mon_Mpu;

+

+typedef struct

+{

+    UINT32  flag;

+} T_ZOss_Mon_Set_Flag;

+

+/*******************************************************************************

+*                                È«¾Ö±äÁ¿ÉùÃ÷                                  *

+*******************************************************************************/

+#ifdef _USE_MONITOR

+extern UINT32   gOsa_MonitorFlag;

+#endif

+

+/*******************************************************************************

+*                                È«¾Öº¯ÊýÉùÃ÷                                  *

+*******************************************************************************/

+/* TOS¸ú×ÙÄ£¿é */

+VOID zTos_GetMmuConfigTable(T_ZOss_Mon_Mmu *pMonMmuInfo);

+VOID pool_used_info(T_ZOss_Mon_Pool *pMonPoolInfo);

+VOID pool_alloc_info(T_ZOss_Mon_Pool_Alloc *pMonPoolAllocInfo);

+VOID pool_leak_info(T_ZOss_Mon_Pool_Leak *pMonPoolLeakInfo);

+VOID z0ss_GetMsgInfo(T_ZOss_Mon_Msg *pMonMsgInfo);

+VOID z0ss_GetEventInfo(T_ZOss_Mon_Event *pMonEventInfo);

+VOID zOss_GetAllTaskInfo(T_ZOss_Mon_Task *pMonTaskInfo);

+VOID z0ss_GetAllThreadInfo(T_ZOss_Mon_Thread *pMonThreadInfo);

+VOID zOss_GetTimerInfo(T_ZOss_Mon_Timer *pMonTimerInfo);

+VOID z0ss_GetRamlogInfo(T_ZOss_Mon_Ramlog *pMonRamlogInfo);

+VOID z0ss_GetHeapInfo(T_ZOss_Mon_Heap *pMonHeapInfo);

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif // #ifndef _OSS_MONITOR_H

+