/*****************************************************************************
* 函 数 名  : mdrv_sfree
*
* 功能描述  :释放由mdrv_smalloc分配的内存。
*
* 输入参数  : pBuf:指向要释放的内存块的指针
*
* 输出参数  : 无
* 返 回 值  :  0: 成功
*             -1: 失败
****************************************************************************/
int mdrv_sfree(void*  pBuf)
{
#ifdef CONFIG_MEM
    bsp_sfree(pBuf);
#endif
    return MDRV_OK;
}
/*****************************************************************************
* 函 数 名  : BSP_SFree
*
* 功能描述  : BSP 动态内存释放(加spin lock保护,多核场景使用)(Debug接口)
*
* 输入参数  : pMem: 动态内存指针
*             pFileName: 使用的源文件
*             u32Line:   所在文件的行号
*
* 输出参数  : 无
* 返 回 值  : 无
*****************************************************************************/
void  bsp_sfree_dbg(void* pMem, u8* pFileName, u32 u32Line)
{
    if(0 == *g_mem_init_mark)
    {
        return;
    }
    bsp_sfree(pMem);
    return;
}
STATIC u32 mem_smalloc_test(u32 size)
{
    void * pret = bsp_smalloc(size, MEM_ICC_DDR_POOL);
    if(pret)
    {
        mem_print_dbg("sucess BSP_Malloc addr:%x   size:%d", pret, size);
        bsp_sfree(pret);
        return MEM_TEST_OK;
    }
    else
    {
        mem_print_error("fail! BSP_Malloc addr:%x   size:%d", pret, size);
        return MEM_TEST_ERROR;
    }

}
STATIC s32 use_smem_test(int size)
{
    u32* pret = (u32*)bsp_smalloc(size, MEM_ICC_DDR_POOL);
    u32* praw = pret;
    u32  rawsize = size;
    if(pret)
    {
        mem_print_dbg("sucess BSP_Malloc addr:%x   size:%d", pret, size);
        while(size > 0)
        {
            size -= sizeof(u32);
            *pret = ACORE_MAGIC_NUM;
            pret++;
        }
        taskDelay(200);
        size = rawsize;
        pret = praw;
        while(size > 0)
        {
            size -= sizeof(u32);
            if(*pret != ACORE_MAGIC_NUM)
            {
                mem_print_error("fail! Use smalloc fail addr:%x     size:%d", pret, size);
                return MEM_TEST_ERROR;
            }
            pret++;
        }

        bsp_sfree(praw);
        return MEM_TEST_OK;
    }
    else
    {
        mem_print_error("fail! BSP_Malloc addr:%x   size:%d", pret, size);
        return MEM_TEST_ERROR;
    }
}