zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/plat/src/oss/sup/inc/ramdump_arch.h b/cp/ps/plat/src/oss/sup/inc/ramdump_arch.h
new file mode 100644
index 0000000..fe5fca7
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/ramdump_arch.h
@@ -0,0 +1,48 @@
+/*******************************************************************************
+* °æÈ¨ËùÓÐ (C)2016, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+* 
+* ÎļþÃû³Æ:     ramdump_arch.h
+* Îļþ±êʶ:     ramdump_arch.h
+* ÄÚÈÝÕªÒª:     ramdump´¦ÀíÆ÷Ïà¹Ø½Ó¿Ú/Êý¾Ý½á¹¹¶¨ÒåÍ·Îļþ
+* ʹÓ÷½·¨:     
+* 
+* ÐÞ¸ÄÈÕÆÚ        °æ±¾ºÅ      Ð޸ıê¼Ç        ÐÞ¸ÄÈË          ÐÞ¸ÄÄÚÈÝ
+* ------------------------------------------------------------------------------
+* 2016/3/10      V1.0        Create           ÕÔ¾ü¿ü          ´´½¨
+* 
+*******************************************************************************/
+
+#ifndef _RAMDUMP_ARCH_H
+#define _RAMDUMP_ARCH_H
+
+/*******************************************************************************
+*                                   Í·Îļþ                                     *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                Íⲿº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                   ºê¶¨Òå                                     *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                Êý¾ÝÀàÐͶ¨Òå                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                È«¾Ö±äÁ¿ÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                È«¾Öº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+extern void ramdump_arch_clean_caches(void);
+extern void ramdump_arch_clean_and_invalid_caches(void);
+extern char *ramdump_arch_store_modes_regs(char *mem);
+extern char *ramdump_arch_store_mm_regs(char *mem);
+extern void ramdump_arch_save_all_regs(void);
+
+#endif  //#ifndef _RAMDUMP_ARCH_H
+
diff --git a/cp/ps/plat/src/oss/sup/inc/ramdump_collect_server.h b/cp/ps/plat/src/oss/sup/inc/ramdump_collect_server.h
new file mode 100644
index 0000000..2fea030
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/ramdump_collect_server.h
@@ -0,0 +1,51 @@
+/*******************************************************************************
+* °æÈ¨ËùÓÐ (C)2016, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+* 
+* ÎļþÃû³Æ:     ramdump_collect_server.h
+* Îļþ±êʶ:     ramdump_collect_server.h
+* ÄÚÈÝÕªÒª:     ramdump collect server¶ÔÍâ½Ó¿ÚÍ·Îļþ
+* ʹÓ÷½·¨:     
+* 
+* ÐÞ¸ÄÈÕÆÚ        °æ±¾ºÅ      Ð޸ıê¼Ç        ÐÞ¸ÄÈË          ÐÞ¸ÄÄÚÈÝ
+* ------------------------------------------------------------------------------
+* 2016/3/10      V1.0        Create           ÕÔ¾ü¿ü          ´´½¨
+* 
+*******************************************************************************/
+
+#ifndef _RAMDUMP_COLLECT_SERVER_H
+#define _RAMDUMP_COLLECT_SERVER_H
+
+/*******************************************************************************
+*                                   Í·Îļþ                                     *
+*******************************************************************************/
+#include "ramdump_pub.h"
+
+/*******************************************************************************
+*                                Íⲿº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                   ºê¶¨Òå                                     *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                Êý¾ÝÀàÐͶ¨Òå                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                È«¾Ö±äÁ¿ÉùÃ÷                                  *
+*******************************************************************************/
+/* first except cpu id */
+extern unsigned long ramdump_except_cpu_id;
+/*******************************************************************************
+*                                È«¾Öº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+extern int ramdump_collect_server_icp_init(void);
+extern void ramdump_collect_server_notify_clients_dump(void);
+extern void ramdump_get_collect_server_ram_conf(
+                ramdump_ram_config_sync_msg_t *msg);
+extern unsigned long * ramdump_get_first_dump_cpu_id(void);
+extern unsigned long * ramdump_get_client_init_rsp(void);
+
+#endif  //#ifndef _RAMDUMP_COLLECT_SERVER_H
+
diff --git a/cp/ps/plat/src/oss/sup/inc/ramdump_oss.h b/cp/ps/plat/src/oss/sup/inc/ramdump_oss.h
new file mode 100644
index 0000000..a208fd9
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/ramdump_oss.h
@@ -0,0 +1,149 @@
+/*******************************************************************************
+* °æÈ¨ËùÓÐ (C)2016, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+* 
+* ÎļþÃû³Æ:     ramdump_oss.h
+* Îļþ±êʶ:     ramdump_oss.h
+* ÄÚÈÝÕªÒª:     ramdump²Ù×÷ϵͳÒÀÀµ½Ó¿Ú/Êý¾Ý½á¹¹¶¨ÒåÍ·Îļþ
+* ʹÓ÷½·¨:     
+* 
+* ÐÞ¸ÄÈÕÆÚ        °æ±¾ºÅ      Ð޸ıê¼Ç        ÐÞ¸ÄÈË          ÐÞ¸ÄÄÚÈÝ
+* ------------------------------------------------------------------------------
+* 2016/3/10      V1.0        Create           ÕÔ¾ü¿ü          ´´½¨
+* 
+*******************************************************************************/
+
+#ifndef _RAMDUMP_OSS_H
+#define _RAMDUMP_OSS_H
+
+/*******************************************************************************
+*                                   Í·Îļþ                                     *
+*******************************************************************************/
+#include "ramdump_pub.h"
+
+#ifdef _OS_LINUX 
+#include <linux/soc/zte/rpm/rpmsg.h>
+#include <asm/io.h>
+#include <asm/current.h>
+#include <linux/string.h>
+#include <linux/sched.h>
+#include <asm/memory.h>
+#include <linux/irqflags.h>
+#include <asm/setup.h>
+#include <linux/kthread.h>
+#include <linux/bug.h>
+#include <linux/kernel.h>
+#include <asm/barrier.h>
+#include <asm/outercache.h>
+#elif defined (_OS_TOS)
+#include "oss_api.h"
+#include "drvs_rpmsg.h"
+#include "drvs_usbPoll.h"
+#include "drvs_icp.h"
+#include "ps_ephy_interface.h"
+#include "drv_api.h"
+#include <cyg/hal/tos_arm_mmu.h>
+#include <cyg/hal/tos_cache.h>
+#include "rpmsg_channel.h"
+#endif
+
+/*******************************************************************************
+*                                   ºê¶¨Òå                                     *
+*******************************************************************************/
+#define OSS_MMAP(addr,size) ramdump_oss_mmap(addr,size)
+
+#ifdef _OS_LINUX
+
+#define OSS_PANIC(val)      panic(val)
+#define OSS_LOCK(flag)      local_irq_disable()
+#define OSS_UNLOCK(flag)    local_irq_enable()
+#define OSS_SLEEP(val)      msleep(val)
+
+#define OSS_PHY_TO_VIRT(addr) phys_to_virt(addr)
+#define OSS_VIRT_TO_PHY(addr) virt_to_phys(addr)
+#define OSS_PHY_TO_PFN(addr)  __phys_to_pfn(addr)
+#define OSS_PFN_VALID(pfn)    pfn_valid(pfn)
+
+/*
+ * to make sure ramdump init after icp device init
+ */
+#define OSS_INIT(fn) late_initcall(fn)
+#define OSS_PRINTF printk
+
+#elif defined (_OS_TOS)
+
+#define OSS_PANIC(val)                  zOss_ASSERT(0)
+#define OSS_LOCK(flag)                  ZOSS_SAVE_IRQ(flag)
+#define OSS_UNLOCK(flag)                ZOSS_RESTORE_IRQ(flag)
+#define OSS_SLEEP(val)                  zOss_Sleep(val)
+#define OSS_CREATE_THREAD(name,entry)   ramdump_oss_create_thread(name,entry)
+#define OSS_PHY_TO_VIRT(addr)           (addr)
+
+#define OSS_INIT(fn)
+#define OSS_PRINTF(fmt...) zOss_Printf(SUBMDL_TEST, PRINT_LEVEL_NORMAL, fmt)
+
+#endif //#ifdef _OS_LINUX 
+
+/*******************************************************************************
+*                                Êý¾ÝÀàÐͶ¨Òå                                  *
+*******************************************************************************/
+typedef ramdump_msg_t ramdump_oss_msg_t;
+
+#ifdef _OS_LINUX 
+
+typedef T_ZDrvRpMsg_ActorID ramdump_oss_icp_actorid;
+typedef T_ZDrvRpMsg_ChID ramdump_oss_icp_channelid;
+typedef T_ZDrvRpMsg_CallbackFunction ramdump_oss_icp_callback;
+typedef T_ZDrvRpMsg_Msg ramdump_oss_icp_msg;
+typedef void (*ramdump_oss_thread_entry_t)(unsigned long arg);
+
+#elif defined (_OS_TOS) //#ifdef _OS_LINUX 
+
+typedef T_ZDrvRpMsg_MsgActor ramdump_oss_icp_actorid;
+typedef T_ZDrvRpMsg_ChID ramdump_oss_icp_channelid;
+typedef T_ZDrvRpMsg_CallbackFunction ramdump_oss_icp_callback;
+typedef T_ZDrvRpMsg_Msg ramdump_oss_icp_msg;
+typedef void (*ramdump_oss_thread_entry_t)(SINT32 arg);
+
+#endif //#ifdef _OS_LINUX 
+/*******************************************************************************
+*                                È«¾Ö±äÁ¿ÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                È«¾Öº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                È«¾Öº¯ÊýʵÏÖ                                  *
+*******************************************************************************/
+extern int ramdump_oss_icp_create_channel(
+            ramdump_oss_icp_actorid actorID, 
+            ramdump_oss_icp_channelid chID, 
+            unsigned int size);
+extern int ramdump_oss_icp_regcallback(
+            ramdump_oss_icp_actorid actorID, 
+            unsigned int chID, 
+            ramdump_oss_icp_callback callback);
+extern int ramdump_oss_icp_write(const ramdump_oss_icp_msg *pMsg);
+extern void ramdump_oss_data_trans_init(void);
+extern void ramdump_oss_data_trans_read (
+                unsigned char *buffer, 
+                unsigned int size);
+extern void ramdump_oss_data_trans_write(
+                unsigned char *buffer, 
+                unsigned int size);
+extern void ramdump_oss_data_trans_done(void);
+extern void ramdump_oss_error_log_creat(char *buf);
+extern int ramdump_oss_icp_send(
+            ramdump_oss_msg_t *icp_msg, 
+            unsigned int client_id,
+            unsigned int ch_id);
+extern void ramdump_oss_create_thread(
+                char *name, 
+                ramdump_oss_thread_entry_t entry);
+extern unsigned long ramdump_oss_mmap(
+                        unsigned long addr, 
+                        unsigned long size);
+
+#endif  //#ifndef _RAMDUMP_OSS_H
+
diff --git a/cp/ps/plat/src/oss/sup/inc/ramdump_pub.h b/cp/ps/plat/src/oss/sup/inc/ramdump_pub.h
new file mode 100644
index 0000000..9e9d769
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/ramdump_pub.h
@@ -0,0 +1,178 @@
+/*******************************************************************************
+* °æÈ¨ËùÓÐ (C)2016, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+* 
+* ÎļþÃû³Æ:     ramdump_pub.h
+* Îļþ±êʶ:     ramdump_pub.h
+* ÄÚÈÝÕªÒª:     ramdump¹«¹²Í·Îļþ
+* ʹÓ÷½·¨:     #include "ramdump_pub.h"
+* 
+* ÐÞ¸ÄÈÕÆÚ        °æ±¾ºÅ      Ð޸ıê¼Ç        ÐÞ¸ÄÈË          ÐÞ¸ÄÄÚÈÝ
+* ------------------------------------------------------------------------------
+* 2016/3/10      V1.0        Create           ÕÔ¾ü¿ü          ´´½¨
+* 
+*******************************************************************************/
+
+#ifndef _RAMDUMP_PUB_H
+#define _RAMDUMP_PUB_H
+
+/*******************************************************************************
+*                                   Í·Îļþ                                     *
+*******************************************************************************/
+#include "ramdump.h"
+#include "ramdump_arch.h"
+#include "ramdump_soc.h"
+
+/*******************************************************************************
+*                                Íⲿº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                   ºê¶¨Òå                                     *
+*******************************************************************************/
+#define RAMDUMP_SUCCESS (0)
+#define RAMDUMP_FAILED  (-1)
+
+#define RAMDUMP_ICP_SUCCESS (RAMDUMP_SUCCESS)
+#define RAMDUMP_ICP_FAILED  (RAMDUMP_FAILED)
+
+#define RAMDUMP_TRUE    (1)
+#define RAMDUMP_FALSE   (0)
+
+#define RAMDUMP_SYNC_RESET              (0x73787384) /* 73:I 78:N 73:I 84:T */
+#define RAMDUMP_SYNC_RAM_CONFIG_DONE    (0x68696576) /* 68:D 69:E 65:A 76:L */
+#define RAMDUMP_SYNC_RAM_CONTENT_DONE   (0x68797869) /* 68:D 79:O 78:N 69:E */
+
+#define RAMDUMP_ICP_MSG_DATA_RAMCONF_SIZE    (40)  //sizeof(ramdump_ram_conf_table_entry)
+#define RAMDUMP_RAMCONF_TABLE_MAX_ENTRYS  (RAMDUMP_RAMCONF_TABLE_MAXSIZE/RAMDUMP_ICP_MSG_DATA_RAMCONF_SIZE)
+
+/* adapt diff printf fun*/
+#define RAMDUMP_PRINTF OSS_PRINTF
+
+#define RAMDUMP_ARRAY_NR(arr) (sizeof(arr) / sizeof((arr)[0]))
+
+#define RAMDUMP_WAIT_TIMELEN (200) /* like before,just a value roughly */
+
+/*******************************************************************************
+*                                Êý¾ÝÀàÐͶ¨Òå                                  *
+*******************************************************************************/
+typedef unsigned long ramdump_msg_id_t;
+typedef unsigned long ramdump_cpu_id_t;
+typedef unsigned long *ramdump_client_done_flag_t;
+
+/*
+ * ICP MSG struct collect server with 
+ * clients and trans server.
+ */
+enum
+{
+    RAMDUMP_MSG_INIT_REQ,
+    RAMDUMP_MSG_INIT_RSP,
+    RAMDUMP_MSG_SYNC,
+    RAMDUMP_MSG_EXCEPT,
+};
+
+/* 
+ * ramdump client id 
+ * collect server : RAMDUMP_CPU_0
+ * trans server : RAMDUMP_CPU_1
+ * client1 : RAMDUMP_CPU_2
+ * client2 : RAMDUMP_CPU_3
+ */
+enum
+{
+/* 
+ * collect server/client0 : RAMDUMP_CPU_0
+ * trans server : RAMDUMP_CPU_1
+ * client1 : RAMDUMP_CPU_2
+ */
+    RAMDUMP_CPU_0,
+    RAMDUMP_CPU_1,
+    RAMDUMP_CPU_2,
+    RAMDUMP_CPU_MAX
+};
+
+/* client and server icp ram conf data */
+typedef struct
+{
+    char            name[RAMDUMP_RAMCONF_FILENAME_MAXLEN];
+    unsigned long   phy;
+    unsigned long   vir;
+    unsigned long   size;
+
+    unsigned long       flag;       /* RAMDUMP_FLAG_XXX         */
+    unsigned long       copy;       /* Copy destination address */
+    unsigned long       exter;      /* External address         */
+    ramdump_callback_t  callback;   /* Callback funtion         */
+} ramdump_ram_config_t;
+
+/* client and server icp init msg */
+typedef struct
+{
+    ramdump_ram_config_t        *array;
+    unsigned long               nr;
+    ramdump_client_done_flag_t  done_flag;
+} ramdump_ram_config_msg_t;
+
+/* collect to trans server icp msginfo */
+typedef struct
+{
+    ramdump_ram_config_msg_t    *array;
+    unsigned long               nr;
+} ramdump_ram_config_sync_msg_t;
+
+/* client and server message define */
+typedef struct
+{
+    ramdump_cpu_id_t    cpu_id;
+    ramdump_msg_id_t    msg_id;
+
+    union
+    {
+        ramdump_ram_config_msg_t        ram_config;
+        ramdump_ram_config_sync_msg_t   ram_config_sync;
+    } msg_data_t;
+} ramdump_msg_t;
+
+/*******************************************************************************
+*                                È«¾Ö±äÁ¿ÉùÃ÷                                  *
+*******************************************************************************/
+/* 
+ * ramdump assign id array, records the true cpu id value.
+ */
+extern unsigned long ramdump_cpu_id[RAMDUMP_CPU_MAX];
+extern unsigned long ramdump_cpu_ch[RAMDUMP_CPU_MAX];
+extern char *ramdump_cpu_name[RAMDUMP_CPU_MAX];
+
+/*******************************************************************************
+*                                È«¾Öº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                ÄÚÁªº¯ÊýʵÏÖ                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+* ¹¦ÄÜÃèÊö:     ramdump_wait_client_dump_delay
+* ²ÎÊý˵Ã÷:     
+*   (´«Èë²ÎÊý)  ms:   µÈ´ýMSÊý
+                addr: µØÖ·
+                flag: µÈ´ý±êÖ¾
+*   (´«³ö²ÎÊý)  
+* ·µ »Ø Öµ:     
+* ÆäËü˵Ã÷:     This function is used to delay certain seconds
+*******************************************************************************/
+static inline void ramdump_wait_done_delay(
+                        unsigned long           ms, 
+                        volatile unsigned long *addr, 
+                        unsigned long           flag)
+{
+    int j = 0;
+    int i = 0;
+    for (j = 0; j < RAMDUMP_DELAY_MS_COUNT; j++)
+        for (i = 0; i < ms; i++)
+            if (*addr == flag)
+                return;
+}
+
+#endif  //#ifndef _RAMDUMP_PUB_H
+
diff --git a/cp/ps/plat/src/oss/sup/inc/ramdump_soc.h b/cp/ps/plat/src/oss/sup/inc/ramdump_soc.h
new file mode 100644
index 0000000..dc4db7b
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/ramdump_soc.h
@@ -0,0 +1,79 @@
+/*******************************************************************************
+* °æÈ¨ËùÓÐ (C)2016, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+* 
+* ÎļþÃû³Æ:     ramdump_soc.h
+* Îļþ±êʶ:     ramdump_soc.h
+* ÄÚÈÝÕªÒª:     ramdump´¦ÀíÆ÷¾ßÌåÓ²¼þSOCƽ̨Ïà¹ØÍ·Îļþ£¬Æ½Ì¨¸ü»»ºóÐèÊÊÅä
+* ʹÓ÷½·¨:     
+* 
+* ÐÞ¸ÄÈÕÆÚ        °æ±¾ºÅ      Ð޸ıê¼Ç        ÐÞ¸ÄÈË          ÐÞ¸ÄÄÚÈÝ
+* ------------------------------------------------------------------------------
+* 2016/3/10      V1.0        Create           ÕÔ¾ü¿ü          ´´½¨
+* 
+*******************************************************************************/
+
+#ifndef _RAMDUMP_SOC_H
+#define _RAMDUMP_SOC_H
+
+/*******************************************************************************
+*                                   Í·Îļþ                                     *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                Íⲿº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                   ºê¶¨Òå                                     *
+*******************************************************************************/
+
+/* ramdump max file len, estimated */
+#define RAMDUMP_RAMCONF_FILENAME_MAXLEN (32)
+/* cpu name max len (string) */
+#define RAMDUMP_CPU_NAME_MAXLEN (RAMDUMP_RAMCONF_FILENAME_MAXLEN)
+/* 
+ * dump file table contens at least 60 item, 
+ * refer to all the ddr + iram + tcm sections in zx297520v2 chip menual,
+ * these sections are just what we can dump.
+ */
+#define RAMDUMP_RAMCONF_TABLE_MAXSIZE    (2400) /* 2k about, estimated */
+
+/* ramdump cmm scripts size, estimated */
+#define RAMDUMP_CMM_SIZE     (0x2000) /* 4K */
+
+/* ramdump cmm scripts size, estimated */
+#define RAMDUMP_ERROR_LOG_SIZE     (1024) 
+
+/* statics 2500 per ms, estimated */
+#define RAMDUMP_DELAY_MS_COUNT  (2500) 
+
+#ifdef __USE_RAMDUMP_TRANS_SERVER__
+/* ramdump channel number & size, estimated */
+#define RAMDUMP_CHANNEL_SIZE    (0x100) /* 4K */   //0x2000
+#define RAMDUMP_CHANNEL         (ICP_CHANNEL_RAMDUMP)
+
+/* zx297520V2 AP ram config */
+#define RAMDUMP_SERVER_DDR_BASE  (PLAT_PHYS_OFFSET) //(0x22000000) //TODO! ramconf.h
+#define RAMDUMP_SERVER_DDR_SIZE  (PLAT_PHYS_SIZE)
+
+#elif defined (__USE_RAMDUMP_CLIENT__)
+/* ramdump channel number & size, estimated */
+#define RAMDUMP_CHANNEL_SIZE    (0x100) /* 4K */ //0x2000
+#define RAMDUMP_CHANNEL         (RAMDUMP)
+
+#endif
+
+/*******************************************************************************
+*                                Êý¾ÝÀàÐͶ¨Òå                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                È«¾Ö±äÁ¿ÉùÃ÷                                  *
+*******************************************************************************/
+
+/*******************************************************************************
+*                                È«¾Öº¯ÊýÉùÃ÷                                  *
+*******************************************************************************/
+
+#endif  //#ifndef _RAMDUMP_SOC_H
+
diff --git a/cp/ps/plat/src/oss/sup/inc/sup.h b/cp/ps/plat/src/oss/sup/inc/sup.h
new file mode 100644
index 0000000..da4dc33
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup.h
@@ -0,0 +1,114 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

