亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? support.c

?? 瑞星微公司RK27XX系列芯片的SDK開發包
?? C
字號:
/****************************************************************************
 *
 * @module      support.h
 *
 * @created     09-Februrary-2004
 *
 * @abstract    Support functions for the MTP driver stack
 *
 * @copyright   (C) COPYRIGHT Microsoft Corp, 2005
 *

 $Log: support.c,v $
 Revision 1.6  2008/06/19 04:43:27  Administrator
 代碼整理!

 Revision 1.5  2008/06/11 03:59:54  HSL
 修改 WCscat函數的 BUG.

 Revision 1.4  2008/06/04 08:34:11  HSL
 修改 WCscat 函數的 BUG.

 Revision 1.3  2008/06/03 01:43:52  HSL
 增加 WCscat 函數.

 Revision 1.2  2008/05/20 07:44:49  HSL
 根據PC仿真根改部分文件,增加部分WCHAR接口,根據狀態欄進行相應修改.

 Revision 1.1.1.1  2008/05/07 04:15:08  Administrator
 no message

 Revision 1.1.1.1  2008/03/06 13:29:10  Lingzhaojun
 no message

 Revision 1.12  2008/01/07 12:52:19  Huangshilin
 no message

 Revision 1.11  2007/12/06 05:16:21  Huangshilin
 增加 視頻靜態buffer和GUI 復用.修改窗口系統.

 Revision 1.10  2007/11/28 01:48:42  Lingzhaojun
 修復黃世林提交時產生的編譯錯誤

 Revision 1.9  2007/11/27 14:01:35  Huangshilin
 修改 音頻刷屏噪音,系統反應慢的 BUG.

 Revision 1.7  2007/11/17 07:06:25  Lingzhaojun
 狀態欄加入內存和處理器統計顯示

 Revision 1.6  2007/11/13 14:41:18  Fangsaihong
 去除無法播放和錯誤歌曲

 Revision 1.5  2007/11/05 09:53:50  Huangshilin
 增加GUI接口,增加應用資源互斥控制.

 Revision 1.4  2007/10/30 10:28:15  Hanjiang
 no message

 Revision 1.3  2007/10/11 04:08:11  Huangshilin
 System\os

 Revision 1.2  2007/10/08 02:56:08  Lingzhaojun
 添加版本自動注釋腳本

 ****************************************************************************/
#include "include.h"
#include    "memo.h"

#if  defined( BOARD )
#include    "hw_api.h"
#endif

/*****************************************************************************/
/*
    1. 為了保證給給外部提供的接口固定,把所有需要提供的系統接口集中到
       一個文件,并統一命名,統一定位.
*/
/*****************************************************************************/
UINT32 HeapUsed = 0;  //堆統計
static BOOLEAN HeapPrint = TRUE;

#define MaxHeapSpease              1024*1024*2
#define MEMO_DEBUG                      0

/*****************************************************************************/
extern void*  _gpAppHeapHandle;
/*****************************************************************************/
void PrintHeapUsed(void);
//////////////////////////////////////////////////////////////////////////////

char *RockStrDup(const char *__s)
{
    char*   dest;
    size_t  len = strlen(__s);
    len++;
    dest = MALLOC(len);
    if (dest)
    {
        strcpy(dest, __s);
    }
    return (char*)dest;
}

int RockStriCmp(const char * s1, const char * s2)
{
    int        d ;
    while (*s1 && *s2)
    {
        d = (*s1) - (*s2);
        if (d != 0)
        {
            if (d != 'a' -'A' && d != 'A' -'a')
            {
                return d;
            }
            else if (*s1 < 'A' || *s1 > 'z' || (*s1 > 'Z' && *s1 < 'a'))
            {
                return d;
            }
        }
        s1++;
        s2++;
    }
    d = (*s1) - (*s2);
    return d;
}


/*********************************************************************************
Name        :   WCstrlen
Desc        :   取得 UNICODE 字符串的 長度,不包括 結束符0x0000.
Param       :
                str : UNICODE 字符串。

Return      :   長度.
Global      :   無.
Note        :

Author      :     HUANGSL
Log         :
*********************************************************************************/

