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; /* µ÷¶ÈÏ̵߳ǼDZí */
+
+/**************************************************************************
+* º¯ÊýÉùÃ÷Çø
+**************************************************************************/
+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 */
+
+