+***************************************************************************

+* Ä£ ¿é Ãû : P98C_OSS

+* ÎÄ ¼þ Ãû : sup.h

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : supÄÚ²¿Í·Îļþ,¶¨ÒåÄÚ²¿¸÷Ä£¿é¹«¹²Êý¾Ý½á¹¹µÈ

+* ×÷    Õß : hongkun

+* °æ    ±¾ : V1.0

+* Íê³ÉÈÕÆÚ : 2007-10-25

+* ÆäËü˵Ã÷ : 

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

+

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

+* Ð޸ļǼ

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

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

+* Ð޸ıàºÅ : 0001

+* ÐÞ ¸Ä ÈË : chenxingfang

+* ÐÞ¸ÄÈÕÆÚ : 2012-09-17

+* ÐÞ¸ÄÄÚÈÝ : ¸ñʽ¹æ·¶ºÍPC-LINT×ß²é EC:617001782014

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

+

+#ifndef _SUP_H

+#define _SUP_H

+

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

+* #includeÇø

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

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

+* ºê¶¨ÒåÇø

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

+#define CHANNEL_CFG_NUM                 30

+

+#define SUP_THREAD_LIVE_BIT             1

+#define SUP_THREAD_LAZY_BIT             2

+#define SUP_THREAD_STATISTIC_INFO_BIT   4

