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

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

?? task.cpp

?? C++嵌入系統實例不是很全,總共7個分別是2,3,5,6,7,8,9
?? CPP
字號:
/**********************************************************************
 *
 * Filename:    task.cpp
 * 
 * Description: An implementation of real-time tasks for ADEOS.
 *
 * Notes:       TaskList insertion bug fixed in this release.
 *
 * 
 * Copyright (c) 1998 by Michael Barr.  This software is placed into
 * the public domain and may be used for any purpose.  However, this
 * notice must not be changed or removed and no warranty is either
 * expressed or implied by its publication or distribution.
 **********************************************************************/

#include "adeos.h"


TaskId    Task::nextId = 0;


/**********************************************************************
 *
 * Method:      TaskList()
 *
 * Description: Create a new linked list of tasks.
 *
 * Notes:	    
 * 
 * Returns:	    None defined.
 *
 **********************************************************************/
TaskList::TaskList()
{
    pTop = NULL;

}   /* TaskList() */


/**********************************************************************
 *
 * Method:      insert()
 *
 * Description: Insert a task into an ordered linked list.
 *
 * Notes:	    The caller is responsible for disabling interrupts.
 * 
 * Returns:	    None defined.
 *
 **********************************************************************/
void
TaskList::insert(Task * pTask)
{
    Task **         ppPrev = &this->pTop;


	// 
	// Handle the case of an empty list. 
	// 
	if (*ppPrev == NULL) 
	{ 
		*ppPrev == pTask; 
		return;  
	} 

    //
    // Walk down the ordered list until a lower priority task is found.
    //
    while (*ppPrev != NULL && pTask->priority <= (*ppPrev)->priority)
    {
        ppPrev = &(*ppPrev)->pNext;
    }

    // 
    // Insert the new task into the list here.
    //
    if (ppPrev == &(this->pTop) && 
        pTask->priority > (*ppPrev)->priority) 
    {                                         
      // 
      // Insert task at top of list.
      //   
      pTask->pNext = (*ppPrev);           
      this->pTop = pTask;
    }
    else
    {
      //
      // Insert task after current position.
      //
	  pTask->pNext = (*ppPrev)->pNext; 
	  *ppPrev = pTask; 
    }

}   /* insert() */


/**********************************************************************
 *
 * Method:      remove()
 *
 * Description: Remove a task from a linked list.
 *
 * Notes:	    The caller is responsible for disabling interrupts.
 * 
 * Returns:	    A pointer to the removed task.  Or NULL if it wasn't
 *              found in the linked list.
 *
 **********************************************************************/
Task *
TaskList::remove(Task * pTask)
{
    Task **  ppPrev = &this->pTop;


    //
    // Walk down the linked list until the dead task is found.
    //
    while (*ppPrev != NULL && *ppPrev != pTask)
    {
        ppPrev = &(*ppPrev)->pNext;
    }

    //
    // Ensure that the task was actually found.
    //
    if (*ppPrev == NULL)
    {
        return (NULL);
    }

    //
    // Remove the task from the linked list.
    //
    *ppPrev = pTask->pNext;

    return (pTask);

}   /* remove() */


/**********************************************************************
 *
 * Function:    run()
 *
 * Description: Start a task and cleanup after it if it exits.
 *
 * Notes:       
 * 
 * Returns:     None defined.
 *
 **********************************************************************/
void
run(Task * pTask)
{
    //
    // Start the task, by executing the associated function.
    //
    pTask->entryPoint();

    enterCS();                          ////// Critical Section Begin

    //
    // Remove this task from the scheduler's data structures.
    //
    os.readyList.remove(pTask);
    os.pRunningTask = NULL;

    //
    // Free the task's stack space.
    //
    delete pTask->pStack;

    os.schedule();                          // Scheduling Point

    // This line will never be reached.

}   /* run() */


/**********************************************************************
 *
 * Method:      Task()
 *
 * Description: Create a new task and initialize its state.
 *
 * Notes:
 * 
 * Returns:     
 *
 **********************************************************************/
Task::Task(void (*function)(), Priority p, int stackSize)
{
    stackSize /= sizeof(int);               // Convert bytes to words.

    enterCS();                          ////// Critical Section Begin

    // 
    // Initialize the task-specific data.
    //
    id         = Task::nextId++;
    state      = Ready;
    priority   = p;        
    entryPoint = function;
	pStack     = new int[stackSize];
    pNext      = NULL;

    //
    // Initialize the processor context.
    //
    contextInit(&context, run, this, pStack + stackSize);    

    //
    // Insert the task into the ready list.
    //
    os.readyList.insert(this);   

    os.schedule();                          // Scheduling Point
    
    exitCS();                           ////// Critical Section End

}   /* Task() */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久99久久精品免费观看| ww亚洲ww在线观看国产| 日韩免费高清视频| 日本一区二区免费在线| 亚洲人成小说网站色在线| 肉色丝袜一区二区| 国产精品 日产精品 欧美精品| 91在线国内视频| 成人精品视频一区二区三区| 欧美中文字幕一二三区视频| 日韩免费观看高清完整版在线观看| 欧美日韩一级片网站| 久久久久久久久久久黄色| 亚洲精品日韩一| 蜜臀久久99精品久久久久久9| 国产成人精品免费网站| 在线观看日韩av先锋影音电影院| 日韩西西人体444www| 国产精品国产三级国产| 视频一区视频二区中文| 久久99精品国产麻豆婷婷洗澡| 成人高清视频免费观看| 欧美日韩成人综合在线一区二区| 国产亚洲欧美一区在线观看| 一区二区三区日韩欧美| 国产精品一区二区在线看| 欧美日韩国产综合久久| 久久香蕉国产线看观看99| 亚洲高清免费观看| 91丨九色丨蝌蚪丨老版| 亚洲精品一区二区三区在线观看| 亚洲一区在线观看免费| 韩国一区二区三区| 欧美一区三区二区| 亚洲va中文字幕| 欧美午夜精品电影| 国产精品高潮久久久久无| 国产精品99久久久久久有的能看| 3d成人h动漫网站入口| 亚洲一区二区三区四区在线| 亚洲一区二区三区不卡国产欧美| 国产91丝袜在线播放0| 久久久噜噜噜久久人人看 | 亚洲人成在线播放网站岛国| 欧美bbbbb| 日韩视频一区二区在线观看| 国产欧美在线观看一区| 午夜伦欧美伦电影理论片| 欧美色图天堂网| 日本不卡一区二区三区| 欧美一级一区二区| 激情成人午夜视频| 久久综合给合久久狠狠狠97色69| 国产综合一区二区| 91精品国产一区二区| 亚洲成av人片在线| 欧美成人r级一区二区三区| 国产一区二区三区美女| 自拍偷拍国产亚洲| 欧美日韩激情在线| 国产精品白丝av| 亚洲欧美综合色| 在线成人免费观看| 激情综合网av| 亚洲午夜久久久久久久久电影院| 欧美视频在线观看一区二区| 久久精品国产成人一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 99re热这里只有精品视频| 亚洲在线观看免费视频| 精品乱人伦小说| 国产成人鲁色资源国产91色综| 国产精品白丝在线| 制服丝袜国产精品| 91麻豆免费在线观看| 美女视频一区在线观看| 亚洲视频一区二区在线| 精品国产亚洲在线| 欧美日韩激情在线| 成人免费三级在线| 亚洲第一电影网| 日韩美女视频19| 日本一区二区三级电影在线观看| 欧美午夜精品久久久久久超碰| 国产在线不卡一卡二卡三卡四卡| 亚洲bt欧美bt精品| 亚洲欧洲日韩在线| 中日韩av电影| 国产午夜三级一区二区三| 91精品黄色片免费大全| 欧美视频一区二区三区四区| 99久久免费视频.com| 国产aⅴ综合色| 国产成人在线视频免费播放| 久久国产麻豆精品| 麻豆国产一区二区| 亚洲成人av一区| 亚洲一区二三区| 石原莉奈在线亚洲三区| 亚洲一区二区三区中文字幕| 成人欧美一区二区三区小说| 欧美中文一区二区三区| 国产一区二区三区久久悠悠色av| 午夜久久电影网| 亚洲一区二区在线观看视频 | 久久久亚洲综合| 国产亚洲综合在线| 国产亚洲欧美中文| 国产精品网站一区| 亚洲人成亚洲人成在线观看图片| 亚洲免费观看高清在线观看| 一区二区三区日韩欧美| 亚洲精品福利视频网站| 国产精品麻豆网站| 亚洲综合色噜噜狠狠| 五月婷婷激情综合| 麻豆精品一区二区三区| 国产成人精品亚洲777人妖| 国产成人在线视频网址| 成人伦理片在线| 欧美亚洲综合另类| 久久综合色天天久久综合图片| 欧美国产精品一区二区三区| 亚洲三级小视频| 亚洲大片一区二区三区| 国产精品成人网| 极品尤物av久久免费看| 91麻豆国产在线观看| 久久精品日产第一区二区三区高清版 | 日本韩国欧美一区| 日韩精品一区二| 一区二区三区在线视频免费| 国产精品资源在线| 欧美美女一区二区在线观看| 亚洲日本一区二区| 波多野结衣在线一区| 精品成人佐山爱一区二区| 日产欧产美韩系列久久99| 在线观看日韩一区| 一区二区在线观看免费视频播放| 久久精品亚洲麻豆av一区二区| 日韩av中文字幕一区二区三区| 91丨porny丨国产| 国产欧美日韩三级| 国产经典欧美精品| 久久精品亚洲精品国产欧美| 国产中文字幕精品| 欧美va在线播放| 国产美女娇喘av呻吟久久| 精品国产乱码久久久久久闺蜜| 精品一区二区三区香蕉蜜桃| 欧美一级午夜免费电影| 国产在线视频精品一区| 国产网站一区二区| av男人天堂一区| 亚洲一区二区在线视频| 欧美亚洲另类激情小说| 午夜精品视频一区| 欧美一区欧美二区| 国产一区在线不卡| 亚洲欧美日本在线| 欧美挠脚心视频网站| 久久精品噜噜噜成人av农村| 久久久91精品国产一区二区精品| 97久久超碰国产精品电影| 亚洲一区二区三区四区在线| 欧美美女视频在线观看| 国产在线不卡一区| 一区二区三区四区不卡视频| 日韩一区二区在线观看视频播放| 青青草一区二区三区| 中文字幕乱码一区二区免费| 91福利国产成人精品照片| 日本麻豆一区二区三区视频| 中文字幕中文乱码欧美一区二区| 欧美吻胸吃奶大尺度电影 | 91香蕉视频污在线| 午夜视频在线观看一区二区| 国产女主播一区| 欧美一区二区久久| 国产91丝袜在线18| 免费精品99久久国产综合精品| 亚洲久草在线视频| 中文字幕亚洲成人| 91精品国产欧美一区二区18| 99久久国产综合精品麻豆| 九色综合国产一区二区三区| 一区二区三区成人| 国产精品久久久久久久久免费相片| 欧美一区二区日韩| 欧美午夜精品一区二区蜜桃| 高清成人免费视频| 久久av老司机精品网站导航| 亚洲成人先锋电影| 夜夜嗨av一区二区三区中文字幕| 中文字幕在线不卡| 国产精品久久久久久妇女6080 | 一区二区三区精品在线观看| 亚洲伦理在线免费看| 亚洲欧洲无码一区二区三区|