INT32U WCstrlen(const WCHAR * str)
{
    const WCHAR  *s = str;
    while (*s++);
    return s -str - 1;
}


/*********************************************************************************
Name        :   WCstrcmp
Desc        :   比較兩個 UNICODE 字符串是否相等.
Param       :
                s1 : UNICODE 字符串1。
                s2 : UNICODE 字符串2。

Return      :   0: 表示相等,非 0 表示不相等.
Global      :   無.
Note        :

Author      :     HUANGSL
Log         :
*********************************************************************************/

INT32 WCstrcmp(const WCHAR* s1 , const WCHAR* s2)
{
    INT32       r;
    do
    {
        r = (INT32)(*s1++ - *s2++);

    }
    while (!r && *s1 && *s2);
    return r;
}

WCHAR * WCscat(WCHAR* s1 , const WCHAR * s2)
{

    //while( *s1++ );   //先 ++后比較,如果不 == 0 , 再++后比較.
    while (*s1)
    {
        s1++;
    }

    while (*s2)
    {
        *s1++ = *s2++;
    }

    // ADD TERMINATE '\0'
    *s1++ = 0;

    return s1;

}

/*********************************************************************************
Name        :   WCstrdup
Desc        :   復制一個 UNICODE 字符串.
Param       :
                s : 需要復制的UNICODE 字符串。

Return      :   復制后的 UNICODE 字符串指針.NULL 表示失敗.
Global      :   無.
Note        :   返回指針為動態申請,外部必須負責釋放!!

Author      :     HUANGSL
Log         :
*********************************************************************************/

WCHAR * WCstrdup(const WCHAR* s)
{
    INT32       l = WCstrlen(s) + 1;
    WCHAR       *r ;

    l *= sizeof(WCHAR);
    r = (WCHAR*)MALLOC(l);
    if (r)
    {
        memcpy(r , s , l);
    }

    return r;
}



/*----------------------------------------------------------------------
Name  :  RkMalloc
Desc  :  說明:
  1.由于底層系統部分調用以下函數,因此此文件不可改變!
  2.2007-05-14,huangsl,由于很多指針判斷都已是否 ==NULL 為條件,因此
     此處增加清0操作,以防止外部忘記給某些變量清0。
  3.根據上面一條,保證申請的緩沖區已經為 0.
Params:
Return:  申請到的內存指針
Author:  System Author
Date  :  070830
----------------------------------------------------------------------*/
#if defined(_MSC_VER )
void* RkMalloc(size_t size)
#else
void* malloc(size_t size)
#endif
{
    void * ptr;
    DECLARE_CUP_SR;

    ENTER_CRITICAL();
    ptr = (void*)Malloc((void*) & _gpAppHeapHandle , size);
    EXIT_CRITICAL();

    if ((!ptr))
    {
        TR("Malloc ERROR,size=%d,ptr=0X%x", size, ptr);
        return NULL;
    }

    HeapUsed = HeapUsed + *((unsigned int *)ptr - 1);//size;

#if ( MEMO_DEBUG > 0 )
    //if(HeapPrint)
    {
        TR("Malloc OK,size=%d,ptr=0X%x", size, ptr);
        PrintHeapUsed();  //lingzj add for 堆統計
    }
#endif

    //011120,考慮到 BUFFER可能 很大,MALLOC 很頻繁,因此不做 清除工作.
    //有 應用自己根據需要清除.
    //memset(ptr , 0 , size ); //請BUFFER。
    return ptr;
}




/*----------------------------------------------------------------------
Name  :  RkFree
Desc  :  釋放申請的動態內存
Params:
Return:  處理結果
Author:  System Author
Date  :  070830
----------------------------------------------------------------------*/
#if defined(_MSC_VER )
void RkFree(void *__ptr)
#else
void free(void *__ptr)
#endif
{
    DECLARE_CUP_SR;
    unsigned int  *len = (unsigned int *)__ptr - 1;

    if (MALLOC_NULL(__ptr))
    {

#ifdef ARMULATE
        TR("free ERROR,ptr=0X%x", __ptr);
#endif
        return;
    }

    HeapUsed = HeapUsed - *len;

#if ( MEMO_DEBUG > 0 )
    {
        TR("Free OK,size=%d,ptr=0X%x", *len , __ptr);
        PrintHeapUsed();    //lingzj add for 堆統計
    }
#endif

    ENTER_CRITICAL();
    Free((void*)&_gpAppHeapHandle  , __ptr);
    EXIT_CRITICAL();
}