+

+#ifdef _OS_TOS

+#define TOS_STATISTIC_TIMESLICE

+#endif

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+/* ÄÚ´æ¹ÜÀíÄ£¿é */

+typedef struct 

+{

+    T_ZOss_Node     node;               /* Á´±í¿ØÖƽṹ     */

+    VOID            *mem;               /* ÄÚ´æÖ¸Õë         */

+    UINT32          mem_size;           /* ÄÚ´æ´óС         */

+    CHAR            name[12];           /* ÉêÇëλÖÃÎļþ     */

+    UINT32          line;               /* ÉêÇëλÖÃÐкŠ    */

+    ZOSS_THREAD_ID  thread_id;          /* ÉêÇëÏ̺߳Š      */

+    ZOSS_TASK_ID    task_id;            /* ÉêÇëÈÎÎñºÅ       */

+    UINT32          apply_time_tick;    /* ÉêÇëʱ¼ä(TICK)   */

+}T_Mem_MemNodeInfo;                     /* ϵͳÄÚ´æÐÅÏ¢     */

+

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

+* º¯ÊýÉùÃ÷Çø

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

+UINT32 TIMER_Init(VOID);

+UINT32 TEST_Init(VOID);

+UINT32 PSM_Init(VOID);

+UINT32 NV_Init(VOID);

+#ifdef TOS_STATISTIC_TIMESLICE

+void zOss_StatisticTimesliceStart(UINT32 time_len, UINT32 type);

+#endif

+/*ÈÎÎñ¹ÜÀíÄ£¿é */

+UINT32 SCHE_Init(VOID);

+UINT32 zOss_TaskSendDataEx(T_ZOss_TaskMsgHead *buf);

+UINT32 Sche_TaskSend(UINT32 msg_id, VOID *buf, UINT16 msg_len, ZOSS_TASK_ID s_task_id, ZOSS_TASK_ID t_task_id);

+UINT32 Sche_TaskSendData(UINT32 msg_id, VOID *buf, UINT16 msg_len, ZOSS_TASK_ID s_task_id, ZOSS_TASK_ID t_task_id);

+UINT32 Sche_InterruptTaskSend(UINT32 msg_id, T_ZOss_TaskMsgHead *pMsg, UINT16 msg_len, ZOSS_TASK_ID task_id);

+VOID *Sche_getBufPoint(T_ZOss_TaskMsgHead *phead);

+UINT32 Sche_getBufLength(T_ZOss_TaskMsgHead *phead);

+UINT32 Sche_DeadLoop(ZOSS_TASK_ID *task_id_arr);

+

+/* ÄÚ´æ¹ÜÀíÄ£¿é */

+UINT32 MEM_Init(VOID);

+VOID FS_Init(VOID);

+UINT32 Mem_GetSysMemDebugInfo(T_ZOss_List *mem_debug_info_lst);

+UINT32 Mem_GetUBUseInfo(T_Mem_UBPoolGrpInfo *ub_pool_grp_info, UINT8 num);

+UINT32 Mem_CheckUBLeak(T_Mem_UBLeakInfo *ub_leak_info, UINT32 ub_leak_time, UINT8 poolNum, UINT32 size);

+UINT32 Mem_ThreadUBInfo(ZOSS_THREAD_ID threadId, T_Mem_UBBlockInfo *threadUbInfo, UINT32 num, UINT8 poolNum);

+UINT32 Mem_TaskUBInfo(ZOSS_TASK_ID taskId, T_Mem_UBBlockInfo *taskUbInfo, UINT32 num, UINT8 poolNum);

+

+/* Òì³£¹ÜÀíÄ£¿é */

+UINT32 EXCEP_Init(VOID);

+VOID Excep_DaemonTask(UINT8 state, UINT32 msg_id, UINT8 *buf, UINT16 msg_len, UINT8 *private_data);

+

+/* Ê¡µç¹³×Óº¯Êý*/

+VOID zOss_ThreadSwapInPsmHook(T_ZOsa_ThreadUserArea *user_area);

+VOID zOss_ThreadSwapOutPsmHook(T_ZOsa_ThreadUserArea *user_area);

+VOID zOss_RecordPsmLastSwapTime(VOID);

+VOID zOss_ClearSleepTime(VOID);

+

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

