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

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

?? os_msg.c

?? SmallRTOSAVR.rar
?? C
?? 第 1 頁 / 共 2 頁
字號:
    }
    if (Tcb != NULL)
    {
        OS_ENTER_CRITICAL();
        while (Tcb != NULL)
        {
            Tcb = Tcb->MsgNext;
            Rt++;
        }
        OS_EXIT_CRITICAL();
    }
    return Rt;
}
#endif

/*********************************************************************************************************
** 函數名稱: OSMsgFlush
** 功能描述: 清空指定任務的消息
** 輸 入: TaskId:任務ID
** 輸 出: 無
** 作 者: 陳明計
** 日 期: 2005年6月10日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#if EN_OS_MSG > 0
        void OSMsgFlush (TASK_ID TaskId)
{
    OS_TCB *Tcb1,*Tcb2;

    Tcb1 = NULL;
	Tcb2 = NULL;  
    if (TaskId == OS_ID_SELF)
    {
        Tcb2 = OSTCBCur;
    }
    if (TaskId < OS_MAX_TASKS)
    {
        Tcb2 = &(OSTCBTbl[TaskId]);
    }
    if (Tcb2 != NULL)       /* 任務有效 */
    {
        OS_ENTER_CRITICAL();
        Tcb1 = Tcb2->MsgHard;
        Tcb2->MsgHard = NULL;
        Tcb2->MsgEnd = NULL;
        while (Tcb1 != NULL)
        {
            /* 從鏈表中刪除 */
            Tcb2 = Tcb1;
            Tcb1 = Tcb1->MsgNext;
            Tcb2->MsgNext = NULL;
            Tcb2->MsgPrev = NULL;
            Tcb2->OSTCBInfo |= OS_INFO_MSG_SENGED;
            /* 虛擬接收消息 */
            if ((Tcb2->OSTCBStat & OS_STAT_MSG_SENGED) != 0)
            {
                Tcb2->OSTCBStat = 0;
                _OS_TaskResume(Tcb2);
            }
        }
    }
    OSSched();
    OS_EXIT_CRITICAL();
}
#endif

/*********************************************************************************************************
** 函數名稱: OSMsgDel
** 功能描述: 刪除指定消息
** 輸 入: TaskId:發送消息的任務ID
** 輸 出: OS_NO_ERR:成功
**         OS_TASKID_INVALID:目標任務不存在
** 作 者: 陳明計
** 日 期: 2005年6月10日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#if EN_OS_MSG > 0
        uint8 OSMsgDel (TASK_ID TaskId)
{
    OS_TCB *Tcb;
    uint8 Rt;

    Tcb = NULL;
    if (TaskId == OS_ID_SELF)
    {
        Tcb = OSTCBCur;
    }
    if (TaskId < OS_MAX_TASKS)
    {
        Tcb = &(OSTCBTbl[TaskId]);
    }
    Rt = OS_TASKID_INVALID;
    if (Tcb != NULL)                                /* 任務有效 */
    {
        OS_ENTER_CRITICAL();
        /* 從鏈表中刪除 */
        Tcb->OSTCBInfo |= OS_INFO_MSG_SENGED;
        if (Tcb->MsgNext != NULL)
        {
            Tcb->MsgNext->MsgPrev = Tcb->MsgPrev;
        }
        if (Tcb->MsgPrev != NULL)
        {
            Tcb->MsgPrev->MsgNext = Tcb->MsgNext;
        }
        Tcb->MsgNext = NULL;
        Tcb->MsgPrev = NULL;
        Rt = OS_NO_ERR;
        OSSched();                                  /* 任務切換 */
        OS_EXIT_CRITICAL();
    }
    return Rt;
}
#endif

