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

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

?? guitask.c

?? uCGUI
?? C
字號:
/*************************************************************************************************************
                                                   uC/GUI
                                               嵌入式通用圖形軟件
File        : GUITASK.C
Purpose     : Saves/Restores task context with supported OSs. It also uses a resource semaphore.

The following externals are used and should typically be defined in GUI_X.c:
    U32  GUI_X_GetTaskId();
    void GUI_X_Unlock();
    void GUI_X_Lock();
************************************************************************************************************/
#include <stddef.h>           /* needed for definition of NULL */
#include "GUI_Protected.H"
#include "GUIDEBUG.H"

/*************************************************************************************************************
       Configuration defaults
*************************************************************************************************************/
#ifndef GUI_MAXTASK
  #define GUI_MAXTASK (4)
#endif

#if GUI_OS
/*************************************************************************************************************
       Static data
*************************************************************************************************************/
static struct 
{
  U32  TaskID;
  GUI_CONTEXT Context;
} _Save[GUI_MAXTASK];

static int _CurrentTaskNo = -1;
static int _EntranceCnt   =  0;
static U32 _TaskIDLock = 0;

/*************************************************************************************************************
       Static functions
*************************************************************************************************************/
static int _GetTaskNo(void) 
{
  int i;
  for (i=0; i< GUI_MAXTASK; i++) 
  {
    U32 TaskId = GUI_X_GetTaskId();
    if (_Save[i].TaskID == TaskId)
      return i;
    if (_Save[i].TaskID == 0) 
    {
      _Save[i].TaskID = TaskId;
      return i;
    }
  }
  GUI_DEBUG_ERROROUT("No Context available for task ... (increase GUI_MAXTASK)");
  return 0;
}

/*************************************************************************************************************
       Public functions
*************************************************************************************************************/
void GUI_Unlock(void) 
{
  if (--_EntranceCnt == 0) 
  {
    GUI_X_Unlock();
  }
  /* Test if _EntranceCnt is in reasonable range ... Not required in release builds */
  GUI_DEBUG_ERROROUT_IF((_EntranceCnt < 0), "GUITASK.c: GUI_Unlock() _EntranceCnt underflow ");
}

void GUI_Lock(void) 
{
  if (_EntranceCnt == 0) 
  	{
    GUI_X_Lock();
    _TaskIDLock = GUI_X_GetTaskId();         /* Save task ID */
  } else {
    if (_TaskIDLock != GUI_X_GetTaskId()) 
    	{
      GUI_X_Lock();
      _TaskIDLock = GUI_X_GetTaskId();         /* Save task ID */
    }
  }
  if (++_EntranceCnt == 1) 
  	{
    int TaskNo = _GetTaskNo();
    if (TaskNo != _CurrentTaskNo) 
    	{
      /* Save data of current task */
      if (_CurrentTaskNo>=0) {  /* Make sure _CurrentTaskNo is valid */
        _Save[_CurrentTaskNo].Context = GUI_Context;
      }
      /* Load data of this task */
      GUI_Context = _Save[TaskNo].Context;
      _CurrentTaskNo = TaskNo;
    }
  }
  /* Test if _EntranceCnt is in reasonable range ... Not required in release builds */
  GUI_DEBUG_ERROROUT_IF((_EntranceCnt>12), "GUITASK.c: GUI_Lock() _EntranceCnt overflow ");
}

void GUITASK_Init(void) 
{
  int i;
  _CurrentTaskNo =-1;   /* Invalidate */
  GUI_X_InitOS();
  for (i=0; i<GUI_MAXTASK; i++) 
  {
    _Save[i].Context = GUI_Context;
  }
}

#else

