[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/cp/ps/plat/inc/oss/oss_clib.h b/cp/ps/plat/inc/oss/oss_clib.h
new file mode 100644
index 0000000..9e1c883
--- /dev/null
+++ b/cp/ps/plat/inc/oss/oss_clib.h
@@ -0,0 +1,279 @@
+/**

+ * @file oss_clib.h

+ * @brief C¿âÍ·Îļþ

+ *

+ * Copyright (C) 2017 Sanechips Technology Co., Ltd.

+ * 

+ */

+#ifndef _OSS_CLIB_H

+#define _OSS_CLIB_H

+

+#define _USE_CLIB

+

+#ifdef _USE_CLIB

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

+ *                           Include header files                              *

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

+#if defined (_OS_LINUX)

+#include <linux/kernel.h>

+#include <linux/slab.h>

+#include <linux/string.h>

+#else

+#include <stdio.h>

+#include <stdlib.h>

+#include <string.h>

+#include <assert.h>

+#include <time.h>

+#include <math.h>

+#include <ctype.h>

+#endif

+

+#ifdef _OS_WIN

+#include <stddef.h>

+#endif

+#include "oss_pub.h"

+#include "oss_compiler.h"

+

+#ifdef __cplusplus

+extern "C"

+{

+#endif

+

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

+ *                             Macro definitions                               *

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

+#ifdef _OS_LINUX

+/*

+ * stdio.h

+ */

+#define printf(fmt, ...)  printk(fmt, ##__VA_ARGS__)

+

+/*

+ * random

+ */

+#define RAND_MAX        (0x7FFFFFFF)

+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0))

+# define srand(s)        prandom_seed(s)

+# define rand()          (prandom_u32() & RAND_MAX)

+#else

+# define srand(s)        srandom32(s)

+# define rand()          (random32() & RAND_MAX)

+#endif

+

+/*

+ * stdlib.h

+ */

+#define atol(nptr)      simple_strtol(nptr, (char **)NULL, 10)

+#define atoi(nptr)      simple_strtoul(nptr, (char **)NULL, 10)

+

+#define strtol          simple_strtol

+#define strtoul         simple_strtoul

+

+#define malloc(size)    kmalloc(size, GFP_ATOMIC)

+#define free(ptr)       kfree(ptr)

+

+/*

+ * assert.h

+ */

+#define assert(exp)     zOss_ASSERT(exp)

+

+/*

+ * time

+ */

+#define settimeofday    sys_settimeofday

+

+/*

+ * unistd.h

+ */

+#define exit(nr)        do_exit(nr)

+

+#define zOss_Malloc(size)                           kmalloc(size, GFP_ATOMIC)  

+#define zOss_MallocEx(size)                         kmalloc(size, GFP_KERNEL | __GFP_PAGEMODEM)

+#define zOss_Realloc(mem_ptr, new_size)             krealloc(mem_ptr, new_size, GFP_ATOMIC)

+#define zOss_Free(mem_ptr)                          kfree(mem_ptr) 

+#define zOss_Memcpy(dest_ptr, src_ptr, size)        memcpy(dest_ptr, src_ptr, size)

+#define zOss_Memset(dest_ptr, value, size)          memset(dest_ptr, value, size)

+    

+#define zOss_Memmove(dest_ptr, src_ptr, count)      memmove(dest_ptr, src_ptr, count)

+#define zOss_Memcmp(f_buf_ptr, s_buf_ptr, count)    memcmp(f_buf_ptr, s_buf_ptr, count)

+

+#else

+/**

+ * @brief ¶¯Ì¬ÉêÇëÄڴ溯Êýºê

+ * @param size Èë²Î£¬ÉêÇëÄÚ´æµÄ´óС

+ * @return ³É¹¦·µ»Ø·ÖÅäµÄÄÚ´æÖ¸Õ룬ʧ°Ü·µ»Ø¿ÕÖ¸Õë

+ * @retval void*ÀàÐ͵ÄÖ¸Õë   ³É¹¦

+ * @retval NULL              ʧ°Ü

+ */

+#define zOss_Malloc(size)                           mem_malloc(size, ZOSS_FILE, ZOSS_LINE)    

+

