⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guidev_usage.c

📁 ucGUI3.90a没有MemDev这是从3.24向上移植的
💻 C
字号:
/*! @file GUIDEV_Usage.c
 *  Implementation of memory devices 
 *
 *  @author hiber modified
 *  @author Copyleft (C) 1981-2006, All Rights Givenup
 *  @date 04/18/2006
 *  @version 
 *
 *  @note 
 *  @attention 
 *  @warning 
 *  @bug
 *
 *  @todo
 *  @example <file-name>
 *  @see
 */
#include <string.h>
#include "GUI_Protected.h"
#include "GUIDebug.h"

#if GUI_SUPPORT_MEMDEV

extern void * _GUI_ALLOC_h2p_Lock(GUI_HMEM hMem);
#define GUI_ALLOC_H2P(h)          _GUI_ALLOC_h2p_Lock(h)
#define GUI_ALLOC_FREE(handle)    GUI_ALLOC_Free(handle)
#define GUI_ALLOC_LOCK(handle)    _GUI_ALLOC_h2p_Lock(handle)
#define GUI_ALLOC_UNLOCK(handle)

#ifdef GUI_USAGE_H2P
    #undef GUI_USAGE_H2P
    #define GUI_USAGE_H2P(h) ((GUI_USAGE*)_GUI_ALLOC_h2p_Lock(h)) 
#endif

#ifdef GUI_MEMDEV_H2P
    #undef GUI_MEMDEV_H2P
    #define GUI_MEMDEV_H2P _GUI_ALLOC_h2p_Lock
#endif

//////////////////////////////////////////////////////////////////////////

//! Selects a usage object into the active memory device.
void GUI_USAGE_Select(GUI_USAGE_Handle hUsage) 
{
    GUI_MEMDEV * pDev;

    GUI_LOCK();
    pDev = GUI_MEMDEV_H2P(GUI_Context.hDevData);
    pDev->hUsage = hUsage;
    GUI_UNLOCK();
}

//! Decrements the usage count and deletes the usage object if the counter reaches 0.
void GUI_USAGE_DecUseCnt(GUI_USAGE_Handle  hUsage) 
{
    GUI_USAGE* pThis;

    GUI_LOCK();
    pThis = GUI_USAGE_H2P(hUsage);
    if (--pThis->UseCnt == 0) 
    {
        GUI_ALLOC_FREE(hUsage);
    }
    GUI_UNLOCK();
}

#else

void GUIDEV_Usage(void) {
    /* avoid empty object files */
} 

#endif /* GUI_SUPPORT_MEMDEV */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -