zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/cp/ps/plat/inc/oss/oss_compiler.h b/cp/ps/plat/inc/oss/oss_compiler.h
new file mode 100755
index 0000000..320dfb1
--- /dev/null
+++ b/cp/ps/plat/inc/oss/oss_compiler.h
@@ -0,0 +1,167 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

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

+* Ä£ ¿é Ãû : P98C_OSS

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

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : Óë±àÒëÆ÷ºêÏà¹ØµÄºê¶¨Òå

+* ×÷    Õß : chenxingfang

+* °æ    ±¾ : V1.0

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

+* ÆäËü˵Ã÷ : 

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

+

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

+* Ð޸ļǼ

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

+#ifndef _OSS_COMPILER_H

+#define _OSS_COMPILER_H

+

+#define _USE_COMPILER

+#ifdef _USE_COMPILER

+

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

+* #includeÇø

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

+#ifdef _OS_TOS

+# include "tos_link_info.h"

+#endif

+

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

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

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

+#ifdef _OS_LINUX

+

+#ifdef _USE_TCM

+# define __tcm_func          __tcmfunc

+# define __tcm_call_func     __attribute__((long_call))

+# define __tcm_local_func    __tcmlocalfunc

+# define __tcm_data          __tcmdata

+# define __tcm_const         __tcmconst

+# define __gprof             __attribute__((section(".gprof"), instrument_functions))

+#else

+# define __tcm_func

+# define __tcm_call_func

+# define __tcm_local_func

+# define __tcm_data

+# define __tcm_const

+# define __gprof

+#endif

+#ifdef CONFIG_MODEM_CODE_IS_MAPPING

+# define __ps_static_func         __attribute__((section(".ps_static_func"), long_call)) noinline

+# define __ps_4g_func             __attribute__((section(".ps_4g_func"), long_call)) noinline

+# define __ps_3g_func             __attribute__((section(".ps_3g_func"), long_call)) noinline

+# define __ps_2g_func             __attribute__((section(".ps_2g_func"), long_call)) noinline

+# define __ps_comm_func             __attribute__((section(".ps_comm_func"), long_call)) noinline

+#else

+# define __ps_static_func         

+# define __ps_4g_func             

+# define __ps_3g_func             

+# define __ps_2g_func             

+# define __ps_comm_func           

+#endif

+#else   // #ifdef _OS_LINUX

+

+#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) && (__GNUC_PATCHLEVEL__ == 2)

+# define barrier()  asm volatile( "" : : : "memory" )

+#else

+# define barrier()

+#endif

+

+#if defined(__GNUC__) && defined (_USE_TCM)

+# define __tcm_func         __attribute__((section(".itcm"), long_call)) noinline

+# define __tcm_call_func    __attribute__((long_call))

+# define __tcm_data         __attribute__((section(".dtcm")))

+# define __gprof            __attribute__((section(".gprof"), instrument_functions))

+#elif defined (__ARMCC_VERSION) && defined (_USE_TCM)

+# define __tcm_func         __attribute__((section(".itcm")))

+# define __tcm_call_func    

+# define __tcm_data         __attribute__((section(".dtcm")))

+# define __gprof 

+#else

+# define __tcm_func

+# define __tcm_call_func

+# define __tcm_data

+# define __gprof

+#endif

+

+#ifdef __GNUC__

+# define inline         __inline__

+# define always_inline  __inline__ __attribute__((always_inline))

+# define noinline       __attribute__((noinline))

+#elif defined (__ARMCC_VERSION)

+# define inline         __inline

+# define always_inline  __forceinline

+# define noinline

+#elif defined (_MSC_VER)

+# define inline         inline

+# define always_inline  inline

+# define noinline

+#else

+# define inline

+# define always_inline

+# define noinline

+#endif

+

+#endif  // #ifdef _OS_LINUX

+

+#ifdef __GNUC__

+//#pragma GCC optimize("-O0")

+//#pragma GCC optimize("-O2")

+# define __optimize(x)  __attribute__((optimize(__str(x))))

+#else

+# define __optimize(x)

+#endif

+

+#ifdef __ARMCC_VERSION

+# define PRAGMA(X)          _Pragma(#X)

+# define RODATA_BEGIN(X)    PRAGMA(arm section rodata=#X)   

+# define RWDATA_BEGIN(X)    PRAGMA(arm section rwdata=#X)   

+# define ZIDATA_BEGIN(X)    PRAGMA(arm section zidata=#X)  

+# define CODE_BEGIN(X)      PRAGMA(arm section code=#X)   

+

+# define RODATA_END         _Pragma("arm section rodata")

+# define RWDATA_END         _Pragma("arm section rwdata")

+# define ZIDATA_END         _Pragma("arm section zidata")

+# define CODE_END           _Pragma("arm section code")

+#else

+# define PRAGMA(X)

+# define RODATA_BEGIN(X)

+# define RWDATA_BEGIN(X)

+# define ZIDATA_BEGIN(X)

+# define CODE_BEGIN(X)

+

+# define RODATA_END

+# define RWDATA_END

+# define ZIDATA_END

+# define CODE_END

+#endif

+

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

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

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

+

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

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

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

+

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

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

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

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif  /* _USE_COMPILER    */

+

+#endif  /* _OSS_COMPILER_H  */

+

+