/*********************************************************************************************************
** 函數名稱: OSMsgSended
** 功能描述: 等待消息發送完畢
** 輸 入: Tick:超時時間
** 輸 出: OS_NO_ERR:成功
**         OS_ERR_PEND_ISR:在IRS中等待事件
**         OS_TIMEOUT:超時
** 作 者: 陳明計
** 日 期: 2005年6月10日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#if EN_OS_MSG_SENDED > 0
        uint8 OSMsgSended (uint16 Tick)
{
    uint8 Rt;
    
    if (OSIntNesting != 0)
    {
        return OS_ERR_PEND_ISR;
    }

    OS_ENTER_CRITICAL();
    if ((OSTCBCur->OSTCBInfo & OS_INFO_MSG_SENGED) == 0)    /* 消息沒有發送完畢  */
    {
        OSTCBCur->OSTCBStat |= OS_STAT_MSG_SENGED;
        if (Tick > 0)
        {
            OS_TimeDly(Tick);                               /* 超時設置      */
        }
        else
        {
            _OS_TaskSuspend(OSTCBCur);                      /* 從優先級鏈表中刪除 */
        }
        OSSched();
    }
    if ((OSTCBCur->OSTCBInfo & OS_INFO_MSG_SENGED) != 0)    /* 消息發送完畢 */
    {
        OSTCBCur->OSTCBInfo |= OS_INFO_MSG_SENGED;
        Rt = OS_NO_ERR;
    }
    else
    {
        Rt = OS_TIMEOUT;
    }
    OS_EXIT_CRITICAL();
    return Rt;
}
#endif

/*********************************************************************************************************
** 函數名稱: OSMsgBackAccept
** 功能描述: 無等待獲得消息反饋
** 輸 入: err:返回狀態
**             OS_NO_ERR:成功
**             OS_MSG_EMPTY:無消息
** 輸 出: 獲得的消息
** 作 者: 陳明計
** 日 期: 2005年6月10日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#if EN_OS_MSG_BACK_ACCEPT > 0
        void * OSMsgBackAccept (uint8 *err)
{
    void *Rt;
    
    OS_ENTER_CRITICAL();
    if ((OSTCBCur->OSTCBInfo & OS_INFO_MSG_BACK) != 0)
    {
        OSTCBCur->OSTCBInfo |= ~OS_INFO_MSG_BACK;
        *err = OS_NO_ERR;
        Rt = OSTCBCur->Msg;
    }
    else
    {
        *err = OS_MSG_EMPTY;
        Rt = NULL;
    }
    OS_EXIT_CRITICAL();
    return Rt;
}
#endif
/*********************************************************************************************************
** 函數名稱: OSMsgBackPend
** 功能描述: 獲得消息反饋
** 輸 入: Tick:超時時間
**         err:返回狀態
**             OS_NO_ERR:成功
**             OS_ERR_PEND_ISR:在IRS中等待事件
**             OS_TIMEOUT:超時
** 輸 出: 獲得的消息
** 作 者: 陳明計
** 日 期: 2005年6月10日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#if EN_OS_MSG_BACK_OPEND > 0
        void * OSMsgBackPend (uint16 Tick, uint8 *err)
{
    void *Rt;
    
    if (OSIntNesting != 0)
    {
        *err = OS_ERR_PEND_ISR;
        return NULL;
    }

    Rt = NULL;
    OS_ENTER_CRITICAL();
    if ((OSTCBCur->OSTCBInfo & OS_INFO_MSG_BACK) == 0)
    {
        OSTCBCur->OSTCBStat |= OS_STAT_MSG_BACK;
        if (Tick > 0)
        {
            OS_TimeDly(Tick);                       /* 超時設置 */
        }
        else
        {
            _OS_TaskSuspend(OSTCBCur);              /* 從優先級鏈表中刪除 */
        }
        OSSched();
    }
    if ((OSTCBCur->OSTCBInfo & OS_INFO_MSG_BACK) != 0)
    {
        OSTCBCur->OSTCBInfo &= ~OS_INFO_MSG_BACK;
        *err = OS_NO_ERR;
        Rt = OSTCBCur->Msg;
    }
    else
    {
        *err = OS_TIMEOUT;
        Rt = NULL;
    }
    OS_EXIT_CRITICAL();
    return Rt;
}
#endif