+* È«¾Ö³£Á¿/±äÁ¿ÉùÃ÷Çø

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

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif  /* _SUP_H */

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_agent.h b/cp/ps/plat/src/oss/sup/inc/sup_agent.h
new file mode 100644
index 0000000..58e737e
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_agent.h
@@ -0,0 +1,77 @@
+/**************************************************************************************************

+*

+*                       Copyright(c) 2012 ZTE Corporation 

+*

+***************************************************************************************************

+* °æ±¾ËùÓÐ: ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾ ÊÖ»úÊÂÒµ²¿ Èí¼þ¿ª·¢Áù²¿

+* Ä£ ¿é Ãû: OS¸ú×Ù¹¤¾ßUE²à´úÀí

+* ÎÄ ¼þ Ãû:

+* Îļþ±êʶ:

+* Ïà¹ØÎļþ:

+* ʵÏÖ¹¦ÄÜ:

+* ×÷    Õß:

+* °æ    ±¾:

+* Íê³ÉÈÕÆÚ:

+* ÆäËû˵Ã÷:

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

+

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

+* Ð޸ļǼ:

+* ÈÕ    ÆÚ:

+* ÐÞ ¸Ä ºÅ:

+* ÐÞ ¸Ä ÈË:

+* ÄÚ    ÈÝ:

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

+

+#ifndef OSAGT_H

+#define OSAGT_H

+

+#ifdef _USE_MONITOR

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

+* ³£Á¿¶¨ÒåÇø

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

+//¹¤¾ß×Ô¶¨ÒåµÄʼþºÅ

+#define PC_AGT_ACK                      100

+#define PC_AGT_SET_VARIABLE             101

+#define PC_AGT_GET_VARIABLE             102

+#define PC_AGT_SNAPSHOT                 103

+#define PC_AGT_STOP                     104

+#define PC_AGT_START                    105

+

+#define AGT_PC_ACK                      50

+#define AGT_PC_WINDOW_INFO_THREAD       0

+#define AGT_PC_WINDOW_INFO_EVENT        1

+#define AGT_PC_WINDOW_INFO_TIMER        2

+#define AGT_PC_WINDOW_INFO_TASK         3

+#define AGT_PC_WINDOW_INFO_RAMLOG       4

+#define AGT_PC_WINDOW_INFO_POOL         5

+#define AGT_PC_WINDOW_INFO_MMU          6

+#define AGT_PC_WINDOW_INFO_MSG          7

+#define AGT_PC_WINDOW_INFO_POOLLEAK     8

+#define AGT_PC_WINDOW_INFO_VARIABLE     9

+#define AGT_PC_WINDOW_INFO_MEM          10

+#define AGT_PC_WINDOW_INFO_CPU          11

+#define PC_WINDOW_NUM                   12

+

+#define WINDOW_OS_MAP_MAX_NUM           3

+

+//PC²à´°¿Ú±àºÅ

+#define PC_TOOL_WINDOW_THREAD           AGT_PC_WINDOW_INFO_THREAD

+#define PC_TOOL_WINDOW_EVENT            AGT_PC_WINDOW_INFO_EVENT

+#define PC_TOOL_WINDOW_TIMER            AGT_PC_WINDOW_INFO_TIMER

+#define PC_TOOL_WINDOW_TASK             AGT_PC_WINDOW_INFO_TASK

+#define PC_TOOL_WINDOW_RAMLOG           AGT_PC_WINDOW_INFO_RAMLOG

+#define PC_TOOL_WINDOW_POOL             AGT_PC_WINDOW_INFO_POOL

+#define PC_TOOL_WINDOW_MMU              AGT_PC_WINDOW_INFO_MMU

+#define PC_TOOL_WINDOW_MSG              AGT_PC_WINDOW_INFO_MSG

+#define PC_TOOL_WINDOW_POOLLEAK         AGT_PC_WINDOW_INFO_POOLLEAK

+#define PC_TOOL_WINDOW_VARIABLE         AGT_PC_WINDOW_INFO_VARIABLE

+#define PC_TOOL_WINDOW_MEM              AGT_PC_WINDOW_INFO_MEM

+#define PC_TOOL_WINDOW_CPU              AGT_PC_WINDOW_INFO_CPU

+

+//Ä¿±êÄ£¿éÃû

+#define OS_TASK_NAME               "OssMonitor"

+#endif

+#endif

+

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_agent_osinfopack.h b/cp/ps/plat/src/oss/sup/inc/sup_agent_osinfopack.h
new file mode 100644
index 0000000..cf61e49
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_agent_osinfopack.h
@@ -0,0 +1,181 @@
+/**************************************************************************************************

+*

+*                       Copyright(c) 2012 ZTE Corporation 

+*

+***************************************************************************************************

+* °æ±¾ËùÓÐ: ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾ ÊÖ»úÊÂÒµ²¿ Èí¼þ¿ª·¢Áù²¿

+* Ä£ ¿é Ãû: OS¸ú×Ù¹¤¾ßUE²à´úÀí

+* ÎÄ ¼þ Ãû:

+* Îļþ±êʶ:

+* Ïà¹ØÎļþ:

+* ʵÏÖ¹¦ÄÜ:

+* ×÷    Õß:

+* °æ    ±¾:

+* Íê³ÉÈÕÆÚ:

+* ÆäËû˵Ã÷:

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

+

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

+* Ð޸ļǼ:

+* ÈÕ    ÆÚ:

+* ÐÞ ¸Ä ºÅ:

+* ÐÞ ¸Ä ÈË:

+* ÄÚ    ÈÝ:

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

+

+#ifndef OSINFOPACK_H

+#define OSINFOPACK_H

+

+#ifdef _USE_MONITOR

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

+* includeÇø

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

+#include "oss_api.h"

+#include "oss_monitor.h"

+

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

+* ³£Á¿¶¨ÒåÇø

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

+#define NUMERIC_LEN                    4

+#define VERSION_LEN                    32

+#define FILE_LEN                       128

+#define THREAD_NAME_LEN                64

+#define TASK_NAME_LEN                  64

+#define EVENT_NAME_LEN                 64

+#define TICKSTAMP_LEN                  8

+#define MMU_NAME_LEN                   64

+#define OWNER_NAME_LEN                 64

+#define SENDER_NAME_LEN                64

+#define RECEIVER_NAME_LEN              64

+#define TIMER_EXPIRY_NUM               2

+#define TIMER_EXPIRY_LEN               4

+#define EVENT_NUM                      4

+#define EVENT_LEN                      16

+#define TASK_STATUS_NUM                4

+#define TASK_STATUS_LEN                8

+#define MMU_PERMISSION_NUM             6

+#define MMU_PERMISSION_LEN             16

+#define THREAD_STATUS_NUM              3

+#define THREAD_STATUS_LEN              8

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+typedef struct

+{

+	char version[VERSION_LEN];

+}T_Version;

+

+typedef struct

+{

+	BYTE feq[NUMERIC_LEN];

+}T_Frequency;

+

+typedef struct

+{

+	BYTE load[NUMERIC_LEN];

+}T_CpuLoad;

+

+typedef struct

+{

+	BYTE size[NUMERIC_LEN];

+	BYTE total[NUMERIC_LEN];

+	BYTE used[NUMERIC_LEN];

+	BYTE maxUsed[NUMERIC_LEN];

+}T_Pool_Ele;

+

+typedef struct

+{

+	BYTE address[NUMERIC_LEN];

+	BYTE owner[NUMERIC_LEN];

+	BYTE timeStamp[NUMERIC_LEN];

+	char file[FILE_LEN];

+	BYTE line[NUMERIC_LEN];

+}T_Pool_Alloc_Ele, T_Pool_Leak_Ele;

+

+typedef struct

+{

+    BYTE base[NUMERIC_LEN];

+    BYTE size[NUMERIC_LEN];

+    BYTE used[NUMERIC_LEN];

+}T_Heap;

+

+typedef struct//modified by zyn

+{

+    char name[THREAD_NAME_LEN];

+    BYTE handle[NUMERIC_LEN];

+    BYTE msg_no[NUMERIC_LEN];

+    char status[THREAD_STATUS_LEN];

+    BYTE priority[NUMERIC_LEN];

+    BYTE stack_used[NUMERIC_LEN];

+    BYTE stack_max_used[NUMERIC_LEN];

+    BYTE cpu_load[NUMERIC_LEN];

+	

+}T_Thread_Ele;

+

+typedef struct //modified by zyn

+{

+    char name[TASK_NAME_LEN];

+    BYTE handle[NUMERIC_LEN];

+    BYTE thread_handle[NUMERIC_LEN];

+    char status[TASK_STATUS_LEN];

+	

+}T_Task_Ele;

+

+typedef struct //modified by zyn

+{

+    char name[EVENT_NAME_LEN];

+    char event[EVENT_LEN];

+    BYTE handle[NUMERIC_LEN];

+    BYTE tickstamp[TICKSTAMP_LEN];

+	

+}T_Event_Ele;

+

+typedef struct

+{

+	BYTE msgId[NUMERIC_LEN];

+    BYTE address[NUMERIC_LEN]; //ÆðʼµØÖ·

+	BYTE size[NUMERIC_LEN];    //³¤¶È

+    char sender[SENDER_NAME_LEN];

+    char receiver[RECEIVER_NAME_LEN];

+    BYTE timestamp[NUMERIC_LEN];

+}T_Msg_Ele;

+

+typedef struct //modified by zyn

+{

+    BYTE handle[NUMERIC_LEN];

+    BYTE start_time[NUMERIC_LEN];

+    BYTE expire_time[NUMERIC_LEN];

+    BYTE callback_func[NUMERIC_LEN];

+    char is_period[TIMER_EXPIRY_LEN];

+}T_Timer_Ele;

+

+typedef struct

+{

+	char name[MMU_NAME_LEN];

+    BYTE vir_addr[NUMERIC_LEN];

+    BYTE phy_addr[NUMERIC_LEN];

+    BYTE size[NUMERIC_LEN];

+    char attr[MMU_PERMISSION_LEN]; /* permission and access */

+}T_Mmu_Ele;

+

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

+* º¯ÊýÉùÃ÷Çø

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

+VOID zOss_MonitorAgt_PackVersion(UINT8* code, T_ZOss_Mon_Version* version); 

+VOID zOss_MonitorAgt_PackFrequency(UINT8* code, T_ZOss_Mon_Cpu_Frequency* frequency); 

+VOID zOss_MonitorAgt_PackCpuLoad(UINT8* code, T_ZOss_Mon_Cpu_Load* cpuLoad); 

+VOID zOss_MonitorAgt_PackPoolEle(UINT8* code, T_ZOss_Mon_Pool_Ele* pool_ele);

+VOID zOss_MonitorAgt_PackPoolAllocEle(UINT8* code, T_ZOss_Mon_Pool_Alloc_Ele* pool_alloc_ele);

+VOID zOss_MonitorAgt_PackPoolLeakEle(UINT8* code, T_ZOss_Mon_Pool_Leak_Ele* pool_leak_ele);

+VOID zOss_MonitorAgt_PackHeap(UINT8* code, T_ZOss_Mon_Heap* heap);

+VOID zOss_MonitorAgt_PackThreadEle(UINT8* code, T_ZOss_Mon_Thread_Ele* thread_ele);

+VOID zOss_MonitorAgt_PackTaskEle(UINT8* code, T_ZOss_Mon_Task_Ele* task_ele);

+VOID zOss_MonitorAgt_PackEventEle(UINT8* code, T_ZOss_Mon_Event_Ele* event_ele);

+VOID zOss_MonitorAgt_PackMsgEle(UINT8* code, T_ZOss_Mon_Msg_Ele* msg_ele);

+VOID zOss_MonitorAgt_PackTimerEle(UINT8* code, T_ZOss_Mon_Timer_Ele* timer_ele);

+VOID zOss_MonitorAgt_PackMmuEle(UINT8* code, T_ZOss_Mon_Mmu_Ele* mmu_ele);

+

+#endif