// 返回值中,TotalMemo =0 表示錯誤.
void RkGetMemoInfo(PMEMO_INFO pMemoInfo)
{
    MemoGetSizeInfo(&_gpAppHeapHandle, pMemoInfo);
}

#ifndef SETUP
#if 0
void RkGetSysMemoInfo(PMEMO_INFO pMemoInfo)
{
    MemoGetSizeInfo(&_gpSysHeapHandle, pMemoInfo);
}
#endif
/*----------------------------------------------------------------------
Name  :  PrintHeapUsed
Desc  :  打印當前堆消耗情況,用于觀察各模塊是否有內存泄漏
   以及統計一個模塊動態內存使用量等

Params:
Return:  無
Author:  zhaojun
Date  :  070830
----------------------------------------------------------------------*/
void PrintHeapUsed(void)
{
#if MEMO_DEBUG

    if (HeapUsed >= MaxHeapSpease - 1000)
        TR("!!!!!!! 堆空間告警 !!!!!!!!!!!!", "");
    else
        TR("當前堆空間總消耗 =0X%x", HeapUsed);

#endif

}
/************************************************************************************************
函數描述: 數值轉ASCII碼,用于文件夾或文件屬性顯示數值
入口參數: long n:要顯示的長整形數值

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合久久av| 欧美一区二区视频在线观看2022| 精品久久久久久最新网址| 水野朝阳av一区二区三区| 欧美精品日韩综合在线| 日韩高清一级片| 2017欧美狠狠色| 丁香激情综合国产| 亚洲免费观看在线视频| 欧美日韩国产另类一区| 蜜臀99久久精品久久久久久软件| 久久综合99re88久久爱| 不卡免费追剧大全电视剧网站| 亚洲欧美日韩国产手机在线| 欧美三片在线视频观看| 久久激五月天综合精品| 国产精品视频一二三区| 欧美综合在线视频| 日本不卡一区二区| 亚洲国产精品成人综合| 色综合久久综合中文综合网| 免费观看成人鲁鲁鲁鲁鲁视频| 久久综合给合久久狠狠狠97色69| 精品国产乱码久久久久久久久| 久久不见久久见免费视频7| 日本一区二区三区久久久久久久久不 | 日韩一区二区三区视频在线观看| 久久www免费人成看片高清| 国产亚洲精久久久久久| 欧美午夜电影网| 国产一二精品视频| 亚洲午夜激情av| 久久综合久久99| 精品视频在线免费观看| 国产精品1区2区| 三级成人在线视频| 日韩理论片网站| 日韩免费成人网| 色av一区二区| 国产麻豆精品久久一二三| 亚洲六月丁香色婷婷综合久久| 日韩精品最新网址| 色老头久久综合| 国产精品88888| 亚洲www啪成人一区二区麻豆| 国产区在线观看成人精品 | 欧美一区二区三区系列电影| 精品日韩99亚洲| 色综合久久久久综合| 狠狠色丁香婷婷综合久久片| 亚洲最大成人网4388xx| 国产三级欧美三级日产三级99 | 国产毛片一区二区| 亚洲成av人综合在线观看| 国产精品理论片| 精品国产乱码久久久久久蜜臀| 欧美撒尿777hd撒尿| 91在线播放网址| 日本vs亚洲vs韩国一区三区二区 | 91蜜桃视频在线| 国产91精品久久久久久久网曝门| 麻豆国产一区二区| 日本强好片久久久久久aaa| 亚洲国产精品影院| 亚洲激情自拍偷拍| 国产精品成人午夜| 中文字幕在线不卡一区| 亚洲国产岛国毛片在线| 欧美精品一区二区不卡| 日韩欧美国产一区在线观看| 欧美色倩网站大全免费| 一本一道波多野结衣一区二区| 99精品1区2区| 91在线免费播放| voyeur盗摄精品| 成人黄色电影在线 | 国产精品久久久久久久裸模| 国产亚洲va综合人人澡精品 | 成人激情开心网| 国产一二三精品| 国产91对白在线观看九色| 国产精品一区二区在线观看不卡| 激情深爱一区二区| 国产原创一区二区| 国产精品影视网| 国产69精品久久久久777| 成人短视频下载| 99久久精品免费| 91亚洲国产成人精品一区二区三| 91在线一区二区| 日本高清不卡视频| 欧美日韩亚洲不卡| 欧美va亚洲va在线观看蝴蝶网| 精品国产成人系列| 国产欧美一区二区在线| 国产精品丝袜91| 一区二区欧美在线观看| 午夜欧美一区二区三区在线播放| 丝袜美腿亚洲综合| 精品亚洲国产成人av制服丝袜| 国产精品一区免费在线观看| caoporm超碰国产精品| 972aa.com艺术欧美| 欧美丰满高潮xxxx喷水动漫| 日韩免费看的电影| 久久久99精品久久| 一区二区三区四区av| 午夜精品一区二区三区三上悠亚| 免费成人在线视频观看| 国产黄色91视频| 在线免费不卡视频| 精品国产髙清在线看国产毛片| 国产亚洲精品资源在线26u| 亚洲天堂网中文字| 日韩不卡一区二区三区| 国产馆精品极品| 在线观看视频91| 2023国产一二三区日本精品2022| 日韩理论片在线| 精品一区二区三区免费视频| 91亚洲精品一区二区乱码| 91精品综合久久久久久| 中文字幕国产一区| 日韩电影在线免费观看| 成人国产精品免费观看视频| 欧美久久一二三四区| 亚洲国产精品成人综合色在线婷婷| 亚洲成在线观看| 成人性生交大片免费| 欧美日韩久久一区二区| 国产精品视频第一区| 蜜桃视频在线一区| 欧美系列日韩一区| 国产日韩欧美精品电影三级在线| 日韩综合一区二区| 91小视频免费看| 2023国产精品自拍| 美女在线观看视频一区二区| 99re亚洲国产精品| 国产日产亚洲精品系列| 日韩av中文字幕一区二区| 一本大道av一区二区在线播放| 久久久亚洲午夜电影| 美女性感视频久久| 欧美日韩高清在线播放| 亚洲欧美自拍偷拍色图| 国产一区二区女| 4438x成人网最大色成网站| 亚洲精品视频一区| 成人免费黄色在线| 日本一区二区视频在线| 久久99精品久久久久久国产越南 | 337p粉嫩大胆色噜噜噜噜亚洲| 一片黄亚洲嫩模| eeuss鲁片一区二区三区 | 欧美一级片免费看| 亚洲午夜久久久| 91国模大尺度私拍在线视频| 中文文精品字幕一区二区| 国产米奇在线777精品观看| 欧美电视剧在线看免费| 日韩不卡手机在线v区| 91精品国产综合久久香蕉麻豆 | 中文天堂在线一区| 国产成人免费在线观看不卡| 欧美精品一区二区三| 另类小说视频一区二区| 日韩视频一区二区| 久久99国产乱子伦精品免费| 日韩视频一区二区三区在线播放| 日本免费在线视频不卡一不卡二| 欧美日韩亚洲综合一区| 午夜精品久久一牛影视| 91精品国产高清一区二区三区蜜臀| 丝袜a∨在线一区二区三区不卡| 欧美日韩免费观看一区三区| 五月天亚洲婷婷| 欧美一区二区高清| 久久成人久久爱| 久久久.com| 波多野结衣在线aⅴ中文字幕不卡| 国产精品美女久久久久aⅴ | 成人自拍视频在线观看| 亚洲国产精品成人综合| 91天堂素人约啪| 亚洲一线二线三线视频| 欧美军同video69gay| 精品一区二区久久久| 欧美激情艳妇裸体舞| 色综合天天综合给合国产| 亚洲在线观看免费| 日韩一区二区三区高清免费看看| 精一区二区三区| 国产精品久久久久毛片软件| 在线一区二区三区做爰视频网站| 亚洲一区在线观看免费 | 一级做a爱片久久| 欧美高清视频不卡网| 国产一区在线不卡| 亚洲美女偷拍久久|