+/**

+ * @brief ¶¯Ì¬ÄÚ´æµ÷Õûº¯Êýºê

+ * @param mem_ptr  Èë²Î£¬Òªµ÷ÕûµÄÄÚ´æÖ¸Õë

+ * @param new_size Èë²Î£¬Òªµ÷ÕûµÄÄÚ´æ´óС

+ * @return ³É¹¦·µ»Øµ÷ÕûºóµÄÄÚ´æÖ¸Õ룬ʧ°Ü·µ»Ø¿ÕÖ¸Õë

+ * @retval void*ÀàÐ͵ÄÖ¸Õë   ³É¹¦

+ * @retval NULL              ʧ°Ü

+ */

+#define zOss_Realloc(mem_ptr, new_size)             mem_re_alloc(mem_ptr, new_size, ZOSS_FILE, ZOSS_LINE)

+

+/**

+ * @brief ÊÍ·ÅÄڴ溯Êýºê

+ * @param mem_ptr Èë²Î£¬ÒªÊͷŵÄÄÚ´æÖ¸Õë

+ * @return void

+ */

+#define zOss_Free(mem_ptr)                          mem_free_extend(mem_ptr, ZOSS_FILE, ZOSS_LINE) 

+

+/**

+ * @brief Äڴ濽±´º¯Êýºê

+ * @param dest_ptr  Èë²Î£¬Ä¿±êÄÚ´æÖ¸Õë

+ * @param src_ptr   Èë²Î£¬Ô´ÄÚ´æÖ¸Õë

+ * @param size      Èë²Î£¬Òª¿½±´µÄ´óС

+ * @return ·µ»Ødest_ptrµÄÖ¸Õë

+ */

+#define zOss_Memcpy(dest_ptr, src_ptr, size)        mem_memcpy(dest_ptr, src_ptr, size, ZOSS_FILE, ZOSS_LINE)

+

+/**

+ * @brief ÄÚ´æ³õʼ»¯º¯Êýºê

+ * @param dest_ptr  Èë²Î£¬Òª³õʼ»¯µÄÄ¿±êÄÚ´æÖ¸Õë

+ * @param value     Èë²Î£¬³õʼ»¯µÄÖµ

+ * @param size      Èë²Î£¬³õʼ»¯µÄÄÚ´æ´óС

+ * @return ·µ»Ø±»³õʼ»¯ÄÚ´æµÄÖ¸Õ루void*£©

+ */

+#define zOss_Memset(dest_ptr, value, size)          mem_memset(dest_ptr, value, size, ZOSS_FILE, ZOSS_LINE)

+    

+/**

+ * @brief ÄÚ´æ°áÒÆ

+ * @param dest_ptr  Èë²Î£¬Òª°áÒÆµÄÄ¿±êÄÚ´æÖ¸Õë

+ * @param src_ptr   Èë²Î£¬°áÒÆµÄÔ´ÄÚ´æÖ¸Õë

+ * @param count     Èë²Î£¬°áÒÆÄÚ´æ´óС

+ * @return ·µ»Ødest_ptrµÄÖ¸Õë

+ */

+#define zOss_Memmove(dest_ptr, src_ptr, count)      mem_memmove(dest_ptr, src_ptr, count)

+

+/**

+ * @brief ÄÚ´æ±È½Ïº¯Êýºê

+ * @param f_buf_ptr  Èë²Î£¬Òª±È½ÏµÄÒ»·½ÄÚ´æÖ¸Õë

+ * @param s_buf_ptr  Èë²Î£¬Òª±È½ÏµÄÁíÒ»·½ÄÚ´æÖ¸Õë

+ * @param count      Èë²Î£¬Òª±È½ÏµÄÄÚ´æ´óС

+ * @return Ïàͬ·µ»Ø0£¬·ñÔò²»Ïàͬ

+ */

+#define zOss_Memcmp(f_buf_ptr, s_buf_ptr, count)    mem_memcmp(f_buf_ptr, s_buf_ptr, count)

+

+#endif

+

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

+ *                             Type definitions                                *

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

+

+/**

+ * @brief ZOSS_TIME_TµÄÀàÐͶ¨Òå

+ */

+typedef UINT32  ZOSS_TIME_T;

+

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

+ *                       Global variable declarations                          *

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

+

+

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

+ *                       Global function declarations                          *

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