+#endif

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_agent_pcmessage.h b/cp/ps/plat/src/oss/sup/inc/sup_agent_pcmessage.h
new file mode 100644
index 0000000..6562d2f
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_agent_pcmessage.h
@@ -0,0 +1,47 @@
+/**************************************************************************************************

+*

+*                       Copyright(c) 2012 ZTE Corporation 

+*

+***************************************************************************************************

+* °æ±¾ËùÓÐ: ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾ ÊÖ»úÊÂÒµ²¿ Èí¼þ¿ª·¢Áù²¿

+* Ä£ ¿é Ãû: OS¸ú×Ù¹¤¾ßUE²à´úÀí

+* ÎÄ ¼þ Ãû:

+* Îļþ±êʶ:

+* Ïà¹ØÎļþ:

+* ʵÏÖ¹¦ÄÜ:

+* ×÷    Õß:

+* °æ    ±¾:

+* Íê³ÉÈÕÆÚ:

+* ÆäËû˵Ã÷:

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

+

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

+* Ð޸ļǼ:

+* ÈÕ    ÆÚ:

+* ÐÞ ¸Ä ºÅ:

+* ÐÞ ¸Ä ÈË:

+* ÄÚ    ÈÝ:

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

+

+#ifndef OSAGT_PCMESSAGE_H

+#define OSAGT_PCMESSAGE_H

+#ifdef _USE_MONITOR

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

+* º¯ÊýÉùÃ÷Çø

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

+VOID zOss_MonitorAgt_PcAckReq(VOID);

+#ifdef _USE_WINCOMM_SERVER

+VOID zOss_MonitorAgt_PcSetValueReq(UINT32 len, BYTE* buf);

+VOID zOss_MonitorAgt_PcGetValueReq(UINT32 len, BYTE* buf);

+#else

+VOID zOss_MonitorAgt_PcSetValueReq(UINT16 len, BYTE* buf);

+VOID zOss_MonitorAgt_PcGetValueReq(UINT16 len, BYTE* buf);

+#endif

+VOID zOss_MonitorAgt_PcSnapshotReq(UINT8 msgId);

+VOID zOss_MonitorAgt_PcStop(VOID);

+VOID zOss_MonitorAgt_PcStart(VOID);

+

+#endif

+#endif

+

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_agent_status.h b/cp/ps/plat/src/oss/sup/inc/sup_agent_status.h
new file mode 100644
index 0000000..bbdb884
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_agent_status.h
@@ -0,0 +1,52 @@
+/**************************************************************************************************

+*

+*                       Copyright(c) 2012 ZTE Corporation 

+*

+***************************************************************************************************

+* °æ±¾ËùÓÐ: ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾ ÊÖ»úÊÂÒµ²¿ Èí¼þ¿ª·¢Áù²¿

+* Ä£ ¿é Ãû: OS¸ú×Ù¹¤¾ßUE²à´úÀí

+* ÎÄ ¼þ Ãû:

+* Îļþ±êʶ:

+* Ïà¹ØÎļþ:

+* ʵÏÖ¹¦ÄÜ:

+* ×÷    Õß:

+* °æ    ±¾:

+* Íê³ÉÈÕÆÚ:

+* ÆäËû˵Ã÷:

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

+

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

+* Ð޸ļǼ:

+* ÈÕ    ÆÚ:

+* ÐÞ ¸Ä ºÅ:

+* ÐÞ ¸Ä ÈË:

+* ÄÚ    ÈÝ:

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

+#ifndef OSAGT_STATUS_H

+#define OSAGT_STATUS_H

+#ifdef _USE_MONITOR

+

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

+* includeÇø

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

+#include "oss_api.h"

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+typedef enum

+{

+	OsAgt_Status_Error = 0,

+    OsAgt_Status_Ok

+

+}OsAgt_Status;

+

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

+* º¯ÊýÉùÃ÷Çø

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

+OsAgt_Status zOss_MonitorAgt_CheckReceiveMessage(UINT32 msgId);

+OsAgt_Status zOss_MonitorAgt_CheckReplyMessage(UINT32 msgId);

+

+#endif

+#endif/*__OS_AGENT_STATUS_H__*/

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_agent_toolkit.h b/cp/ps/plat/src/oss/sup/inc/sup_agent_toolkit.h
new file mode 100644
index 0000000..b21a23f
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_agent_toolkit.h
@@ -0,0 +1,45 @@
+/**************************************************************************************************

+*

+*                       Copyright(c) 2012 ZTE Corporation 

+*

+***************************************************************************************************

+* °æ±¾ËùÓÐ: ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾ ÊÖ»úÊÂÒµ²¿ Èí¼þ¿ª·¢Áù²¿

+* Ä£ ¿é Ãû: OS¸ú×Ù¹¤¾ßUE²à´úÀí

+* ÎÄ ¼þ Ãû:

+* Îļþ±êʶ:

+* Ïà¹ØÎļþ:

+* ʵÏÖ¹¦ÄÜ:

+* ×÷    Õß:

+* °æ    ±¾:

+* Íê³ÉÈÕÆÚ:

+* ÆäËû˵Ã÷:

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

+

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

+* Ð޸ļǼ:

+* ÈÕ    ÆÚ:

+* ÐÞ ¸Ä ºÅ:

+* ÐÞ ¸Ä ÈË:

+* ÄÚ    ÈÝ:

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

+#ifndef OSAGT_TOOLKIT_H

+#define OSAGT_TOOLKIT_H

+#ifdef _USE_MONITOR

+

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

+* includeÇø

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

+#include "oss_api.h"

+

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

+* º¯ÊýÉùÃ÷Çø

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

+VOID zOss_MonitorAgt_SendMsgToOs(UINT32 id, UINT16 len, UINT8* buf);

+VOID zOss_MonitorAgt_SendDataToPcTool(UINT8* buf, UINT32 len);

+VOID zOss_MonitorAgt_CharToByteArray(char* array, const char* charStr, DWORD maxLen);

+VOID zOss_MonitorAgt_FileNameToByteArray(char* array, const char* charStr, DWORD maxLen);

+VOID zOss_MonitorAgt_SetOsTaskId(ZOSS_TASK_ID taskId);

+

+#endif

+#endif

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_agent_uemessage.h b/cp/ps/plat/src/oss/sup/inc/sup_agent_uemessage.h
new file mode 100644
index 0000000..ec09226
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_agent_uemessage.h
@@ -0,0 +1,45 @@
+/**************************************************************************************************

+*

+*                       Copyright(c) 2012 ZTE Corporation 

+*

+***************************************************************************************************

+* °æ±¾ËùÓÐ: ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾ ÊÖ»úÊÂÒµ²¿ Èí¼þ¿ª·¢Áù²¿

+* Ä£ ¿é Ãû: OS¸ú×Ù¹¤¾ßUE²à´úÀí

+* ÎÄ ¼þ Ãû:

+* Îļþ±êʶ:

+* Ïà¹ØÎļþ:

+* ʵÏÖ¹¦ÄÜ:

+* ×÷    Õß:

+* °æ    ±¾:

+* Íê³ÉÈÕÆÚ:

+* ÆäËû˵Ã÷:

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

+

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

+* Ð޸ļǼ:

+* ÈÕ    ÆÚ:

+* ÐÞ ¸Ä ºÅ:

+* ÐÞ ¸Ä ÈË:

+* ÄÚ    ÈÝ:

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

+

+#ifndef OSAGT_UEMESSAGE_H

+#define OSAGT_UEMESSAGE_H

+#ifdef _USE_MONITOR

+

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

+* includeÇø

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

+#include "oss_api.h"

+#include "oss_monitor.h"

+

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

+* º¯ÊýÉùÃ÷Çø

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

+VOID zOss_MonitorAgt_InitUeMessage(VOID);

+//handle all message

+VOID zOss_MonitorAgt_UeMessageHandler(UINT32 msgId, UINT8 *buf);

+

+#endif

+#endif

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_except.h b/cp/ps/plat/src/oss/sup/inc/sup_except.h
new file mode 100644
index 0000000..2530330
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_except.h
@@ -0,0 +1,92 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

+***************************************************************************

+* Ä£ ¿é Ãû : 

+* ÎÄ ¼þ Ãû : sup_except.h

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : P96AÒì³£¹ÜÀíÄ£¿éÍ·Îļþ

+* ×÷    Õß : ÖܹúÆÂ

+* °æ    ±¾ : V1.0

+* Íê³ÉÈÕÆÚ : 2007/09/04

+* ÆäËü˵Ã÷ : 

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

+

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

+* Ð޸ļǼ

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

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

+* Ð޸ıàºÅ : 0001

+* ÐÞ ¸Ä ÈË : dengningkun

+* ÐÞ¸ÄÈÕÆÚ : 2012/9/27

+* ÐÞ¸ÄÄÚÈÝ : ¸ñʽ¹æ·¶ºÍPC-LINT¼ì²é  EC:617001782169

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

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

+* Ð޸ıàºÅ : 0002

+* ÐÞ ¸Ä ÈË : dengningkun

+* ÐÞ¸ÄÈÕÆÚ : 2012/10/10

+* ÐÞ¸ÄÄÚÈÝ : ´úÂë×ß²é               EC:617001782205

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

+

+#ifndef _SUP_EXCEP_H

+#define _SUP_EXCEP_H

+

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

+* #includeÇø

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

+#include "oss_api.h"

+

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

+* ºê¶¨ÒåÇø

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

+#ifdef  _OS_WIN

+#define snprintf                _snprintf       /* vcÊÇ_snprintf        */

+#endif

+

+#define EXCEP_DAEMONTASKNAME    "zOss_ExcepDaemonTask"

+

+#ifdef _OS_LINUX

+#       define EXCEP_IDLETHREADNAME  "swapper"

+#else

+# ifdef _USE_PSM

+#       define EXCEP_IDLETHREADNAME  "zOss_ThreadPsm"

+# else

+#   ifdef _OS_TOS

+#       define EXCEP_IDLETHREADNAME  "tos_idle_thread"

+#   else

+#       define EXCEP_IDLETHREADNAME  "zOss_ExcepIdleThread"

+#   endif

+# endif

+#endif

+