/*********************************************************************************************************
** 函數名稱: OSMsgBackPost
** 功能描述: 反饋消息
** 輸 入: TaskId:目的任務ID
**         Msg:消息
** 輸 出: OS_NO_ERR:成功
**         OS_TASKID_INVALID:目標任務不存在
** 作 者: 陳明計
** 日 期: 2005年6月10日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#if EN_OS_MSG_BACK_POST > 0
        uint8 OSMsgBackPost (TASK_ID TaskId, void *Msg)
{
    OS_TCB *Tcb;
    uint8 Rt;

    Rt = OS_TASKID_INVALID;
    if (TaskId < OS_MAX_TASKS)                              /* 目標任務有效 */
    if (TaskId != OSTCBCur->OSTCBId)                        /* 不是當前任務 */
    {
        Tcb = &(OSTCBTbl[TaskId]);
        OS_ENTER_CRITICAL();
        if (Tcb->OSTCBStat != OS_STAT_DEATH)                /* 目標任務有效 */
        if ((Tcb->OSTCBInfo & OS_INFO_MSG_SENGED) != 0)     /* 消息已經發送完畢 */
        {
            /* 反饋消息 */
            Tcb->OSTCBInfo |= OS_INFO_MSG_BACK;
            Tcb->Msg = Msg;
            Rt = OS_NO_ERR;
            if ((Tcb->OSTCBStat & OS_STAT_MSG_BACK) != 0)   /* 目標任務正在等待消息反饋 */
            {
                Tcb->OSTCBStat = 0;
                _OS_TaskResume(Tcb);
                 OSSched();
            }
        }
        OS_EXIT_CRITICAL();
    }
    return Rt;
}
#endif