+/**

+ * @brief ·µ»Ø´Ó¹«Ôª1970Äê1ÔÂ1ÈÕµÄUTCʱ¼ä´Ó0ʱ0·Ö0ÃëËãÆðµ½ÏÖÔÚËù¾­¹ýµÄÃëÊý

+ * @param t       ³ö²Î£¬±£´æ´Ó¹«Ôª1970Äê1ÔÂ1ÈÕµÄUTCʱ¼ä´Ó0ʱ0·Ö0ÃëËãÆðµ½ÏÖÔÚËù¾­¹ýµÄ

+                    ÃëÊý£¬¸Ã²ÎÊý¿ÉΪNULL

+ * @return ´Ó¹«Ôª1970Äê1ÔÂ1ÈÕµÄUTCʱ¼ä´Ó0ʱ0·Ö0ÃëËãÆðµ½ÏÖÔÚËù¾­¹ýµÄÃëÊý

+ * @note 

+ * @warning 

+ */

+ZOSS_TIME_T zOss_Time(ZOSS_TIME_T *t);

+

+#ifndef DOXYGEN_SHOULD_SKIP_THIS

+

+VOID *zOss_CacheMalloc(UINT32 size);

+

+VOID zOss_CacheFree(VOID *ptr);

+

+/* ÕûÊýת³É×Ö·û */

+char *itoa(int num, char *str, int radix);

+

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

+ *                      Inline function implementations                        *

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

+#if defined(_MEM_USE_HEAP)

+

+#if defined (_OS_TOS)

+static inline VOID *mem_malloc(UINT32 size, const CHAR *file, UINT32 line)

+{

+    return (VOID *)tos_heap_alloc(size, file, line);

+}

+

+static inline VOID *mem_re_alloc(VOID *mem_ptr, UINT32 new_size, const CHAR *file, UINT32 line)

+{

+    return (VOID *)tos_heap_realloc(mem_ptr, new_size, file, line);

+}

+

+static inline VOID mem_free_extend(VOID *mem_ptr, const CHAR *file, UINT32 line)

+{

+    (VOID)tos_heap_free(mem_ptr, file, line);

+}

+#elif defined (_OS_LINUX)

+static inline VOID *mem_malloc(UINT32 size, const CHAR *file, UINT32 line)

+{

+    return (VOID *)kmalloc(size, GFP_KERNEL);

+}

+

+static inline VOID *mem_re_alloc(VOID *mem_ptr, UINT32 new_size, const CHAR *file, UINT32 line)

+{

+    return (VOID *)krealloc(mem_ptr, new_size, GFP_KERNEL);

+}

+

+static inline VOID mem_free_extend(VOID *mem_ptr, const CHAR *file, UINT32 line)

+{

+    (VOID)kfree(mem_ptr);

+}

+#endif

+

+static inline VOID *mem_memcpy(VOID *dest_ptr, const VOID *src_ptr, UINT32 size, const CHAR *file, UINT32 line)

+{

+    return memcpy(dest_ptr, src_ptr, size);

+}

+

+static inline VOID *mem_memset(VOID *dest_ptr, SINT32 value, UINT32 size, const CHAR *file, UINT32 line)

+{

+    return memset(dest_ptr, value, size);

+}

+

+static inline VOID *mem_memmove(VOID *dest_ptr, const VOID *src_ptr, UINT32 count)

+{

+    return memmove(dest_ptr, src_ptr, count);

+}

+

+static inline SINT32 mem_memcmp(const VOID *f_buf_ptr, const VOID *s_buf_ptr, UINT32 count)

+{

+    return memcmp(f_buf_ptr, s_buf_ptr, count);

+}

+

+#else

+

+VOID *mem_malloc(UINT32 size, const CHAR *file, UINT32 line);

+VOID *mem_re_alloc(VOID *mem_ptr, UINT32 new_size, const CHAR *file, UINT32 line);

+VOID mem_free_extend(VOID *mem_ptr, const CHAR *file, UINT32 line);

+VOID *mem_memcpy(VOID *dest_ptr, const VOID *src_ptr, UINT32 size, const CHAR *file, UINT32 line);

+VOID *mem_memset(VOID *dest_ptr, SINT32 value, UINT32 size, const CHAR *file, UINT32 line);

+VOID *mem_memmove(VOID *dest_ptr, const VOID *src_ptr, UINT32 count);

+SINT32 mem_memcmp(const VOID *f_buf_ptr, const VOID *s_buf_ptr, UINT32 count);

+

+#endif

+

+#endif//#ifndef DOXYGEN_SHOULD_SKIP_THIS

+

+#ifdef __cplusplus

+}

+#endif

+

+#endif //#ifdef _USE_CLIB

+

+#endif //#ifndef _OSS_CLIB_H

+