+/* ÏûÏ¢ */

+#define EV_ZOSS_EXCEP_WDT_SET       (EV_ZOSS_EXCEP_BASE + 0x10) /* ÉèÖÿ´ÃŹ·               */

+#define EV_ZOSS_EXCEP_DEADLOOPCHECK (EV_ZOSS_EXCEP_BASE + 0x13) /* ËÀÑ­»·¼ì²â               */

+#define EV_ZOSS_EXCEP_UPDATECPUTIME (EV_ZOSS_EXCEP_BASE + 0x15) /* ÉèÖøüÐÂCPUʹÓÃÂÊʱ¼ä    */

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+

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

+* º¯ÊýÉùÃ÷Çø

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

+UINT32 Excep_ErrlogWrite(const CHAR *buf, UINT32 buf_len);

+

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

+* È«¾Ö³£Á¿/±äÁ¿ÉùÃ÷Çø

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

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif  /* _SUP_EXCEP_H */

+

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_nvm.h b/cp/ps/plat/src/oss/sup/inc/sup_nvm.h
new file mode 100644
index 0000000..2a7cafb
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_nvm.h
@@ -0,0 +1,81 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

+***************************************************************************

+* Ä£ ¿é Ãû : P98C_NV

+* ÎÄ ¼þ Ãû : sup_nvm.h

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : NVÊý¾Ý¹ÜÀíÄ£¿é

+* ×÷    Õß : ¬л¼ª

+* °æ    ±¾ : V1.0

+* Íê³ÉÈÕÆÚ : 2012-09-10

+* ÆäËü˵Ã÷ : 

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

+

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

+* Ð޸ļǼ

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

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

+* Ð޸ıàºÅ : 0001

+* ÐÞ ¸Ä ÈË : wuzhengjun

+* ÐÞ¸ÄÈÕÆÚ : 2012-09-17

+* ÐÞ¸ÄÄÚÈÝ : ¸ñʽ¹æ·¶ºÍPC-LINT×ß²é  EC:617001781798

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

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

+* Ð޸ıàºÅ : 0002

+* ÐÞ ¸Ä ÈË : wuzhengjun

+* ÐÞ¸ÄÈÕÆÚ : 2012-09-27

+* ÐÞ¸ÄÄÚÈÝ : ´úÂë×ß²é   EC:617001781846 

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

+#ifndef _SUP_NVM_H

+#define _SUP_NVM_H

+

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

+* #includeÇø

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

+#include "oss_api.h"

+

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

+* ºê¶¨ÒåÇø

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

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+

+/* NVÁ´±í½Úµã½á¹¹Ìå */

+typedef struct 

+{

+    T_ZOss_Node Node;          /* ͨÓÃÁ´±í½Úµã  */

+    T_ZOss_List Child_List;    /* ×ÓÁ´±í        */

+    UINT32      Block_Addr;    /* ¿éµØÖ·        */

+}T_NV_MAIN_NODE;               /* NVÁ´±íÖ÷½Úµã  */

+

+

+typedef struct 

+{

+    T_ZOss_Node Node;          /* ͨÓÃÁ´±í½Úµã  */

+    UINT32      Addr;          /* µØÖ·          */

+    UINT32      Len;           /* ³¤¶È          */

+}T_NV_CHILD_NODE;              /* NVÁ´±í×Ó½Úµã  */

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

+* º¯ÊýÉùÃ÷Çø

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

+UINT32 Nvram_Finish(VOID);

+

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

+* È«¾Ö³£Á¿/±äÁ¿ÉùÃ÷Çø

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

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif  /* _SUP_NVM_H */

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_ramdump.h b/cp/ps/plat/src/oss/sup/inc/sup_ramdump.h
new file mode 100644
index 0000000..60ba364
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_ramdump.h
@@ -0,0 +1,276 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

+***************************************************************************

+* Ä£ ¿é Ãû : 

+* ÎÄ ¼þ Ãû : sup_ramdump.h

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : ÌṩramdumpÏûÏ¢½á¹¹Ìå

+* ×÷    Õß : gaohuafeng

+* °æ    ±¾ : V1.0

+* Íê³ÉÈÕÆÚ : 2013/10/29

+* ÆäËü˵Ã÷ : 

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

+

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

+* Ð޸ļǼ

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

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

+* Ð޸ıàºÅ : 0001

+* ÐÞ ¸Ä ÈË : dengningkun

+* ÐÞ¸ÄÈÕÆÚ : 2012/9/27

+* ÐÞ¸ÄÄÚÈÝ : ¸ñʽ¹æ·¶ºÍPC-LINT¼ì²é  EC:617001782169

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

+

+#ifndef _SUP_RAMDUMP_H

+#define _SUP_RAMDUMP_H

+

+#ifdef _USE_MULTI_CORE_RAMDUMP

+

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

+* #includeÇø

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

+#include "oss_api.h"

+#include "drvs_icp.h"

+#include "ram_config.h"

+

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

+* ºê¶¨ÒåÇø

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

+/* Ö¸ÁÒå */

+#define ZOSS_RAMDUMP_FILE_LINK_REQ              1   /*ͬ²½ÇëÇó*/

+#define ZOSS_RAMDUMP_FILE_LINK_RSP              2   /*ͬ²½ÇëÇóÓ¦´ð,´«ÊäramdumpµÄÎļþÊýÄ¿*/

+#define ZOSS_RAMDUMP_FILE_FILE_REQ              3   /*ÇëÇó´«µÝÖ¸¶¨Îļþ±àºÅµÄÎļþÐÅÏ¢*/

+#define ZOSS_RAMDUMP_FILE_FILE_RSP              4   /*ÇëÇó´«µÝÖ¸¶¨Îļþ±àºÅµÄÎļþÐÅÏ¢µÄÓ¦´ð£¬´«ÊäÎļþÃû¼°´óС*/

+#define ZOSS_RAMDUMP_FILE_READ_REQ              5   /*ÇëÇó¶Áȡָ¶¨Îļþ±àºÅµÄÎļþÄÚÈÝ*/

+#define ZOSS_RAMDUMP_FILE_READ_RSP              6   /*ÇëÇó¶Áȡָ¶¨Îļþ±àºÅµÄÎļþÄÚÈݵÄÓ¦´ð£¬´«ÊäÎļþÄÚÈÝ*/

+#define ZOSS_RAMDUMP_FILE_END_REQ               7   /*´«Êä½áÊø*/

+#define ZOSS_RAMDUMP_FILE_END_RSP               8   /*´«Êä½áÊøÓ¦´ð*/  

+

+/* ramdump×î´óÎļþÃû³¤¶È */

+#define ZOSS_RAMDUMP_FILENAME_LEN               32  

+

+/* RamdumpÎļþµÄÃû×Ö */

+#define ZOSS_RAMDUMP_DIR_NAME                   "ramdump_dir"

+

+/* ´íÎóÀàÐÍ */        

+#define ZOSS_RAMDUMP_FILE_CMD_FAIL              9   /*Ö¸Áî´íÎó*/

+#define ZOSS_RAMDUMP_FILE_NO_FAIL               10  /*ÇëÇó´«µÝÖ¸¶¨Îļþ±àºÅ´í*/

+#define ZOSS_RAMDUMP_FILE_LEN_FAIL              11  /*ÇëÇó´«µÝÖ¸¶¨ÎļþλÖôóС´í*/

+#define ZOSS_RAMDUMP_CMD_BUFFER_LEN             16  /*Ö¸ÁîÖ¡³¤¶È */

+

+/* ramdumpÄÚ´æ¿é´óСÅäÖÃ,ÐÞ¸ÄÅäÖÃʱעÒâÐÞ¸ÄserverºÍclientµÄ×ܹ²±ÈÀý´óС*/

+#define ZOSS_RAMDUMP_CMM_INFO_RATE               4

+#define ZOSS_RAMDUMP_CONFIGURED_REGION_RATE      4

+#define ZOSS_RAMDUMP_PARSED_REGION_RATE          4

+#define ZOSS_RAMDUMP_FILE_INFO_RATE              4

+#define ZOSS_RAMDUMP_AGENT_FILE_INFO_RATE        4

+#define ZOSS_RAMDUMP_ERR_INFO_RATE               1

+#define ZOSS_RAMDUMP_IO_READBUF_RATE             1

+#define ZOSS_RAMDUMP_IO_WRITEBUF_RATE            1

+#define ZOSS_RAMDUMP_SERVER_TOTAL_RATE          23

+#define ZOSS_RAMDUMP_CLIENT_TOTAL_RATE          17                                    

+

+#define ZOSS_RAMDUMP_FLAG_SIZE                  4

+#define ZOSS_RAMDUMP_FLAG_FIRST_VALUE           0x11111111

+#define ZOSS_RAMDUMP_FLAG_SECOND_VALUE          0x22222222

+#define ZOSS_RAMDUMP_FLAG_THIRD_VALUE           0x33333333

+#define ZOSS_RAMDUMP_FLAG_FOUR_VALUE            0x44444444

+

+/* ÏûÏ¢½»»¥ÀàÐÍ */

+#define ZOSS_RAMDUMP_INIT_TYPE                  0

+#define ZOSS_RAMDUMP_EXCPT_TYPE                 1

+#define ZOSS_RAMDUMP_DATA_READY_TYPE            2

+#define ZOSS_RAMDUMP_TEST_EXCPT_TYPE            3

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+typedef struct

+{

+    UINT32 cmmFileSize;

+    UINT32 cmmFileMaxSize;

+    CHAR   cmmFileBuffer[0];    /* cmmÎļþ»º³å£¬ºóÃæ»¹Óпռä */

+} T_zOss_RamdumpCmmFileInfo;

+

+typedef struct

+{

+    UINT32          srcModId;

+    UINT32          desModId;

+    T_HalIcp_Dword  intInfo;

+} T_zOss_RamdumpIcpInfo;

+

+typedef struct

+{

+    UINT32  clientId; 

+    CHAR    *pRamdumpStartAddr;

+    UINT32  ramdumpSize;  

+} T_zOss_RamdumpClientConInfo;