#endif

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本大道久久精品懂色aⅴ| 日韩午夜激情av| 91精品国产综合久久福利软件 | 亚洲高清免费视频| 久久激情五月婷婷| 91丨porny丨在线| 精品国产制服丝袜高跟| 一区二区三区.www| 国产精品一区二区久久精品爱涩| 欧美三区免费完整视频在线观看| 国产农村妇女精品| 久久精品国产第一区二区三区| 欧美专区日韩专区| 国产精品对白交换视频| 国产一区二区三区国产| 7777精品伊人久久久大香线蕉的 | 日韩一级二级三级精品视频| 中文字幕在线观看一区二区| 久久99热国产| 日韩三级av在线播放| 亚洲精品免费一二三区| 粉嫩一区二区三区性色av| 日韩欧美电影一二三| 视频一区欧美日韩| 欧美性猛片xxxx免费看久爱| 亚洲婷婷综合色高清在线| 国产成人精品免费一区二区| 久久九九全国免费| 久久99最新地址| 欧美成人精品高清在线播放| 图片区日韩欧美亚洲| 欧洲av一区二区嗯嗯嗯啊| 亚洲美女电影在线| 成人18视频在线播放| 国产精品沙发午睡系列990531| 国产乱国产乱300精品| 久久综合精品国产一区二区三区| 欧美aaaaaa午夜精品| 91精品国产91热久久久做人人| 日日摸夜夜添夜夜添精品视频| 欧美日韩一区三区四区| 亚洲成a人片综合在线| 欧美日韩成人一区二区| 亚洲mv大片欧洲mv大片精品| 欧美人牲a欧美精品| 美女视频一区二区三区| 精品日韩99亚洲| 国产精品一区免费在线观看| 国产精品欧美久久久久一区二区| 风间由美中文字幕在线看视频国产欧美 | 欧美日韩在线一区二区| 亚洲高清视频中文字幕| 欧美一区二区免费| 韩国精品主播一区二区在线观看| 国产视频911| 99久久精品国产精品久久| 亚洲同性同志一二三专区| 在线观看成人免费视频| 蜜臀91精品一区二区三区 | 一区二区三区久久| 欧美日本一区二区| 裸体健美xxxx欧美裸体表演| 国产亚洲欧美色| 色综合久久久网| 日韩电影一二三区| 国产喂奶挤奶一区二区三区| 99久久久久久| 日韩专区欧美专区| 久久先锋影音av鲁色资源网| 91视视频在线观看入口直接观看www| 亚洲综合精品自拍| 日韩欧美卡一卡二| a级精品国产片在线观看| 亚洲一区精品在线| 久久天天做天天爱综合色| 91片黄在线观看| 激情成人综合网| 一区二区三区在线视频观看| 欧美mv和日韩mv国产网站| 91在线小视频| 精品写真视频在线观看| 一区二区三区四区中文字幕| 日韩精品一区二区在线| 成人app在线观看| 麻豆精品国产91久久久久久| 一区二区三区影院| 国产日韩欧美麻豆| 91精品一区二区三区在线观看| 成人小视频在线观看| 蜜臀av国产精品久久久久| 亚洲精品水蜜桃| 国产免费观看久久| 日韩午夜在线观看视频| 色婷婷狠狠综合| 成人动漫一区二区| 美日韩一区二区| 亚洲国产精品一区二区www | 国产在线播放一区三区四| 亚洲最新视频在线播放| 欧美国产一区二区在线观看| 日韩午夜三级在线| 在线不卡免费av| 欧美亚洲一区三区| 91在线观看下载| 成人久久18免费网站麻豆 | 日韩理论片网站| 国产精品久久久久久久久久久免费看| 日韩欧美高清dvd碟片| 欧美精品一卡二卡| 日本丰满少妇一区二区三区| 9l国产精品久久久久麻豆| 国产在线精品一区在线观看麻豆| 日韩精品视频网| 日韩电影免费一区| 日韩精品国产精品| 午夜伊人狠狠久久| 五月综合激情婷婷六月色窝| 午夜精品福利一区二区三区av| 亚洲图片欧美视频| 亚洲综合成人在线视频| 亚洲一区在线播放| 五月天精品一区二区三区| 亚洲第四色夜色| 午夜成人在线视频| 日本女优在线视频一区二区| 免费观看在线综合| 久久成人免费电影| 国产一区二区三区免费| 高清在线不卡av| 99精品视频一区二区| 色综合天天做天天爱| 在线观看免费视频综合| 欧美老女人第四色| 日韩三级在线观看| 精品国产乱码91久久久久久网站| 久久久综合视频| 亚洲天堂中文字幕| 亚洲国产中文字幕在线视频综合| 三级一区在线视频先锋| 久久国产夜色精品鲁鲁99| 国产传媒久久文化传媒| 99久久婷婷国产综合精品| 日本国产一区二区| 日韩欧美激情四射| 国产午夜亚洲精品理论片色戒| **性色生活片久久毛片| 亚洲一区二区三区国产| 免费的成人av| jizz一区二区| 欧美疯狂做受xxxx富婆| 久久综合五月天婷婷伊人| 国产精品久久久久一区| 婷婷丁香久久五月婷婷| 国产一区亚洲一区| 91老师片黄在线观看| 日韩欧美中文字幕一区| 国产精品丝袜黑色高跟| 日韩极品在线观看| 风流少妇一区二区| 91麻豆精品国产自产在线观看一区| 久久新电视剧免费观看| 亚洲愉拍自拍另类高清精品| 黄色资源网久久资源365| 色婷婷亚洲精品| 国产日韩欧美综合一区| 亚洲国产cao| 成人一区二区三区视频| 欧美日韩精品一区二区三区四区| 国产亚洲1区2区3区| 五月天婷婷综合| 色综合久久久久网| 国产片一区二区| 久久精品久久精品| 精品视频色一区| 亚洲欧美日韩久久精品| 国产一区在线看| 日韩欧美中文字幕制服| 亚洲一二三级电影| av男人天堂一区| 国产亚洲欧洲一区高清在线观看| 免费观看在线色综合| 欧美写真视频网站| 国产精品久久久久久久久久免费看 | 国产精品入口麻豆九色| 青青国产91久久久久久| 精品视频在线视频| 一区二区三区加勒比av| 成人av影院在线| 国产视频在线观看一区二区三区 | 欧美日韩一区二区三区四区| 中文字幕乱码久久午夜不卡 | 国产盗摄精品一区二区三区在线| 日韩无一区二区| 免费高清在线视频一区·| 欧美日韩一区二区三区在线| 一区二区三区四区不卡在线 | 亚洲精品你懂的| 色婷婷精品大在线视频| 亚洲伦理在线精品| 91麻豆国产自产在线观看|