/*************************************************************************************************************
       Dummy Kernel routines
The routines below are dummies in case configuration tells us not
to use any kernel. In this case the routines below should
not be required, but it can not hurt to have them. The linker
will eliminate them anyhow.
*************************************************************************************************************/
void GUI_Unlock(void) {}
void GUI_Lock(void) {}
void GUITASK_Init(void) {}
void GUITASK_StoreDefaultContext(void) {}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
aa级大片欧美| 伦理电影国产精品| 久久99精品国产麻豆婷婷洗澡| 99re视频这里只有精品| 一区二区高清免费观看影视大全| av男人天堂一区| 9人人澡人人爽人人精品| 成人免费观看av| 亚洲精品老司机| 91精品国产91热久久久做人人| 久久99久久精品欧美| 免费在线观看成人| 欧美国产欧美亚州国产日韩mv天天看完整| 成人一区二区三区在线观看| 国产成人综合亚洲网站| 亚洲一区二区三区四区五区黄| 欧美大片日本大片免费观看| 成人免费黄色大片| av中文字幕不卡| 欧美亚洲另类激情小说| 国产原创一区二区三区| 国产色一区二区| 欧洲中文字幕精品| 国产伦精一区二区三区| 成人国产精品免费观看| 激情综合一区二区三区| 成人精品视频.| 在线一区二区三区四区五区| 国产精一品亚洲二区在线视频| 亚洲高清久久久| 亚洲日本在线观看| 26uuu另类欧美亚洲曰本| 欧美日韩一级二级三级| 91看片淫黄大片一级| 国产激情一区二区三区四区| 91首页免费视频| 日韩精品一区在线观看| 亚洲男人的天堂一区二区| 国产女同互慰高潮91漫画| 日韩午夜在线影院| 日韩一区二区免费电影| 国产精品二三区| 国产精品美女一区二区三区| 久久久激情视频| 久久久久久久久99精品| 亚洲一区av在线| 成人v精品蜜桃久久一区| 日韩一区二区在线看片| 亚洲精品亚洲人成人网在线播放| 国内成人自拍视频| 粉嫩蜜臀av国产精品网站| 国产酒店精品激情| 69堂精品视频| 337p亚洲精品色噜噜噜| 综合激情网...| 国产精品99久| 精品国产乱码久久久久久老虎 | 亚洲天堂2016| 麻豆一区二区在线| 精品一区二区在线视频| 在线观看日韩国产| 亚洲男人的天堂在线观看| 不卡的av中国片| 国产色婷婷亚洲99精品小说| 国产一区二区福利| 日韩精品一区二区三区在线观看| 天天色图综合网| 热久久一区二区| 欧美日韩一级二级| 天天免费综合色| 69精品人人人人| 日日欢夜夜爽一区| 国产成人免费视| 久久综合久久久久88| 黑人巨大精品欧美一区| 日韩午夜在线影院| 国产在线精品一区二区三区不卡| 日韩欧美亚洲一区二区| 久久爱另类一区二区小说| 欧美电视剧在线看免费| 精品亚洲porn| 国产午夜精品理论片a级大结局| 国产精品综合在线视频| 国产精品免费网站在线观看| 91丨九色丨国产丨porny| 亚洲欧美激情一区二区| 欧美色图片你懂的| 日韩不卡在线观看日韩不卡视频| 国产成人福利片| 国产精品久久久久久久第一福利| av网站免费线看精品| 夜夜精品视频一区二区 | 日韩精品一区第一页| 欧美一级高清片| 国产a精品视频| 一区二区三区鲁丝不卡| 欧美巨大另类极品videosbest| 亚洲国产精华液网站w| 一本色道久久综合亚洲aⅴ蜜桃| 91精品国产综合久久福利| 九九国产精品视频| 国产精品免费视频一区| 欧美日精品一区视频| 经典三级在线一区| 一区二区三区高清在线| 欧美r级电影在线观看| 亚洲成人资源在线| 欧美性感一区二区三区| 麻豆精品一二三| 综合久久久久久久| 欧美成人精品高清在线播放| 99视频精品全部免费在线| 免费在线观看日韩欧美| 亚洲日本欧美天堂| 久久久国产一区二区三区四区小说 | **性色生活片久久毛片| 国产乱码一区二区三区| 一区二区三区欧美视频| 精品盗摄一区二区三区| 日本乱人伦一区| 粉嫩av亚洲一区二区图片| 男女男精品网站| 一区二区三区四区在线播放| 2020国产精品久久精品美国| 日本精品视频一区二区| 成人综合婷婷国产精品久久 | 欧美少妇xxx| 成人免费黄色大片| 韩国成人精品a∨在线观看| 亚洲一区中文日韩| 中文字幕一区二区三区四区不卡| 精品国产凹凸成av人导航| 欧美猛男男办公室激情| 日韩黄色一级片| 亚洲女同一区二区| 国产精品欧美综合在线| 欧美tickling挠脚心丨vk| 欧美日韩在线一区二区| 色欲综合视频天天天| 成人av综合在线| 成人午夜视频网站| 国内一区二区视频| 韩国视频一区二区| 六月婷婷色综合| 国内精品国产三级国产a久久| 免费观看日韩电影| 免费看黄色91| 裸体歌舞表演一区二区| 日韩精品1区2区3区| 婷婷国产在线综合| 琪琪一区二区三区| 久久av资源网| 黄页视频在线91| 国产一区二区三区电影在线观看| 国产精品一色哟哟哟| 国产成a人亚洲精| av在线不卡观看免费观看| va亚洲va日韩不卡在线观看| 91污片在线观看| 在线欧美日韩精品| 欧美在线观看一区| 欧美精品自拍偷拍| 欧美精品一区二区三区视频| www国产成人| 国产精品乱码久久久久久| 亚洲美女免费在线| 青青草国产成人99久久| 国产呦萝稀缺另类资源| 成人免费看片app下载| 在线免费观看日本一区| 717成人午夜免费福利电影| 2019国产精品| 亚洲婷婷在线视频| 日韩中文字幕av电影| 国产成人精品三级麻豆| 在线观看不卡视频| 精品久久久久久无| 中文字幕在线观看一区二区| 亚洲大型综合色站| 国产乱淫av一区二区三区| 99久久精品免费看国产免费软件| 欧美丝袜丝交足nylons图片| 日韩精品中文字幕在线不卡尤物| 国产婷婷色一区二区三区四区| 亚洲裸体xxx| 久久激情综合网| 色综合久久久久久久久久久| 欧美一区二区黄| 中文字幕欧美一区| 美女脱光内衣内裤视频久久网站 | 国产一区视频导航| www..com久久爱| 日韩三级视频在线看| 国产精品久久久久久久久图文区 | 精品国产91亚洲一区二区三区婷婷| 国产精品私人自拍| 日本在线不卡视频一二三区| 99久久精品费精品国产一区二区| 欧美一区二区女人| 亚洲国产一区二区a毛片|