+

+typedef struct

+{

+    CHAR    fileName[ZOSS_RAMDUMP_FILENAME_LEN];    /* ÎļþÃû                 */

+    UINT32  baseforServer;                          /* server¶Ë¿ÉÒÔ·ÃÎʵĵØÖ· */

+    UINT32  size;                                   /* ´óС                   */

+} T_zOss_RamdumpFile;

+

+typedef struct

+{

+    UINT32              fileNum;        /* Îļþ¸öÊý         */

+    UINT32              fileMaxNum;     /* ÎļþµÄ×î´ó¸öÊý   */

+    T_zOss_RamdumpFile  fileInfo[0];    /* ºóÐø¿ÉÄÜ»¹ÓÐÊý¾Ý */

+} T_zOss_RamdumpFileInfo;

+

+typedef struct

+{

+    UINT32              buffLen;        /* buffµÄ´óС  */

+    CHAR                *pBuff;         /* buff µÄÖ¸Õë */

+} T_zOss_RamdumpBuffInfo;

+

+typedef struct

+{

+    UINT32  serverId; 

+    CHAR    *pRamdumpStartAddr;

+    UINT32  ramdumpSize;

+} T_zOss_RamdumpServerConInfo;

+

+/* ramdumpÏûÏ¢½á¹¹Ìå */

+typedef struct

+{

+   UINT32               regionNum;

+   UINT32               regionMaxNum;

+   T_zOss_RamdumpRegion regions[0];     /* ºóÐø¿ÉÄÜ»¹ÓÐÊý¾Ý */

+} T_zOss_RamdumpRegionInfo;

+

+typedef struct

+{

+    UINT32  msgType;

+    UINT32  Identifier;

+} T_zOss_RamdumpAgentMsgInfo;

+

+/* ͬ²½ÇëÇóÓ¦´ð             */

+typedef struct

+{

+    UINT32  fileNum;                    /* Òª´«ÊäµÄÎļþ¸öÊý */

+} T_zOss_RamumpFileLinkRsp;

+

+/* ¿ªÊ¼Îļþ´«ÊäÇëÇóÏûÏ¢Ìå   */

+typedef struct

+{

+    UINT32  fileNo;                     /* Îļþ±àºÅ,0¿ªÊ¼ */

+} T_zOss_RamdumpFileFileReq;

+

+/* ¿ªÊ¼Îļþ´«Ê仨ӦÏûÏ¢Ìå   */

+typedef struct

+{

+    CHAR   fileName[ZOSS_RAMDUMP_FILENAME_LEN]; /* ÎļþÃû   */

+    UINT32 size;                                /* Îļþ´óС */

+} T_zOss_RamdumpFileFileRsp;

+

+/* ¶ÁÊý¾ÝÇëÇóÏûÏ¢Ìå         */

+typedef struct

+{

+    UINT32 fileNo;      /* Îļþ±àºÅ         */

+    UINT32 offset;      /* offsetΪÊý¾ÝÆ«ÒÆ */

+    UINT32 length;      /* lengthΪÊý¾Ý³¤¶È */

+} T_zOss_RamdumpFileReadReq;

+

+typedef struct

+{

+    UINT32  msgType;

+    UINT32  srcModId;

+    CHAR    *pRamdumpStartAddr;

+    UINT32  ramdumpSize;

+} T_zOss_RamdumpClientMsgInfo;   /* ·¢ËÍÏûÏ¢ÀàÐÍ */

+

+typedef struct

+{

+    UINT32  msgType;

+    VOID    *pServerConInfo;

+} T_zOss_RamdumpServerMsgInfo;

+

+typedef struct

+{

+    UINT32                      clientId; 

+    T_zOss_RamdumpCmmFileInfo   *pCmmInfo;

+    T_zOss_RamdumpRegionInfo    *pConfigureInfo;

+    T_zOss_RamdumpRegionInfo    *pParsedInfo;

+    T_zOss_RamdumpBuffInfo      *pErrInfo;

+    volatile UINT32             clientFlagBase;                    

+} T_zOss_RamdumpClientInfo;

+

+typedef struct

+{

+    UINT32                      clientId; 

+    T_zOss_RamdumpCmmFileInfo   *pCmmInfo;

+    T_zOss_RamdumpRegionInfo    *pConfigureInfo;

+    T_zOss_RamdumpRegionInfo    *pParsedInfo;

+    T_zOss_RamdumpFileInfo      *pFileInfo;

+    T_zOss_RamdumpFileInfo      *pAgentFileInfo;

+    T_zOss_RamdumpBuffInfo      *pErrInfo;

+    T_zOss_RamdumpBuffInfo      *pIoReadbuf;

+    T_zOss_RamdumpBuffInfo      *pIoWritebuf;

+    BOOL                        *pWaitMsgFlag;

+} T_zOss_RamdumpServerInfo;

+

+typedef struct

+{

+    BOOL    exceptFlag;           /* ÊÇ·ñ·¢Éú¹ýÒì³£ */

+    UINT32  exceptCore;           /* ·¢ÉúÒì³£µÄºË   */    

+} T_zOss_RamdumpExceptInfo;       /* Òì³£ÐÅÏ¢½á¹¹Ìå */

+

+#ifdef _USE_ARM1_RAMDUMP

+typedef struct

+{

+   UINT32   startAddr;

+   UINT32   endAddr;

+   UINT32   mapAddr;

+   UINT32   copyAddr;

+} T_zOss_RamdumpArm1Region;

+

+typedef struct

+{

+  UINT32                   regionNum;

+  T_zOss_RamdumpArm1Region regions[0];

+} T_zOss_RadmumpArm1RegionInfo;

+#endif

+

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

+* º¯ÊýÉùÃ÷Çø

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

+VOID    zOss_RamdumpEncodeError(CHAR *pBuff, UINT16 user_called, UINT16 ecode, UINT16 extra);

+VOID    zOss_RamdumpCreateCmmFile(T_zOss_RamdumpCmmFileInfo  *pCmmFileInfo);

+CHAR    *zOss_RamdumpCreateRegionsCmmFile(CHAR *address);

+VOID    zOss_RamdumpSaveRegisters(VOID);

+UINT32  zOss_CleanCache(VOID);

+VOID    zOss_RamdumpInit(VOID);

+UINT32  zOss_RamdumpForceClientException(UINT32 coreId);

+VOID    zOss_RamdumpHandle(UINT16 user_called, UINT16 ecode, UINT16 extra);

+VOID    zOss_RamdumpSaveRegisters(VOID);

+UINT32  zOss_Cp15ReadControlRegister(VOID);

+UINT32  zOss_ReadCpsr(VOID);

+VOID    zOss_RamdumpSetUsbOpt(VOID);

+VOID    zOss_RamdumpSetIcpOpt(VOID);

+VOID    zOss_RamdumpUsbInit(VOID);

+VOID    zOss_RamdumpUsbReadData(UINT8 *buffer, UINT32 size);

+VOID    zOss_RamdumpUsbWriteData(UINT8 *buffer, UINT32 size);

+VOID    zOss_RamdumpUsbFinish(VOID);

+

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

+* È«¾Ö³£Á¿/±äÁ¿ÉùÃ÷Çø

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

+extern T_zOss_RamdumpOpt g_zRamdump_Optfunc;

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif  /* _USE_MULTI_CORE_RAMDUMP */

+#endif  /* _SUP_RAMDUMP_H */

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_shell.h b/cp/ps/plat/src/oss/sup/inc/sup_shell.h
new file mode 100644
index 0000000..7c5f054
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_shell.h
@@ -0,0 +1,76 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

+***************************************************************************

+* Ä£ ¿é Ãû : P98C_OSS

+* ÎÄ ¼þ Ãû : sup_shell.h

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : shell¿ò¼ÜÍ·Îļþ

+* ×÷    Õß : ÖܹúÆÂ

+* °æ    ±¾ : V1.0

+* Íê³ÉÈÕÆÚ : 2008-04-21 

+* ÆäËü˵Ã÷ : 

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

+

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

+* Ð޸ļǼ

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

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

+* Ð޸ıàºÅ : 0001

+* ÐÞ ¸Ä ÈË : chenxingfang

+* ÐÞ¸ÄÈÕÆÚ : 2012-09-17

+* ÐÞ¸ÄÄÚÈÝ : ¸ñʽ¹æ·¶ºÍPC-LINT×ß²é EC:617001782014

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

+#ifndef _SUP_SHELL_H

+#define _SUP_SHELL_H

+

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

+* #includeÇø

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

+#include "oss_api.h"

+#include "sup.h"

+

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

+* ºê¶¨ÒåÇø

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

+#ifdef _OS_WIN

+#define __FUNCTION__  "FUNCTION"

+#endif

+    

+#define SHELL_THREAD_NAME      "zOss_ShellThread"     /* ²âÊÔÏß³ÌÃû³Æ */

+#define T_Test_CommandMessage  T_Shell_CommandMessage

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+typedef struct 

+{

+    CHAR        *cmd;

+    Shell_Func  func;

+    CHAR        *desc;

+}T_Shell_Cmd;       /* ÃüÁî½á¹¹ */

+

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

+* º¯ÊýÉùÃ÷Çø

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

+SINT32 Shell_StrisNumber(const CHAR *pStr);

+SINT32 Shell_isIdentifier(const CHAR *pStr);

+UINT32 Shell_GetWintracePrintFlag(VOID);

+UINT32 Shell_SetPrintFlag(UINT32 WintraceFlag);

+

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

+* È«¾Ö³£Á¿/±äÁ¿ÉùÃ÷Çø

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

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif  /* _SUP_SHELL_H */

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_shell_cmd.h b/cp/ps/plat/src/oss/sup/inc/sup_shell_cmd.h
new file mode 100644
index 0000000..9591a61
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_shell_cmd.h
@@ -0,0 +1,118 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

+***************************************************************************

+* Ä£ ¿é Ãû : P98C_OSS

+* ÎÄ ¼þ Ãû : sup_shell_cmd.h

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : 

+* ×÷    Õß : ÖܹúÆÂ

+* °æ    ±¾ : v1.0

+* Íê³ÉÈÕÆÚ : 2008-04-21

+* ÆäËü˵Ã÷ : 

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

+

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

+* Ð޸ļǼ

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

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

+* Ð޸ıàºÅ : 0001

+* ÐÞ ¸Ä ÈË : chenxingfang

+* ÐÞ¸ÄÈÕÆÚ : 2012-09-17

+* ÐÞ¸ÄÄÚÈÝ : ¸ñʽ¹æ·¶ºÍPC-LINT×ß²é EC:617001782014

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

+#ifndef _SUP_SHELL_CMD_H

+#define _SUP_SHELL_CMD_H

+

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

+* #includeÇø

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

+#include "sup_shell.h"

+#ifdef _OS_LINUX

+#include <linux/ctype.h>

+#else

+#include <ctype.h>

+#endif

+

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

+* ³£Á¿¶¨ÒåÇø

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

+#define CHAR_PRT(c)     (isgraph(c) ? (c) : '.')

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+

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

+* º¯ÊýÉùÃ÷Çø

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

+/* »ù±¾ÃüÁî */

+extern VOID OSS_DbgShowBootInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgSetWintracePrintFlag(T_Shell_CommandMessage *CmdMsg);

+

+/* ÄÚ´æ¹Û²ì */

+extern VOID OSS_DbgShowMemInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgShowUbInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgShowThreadUbInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgShowTaskUbInfo(T_Shell_CommandMessage *CmdMsg);

+

+/* NV */

+extern VOID OSS_DbgShowNvInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgReadNv(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgWriteNv(T_Shell_CommandMessage *CmdMsg);

+

+/* µ÷¶ÈͨѶ */

+extern VOID OSS_DbgShowThreadInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgSuspendThread(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgResumeThread(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgSetThreadPri(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgShowTaskInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgShowMsg(T_Shell_CommandMessage *CmdMsg);

+

+/* Òì³£ */

+extern VOID OSS_DbgDisplayThreadExecInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgDisplayThreadsExecInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgSetUpdateCPUTime(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgThreadSetFlag(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgGetSysCPU(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgShowRegInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgRamdumpConfigRegionInfo(T_Shell_CommandMessage *CmdMsg);

+

+/* µ×²ãµ÷ÊÔÖ¸Áî */

+extern VOID OSS_DbgGetMem(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgSetMem(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgReboot(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSA_SetUBDbgSwitch(T_Shell_CommandMessage *CmdMsg);

+extern  VOID OSA_DbgMem(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSA_ForceRamdump(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSA_DbgMemTimeLeakInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSA_DbgMemInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSA_DbgUbInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSA_SetMemDbgSwitch(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSA_DbgTrace(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DbgProfile(T_Shell_CommandMessage * CmdMsg);

+extern VOID OSS_OpenTraceSwitch(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_SetAssertLevel(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_StartDaemonTask(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_PsmTraceInfo(T_Shell_CommandMessage *CmdMsg);

+extern VOID OSS_DfmTraceInfo(T_Shell_CommandMessage *CmdMsg);

+VOID Shell_ShowPoolInfo(T_Shell_CommandMessage *CmdMsg);

+VOID Shell_ShowProcSig(T_Shell_CommandMessage *CmdMsg);

+

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

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

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

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif  /* _SUP_SHELL_CMD_H */

+

+

diff --git a/cp/ps/plat/src/oss/sup/inc/sup_task.h b/cp/ps/plat/src/oss/sup/inc/sup_task.h
new file mode 100644
index 0000000..37d3ed8
--- /dev/null
+++ b/cp/ps/plat/src/oss/sup/inc/sup_task.h
@@ -0,0 +1,116 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

+***************************************************************************

+* Ä£ ¿é Ãû : P98C_OSS

+* ÎÄ ¼þ Ãû : sup_task.h

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : 

+* ×÷    Õß : ¹¨Òí

+* °æ    ±¾ : V1.0

+* Íê³ÉÈÕÆÚ : 2007-09-12

+* ÆäËü˵Ã÷ : 

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

+

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

+* Ð޸ļǼ

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

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

+* Ð޸ıàºÅ : 0001

+* ÐÞ ¸Ä ÈË : chenxingfang

+* ÐÞ¸ÄÈÕÆÚ : 2012-09-17

+* ÐÞ¸ÄÄÚÈÝ : ¸ñʽ¹æ·¶ºÍPC-LINT×ß²é EC:617001782014

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

+#ifndef _SUP_TASK_H

+#define _SUP_TASK_H

+

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

+* #includeÇø

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

+#include "oss_api.h"

+

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

+* ³£Á¿¶¨ÒåÇø

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

+#define SCHE_MSG_MONI_ON        (UINT8)1            /* ÈÎÎñÏûÏ¢¼à¿Ø     */

+#define SCHE_MSG_MONI_OFF       (UINT8)0            /* ÈÎÎñÏûÏ¢²»¼à¿Ø   */ 

+#define SCHE_MAX_TICK           (UINT32)0xffffffff  /* ϵͳ×î´óTickÊý   */

+

+/* ÈÎÎñÀàÐÍ */

+#define SCHE_OSS_TASK           1                   /* ƽ̨ÈÎÎñ         */

+#define SCHE_SDL_TASK           2                   /* SDLÈÎÎñ          */

+

+#ifdef _OS_WIN

+#define SCHE_printf             printf

+#else

+#define _SUBMDL_                SUBMDL_SCHE

+#define _PRINT_LEVEL_           PRINT_LEVEL_NORMAL

+#define SCHE_printf(...)        zOss_Printf(_SUBMDL_, _PRINT_LEVEL_, ##__VA_ARGS__)

+#endif

+

+#define ZOSS_CAPT_MSG       0

+#define ZOSS_SELF_MIMO      0

+

+/* ÏûÏ¢³¤¶È */

+#define SCHE_M_TASKMSGHEAD_LEN  sizeof(T_ZOss_TaskMsgHead)  /* ÏûϢͷ³¤¶È   */

+#define SCHE_M_TASKMSGEX_LEN    sizeof(T_ZOss_TaskMsg)      /* ÏûÏ¢Ì峤¶È   */

+

+/* µ÷¶ÈÏ̵߳ǼDZí */

+#define SCHE_THREAD_TAB                                                                     \

+/*          Ïß³ÌÃû              Ïß³ÌID      Ïß³ÌÓÅÏȼ¶   ¶ÀÕ¼±êÖ¾ */                        \

+  {{0},    "zOss_ScheThread1",    NULL,       10,         1,      {0},     {0},     {0}},   \

+  {{0},    "zOss_ScheThread2",    NULL,       11,         1,      {0},     {0},     {0}},   \

+  {{0},    "zOss_ScheThread3",    NULL,       12,         1,      {0},     {0},     {0}},   \

+  {{0},    "zOss_ScheThread4",    NULL,       13,         1,      {0},     {0},     {0}},   \

+  {{0},    "zOss_ScheThread5",    NULL,       14,         1,      {0},     {0},     {0}},   \

+  {{0},    "zOss_ScheThread6",    NULL,       15,         1,      {0},     {0},     {0}},   \

+  {{0},    "zOss_ScheThread7",    NULL,       16,         1,      {0},     {0},     {0}},   \

+  {{0},    "zOss_ScheThread8",    NULL,       17,         1,      {0},     {0},     {0}}

+

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

+* Êý¾Ý½á¹¹¶¨ÒåÇø

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

+/* SDLÏà¹Ø»Øµ÷º¯ÊýÀàÐÍ */

+typedef UINT32 (*Task_SEND_HOOK)(UINT32 msg_id, const VOID *buf, UINT16 msg_len, ZOSS_TASK_ID task_id, ZOSS_TASK_ID s_task_id);

+typedef UINT32 (*Task_SEND_DATA_HOOK)(UINT32 msg_id, VOID *buf, UINT16 msg_len, ZOSS_TASK_ID task_id, ZOSS_TASK_ID s_task_id);

+typedef UINT32 (*Task_GET_ALL_ID_HOOK)(ZOSS_TASK_ID *task_id_arr);

+typedef ZOSS_TASK_ID (*Task_GET_ID_HOOK)(const CHAR *task_name);

+typedef CHAR *(*Task_GET_THAKNAME_HOOK)(ZOSS_TASK_ID task_id);

+

+typedef struct 

+{

+    T_ZOss_Node     node;                                   /* Ë«ÏòÁ´±í½áµã         */

+    CHAR            thread_name[ZOSS_MAX_TASKNAME_LEN + 1]; /* Ïß³ÌÃû£¬×64×Ö½Ú   */

+    ZOSS_THREAD_ID  thread_id;                              /* Ïß³ÌID               */

+    UINT32          priority;                               /* Ïß³ÌÓÅÏȼ¶           */

+    UINT8           pno;                                    /* ¶ÀÕ¼Ï̱߳ê־λ       */

+    T_ZOss_List     TCBReady;                               /* ¾ÍÐ÷ÈÎÎñÁ´±íÍ·       */

+    T_ZOss_List     TCBStopped;                             /* ×èÈûÈÎÎñÁ´±íÍ·       */

+    T_ZOss_List     TCBIdle;                                /* ¿ÕÏÐÈÎÎñÁ´±íÍ·       */

+}T_ZOss_TRF;                                                /* µ÷¶ÈÏß³ÌµÇ¼Ç±í       */

+

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

+* º¯ÊýÉùÃ÷Çø

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

+UINT32 Sche_SetTaskID(ZOSS_THREAD_ID threadId, VOID *taskId);

+VOID *Sche_GetTaskID(ZOSS_THREAD_ID threadId);

+

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

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

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

+extern ZOSS_SEMAPHORE_ID gSche_SaticTaskInitSema;

+extern UINT32 gTask_TaskNum;

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif  /* _SUP_TASK_H */

+

+