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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? os_q.c

?? arm7學(xué)習(xí)資料
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
    }    pq = (OS_Q *)pevent->OSEventPtr;                  /* Point to queue control block                  */    if (pq->OSQEntries >= pq->OSQSize) {              /* Make sure queue is not full                   */        OS_EXIT_CRITICAL();        return (OS_Q_FULL);    }    if (pq->OSQOut == pq->OSQStart) {                 /* Wrap OUT ptr if we are at the 1st queue entry */        pq->OSQOut = pq->OSQEnd;    }    pq->OSQOut--;    *pq->OSQOut = msg;                                /* Insert message into queue                     */    pq->OSQEntries++;                                 /* Update the nbr of entries in the queue        */    OS_EXIT_CRITICAL();    return (OS_NO_ERR);}#endif/*$PAGE*//***********************************************************************************************************                                        POST MESSAGE TO A QUEUE** Description: This function sends a message to a queue.  This call has been added to reduce code size*              since it can replace both OSQPost() and OSQPostFront().  Also, this function adds the *              capability to broadcast a message to ALL tasks waiting on the message queue.** Arguments  : pevent        is a pointer to the event control block associated with the desired queue**              msg           is a pointer to the message to send.  You MUST NOT send a NULL pointer.**              opt           determines the type of POST performed:*                            OS_POST_OPT_NONE         POST to a single waiting task *                                                     (Identical to OSQPost())*                            OS_POST_OPT_BROADCAST    POST to ALL tasks that are waiting on the queue*                            OS_POST_OPT_FRONT        POST as LIFO (Simulates OSQPostFront())**                            Below is a list of ALL the possible combination of these flags:**                                 1) OS_POST_OPT_NONE*                                    identical to OSQPost()**                                 2) OS_POST_OPT_FRONT  *                                    identical to OSQPostFront()**                                 3) OS_POST_OPT_BROADCAST*                                    identical to OSQPost() but will broadcast 'msg' to ALL waiting tasks**                                 4) OS_POST_OPT_FRONT + OS_POST_OPT_BROADCAST  is identical to*                                    OSQPostFront() except that will broadcast 'msg' to ALL waiting tasks** Returns    : OS_NO_ERR             The call was successful and the message was sent*              OS_Q_FULL             If the queue cannot accept any more messages because it is full.*              OS_ERR_EVENT_TYPE     If you didn't pass a pointer to a queue.*              OS_ERR_PEVENT_NULL    If 'pevent' is a NULL pointer*              OS_ERR_POST_NULL_PTR  If you are attempting to post a NULL pointer** Warning    : Interrupts can be disabled for a long time if you do a 'broadcast'.  In fact, the *              interrupt disable time is proportional to the number of tasks waiting on the queue.**********************************************************************************************************/#if OS_Q_POST_OPT_EN > 0INT8U  OSQPostOpt (OS_EVENT *pevent, void *msg, INT8U opt){#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */    OS_CPU_SR  cpu_sr;#endif        OS_Q      *pq;#if OS_ARG_CHK_EN > 0    if (pevent == (OS_EVENT *)0) {                    /* Validate 'pevent'                             */        return (OS_ERR_PEVENT_NULL);    }    if (msg == (void *)0) {                           /* Make sure we are not posting a NULL pointer   */        return (OS_ERR_POST_NULL_PTR);    }    if (pevent->OSEventType != OS_EVENT_TYPE_Q) {     /* Validate event block type                     */        return (OS_ERR_EVENT_TYPE);    }#endif    OS_ENTER_CRITICAL();    if (pevent->OSEventGrp != 0x00) {                 /* See if any task pending on queue              */        if ((opt & OS_POST_OPT_BROADCAST) != 0x00) {  /* Do we need to post msg to ALL waiting tasks ? */            while (pevent->OSEventGrp != 0x00) {      /* Yes, Post to ALL tasks waiting on queue       */                           OS_EventTaskRdy(pevent, msg, OS_STAT_Q);                }        } else {            OS_EventTaskRdy(pevent, msg, OS_STAT_Q);  /* No,  Post to HPT waiting on queue             */        }        OS_EXIT_CRITICAL();        OS_Sched();                                   /* Find highest priority task ready to run       */        return (OS_NO_ERR);    }    pq = (OS_Q *)pevent->OSEventPtr;                  /* Point to queue control block                  */    if (pq->OSQEntries >= pq->OSQSize) {              /* Make sure queue is not full                   */        OS_EXIT_CRITICAL();        return (OS_Q_FULL);    }    if ((opt & OS_POST_OPT_FRONT) != 0x00) {          /* Do we post to the FRONT of the queue?         */        if (pq->OSQOut == pq->OSQStart) {             /* Yes, Post as LIFO, Wrap OUT pointer if we ... */            pq->OSQOut = pq->OSQEnd;                  /*      ... are at the 1st queue entry           */        }        pq->OSQOut--;        *pq->OSQOut = msg;                            /*      Insert message into queue                */    } else {                                          /* No,  Post as FIFO                             */        *pq->OSQIn++ = msg;                           /*      Insert message into queue                */        if (pq->OSQIn == pq->OSQEnd) {                /*      Wrap IN ptr if we are at end of queue    */            pq->OSQIn = pq->OSQStart;        }    }    pq->OSQEntries++;                                 /* Update the nbr of entries in the queue        */    OS_EXIT_CRITICAL();    return (OS_NO_ERR);}#endif/*$PAGE*//***********************************************************************************************************                                        QUERY A MESSAGE QUEUE** Description: This function obtains information about a message queue.** Arguments  : pevent        is a pointer to the event control block associated with the desired queue**              pdata         is a pointer to a structure that will contain information about the message*                            queue.** Returns    : OS_NO_ERR           The call was successful and the message was sent*              OS_ERR_EVENT_TYPE   If you are attempting to obtain data from a non queue.*              OS_ERR_PEVENT_NULL  If 'pevent' is a NULL pointer**********************************************************************************************************/#if OS_Q_QUERY_EN > 0INT8U  OSQQuery (OS_EVENT *pevent, OS_Q_DATA *pdata){#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */    OS_CPU_SR  cpu_sr;#endif        OS_Q      *pq;    INT8U     *psrc;    INT8U     *pdest;#if OS_ARG_CHK_EN > 0    if (pevent == (OS_EVENT *)0) {                         /* Validate 'pevent'                        */        return (OS_ERR_PEVENT_NULL);    }    if (pevent->OSEventType != OS_EVENT_TYPE_Q) {          /* Validate event block type                */        return (OS_ERR_EVENT_TYPE);    }#endif    OS_ENTER_CRITICAL();    pdata->OSEventGrp = pevent->OSEventGrp;                /* Copy message queue wait list           */    psrc              = &pevent->OSEventTbl[0];    pdest             = &pdata->OSEventTbl[0];#if OS_EVENT_TBL_SIZE > 0    *pdest++          = *psrc++;#endif#if OS_EVENT_TBL_SIZE > 1    *pdest++          = *psrc++;#endif#if OS_EVENT_TBL_SIZE > 2    *pdest++          = *psrc++;#endif#if OS_EVENT_TBL_SIZE > 3    *pdest++          = *psrc++;#endif#if OS_EVENT_TBL_SIZE > 4    *pdest++          = *psrc++;#endif#if OS_EVENT_TBL_SIZE > 5    *pdest++          = *psrc++;#endif#if OS_EVENT_TBL_SIZE > 6    *pdest++          = *psrc++;#endif#if OS_EVENT_TBL_SIZE > 7    *pdest            = *psrc;#endif    pq = (OS_Q *)pevent->OSEventPtr;    if (pq->OSQEntries > 0) {        pdata->OSMsg = pq->OSQOut;                         /* Get next message to return if available  */    } else {        pdata->OSMsg = (void *)0;    }    pdata->OSNMsgs = pq->OSQEntries;    pdata->OSQSize = pq->OSQSize;    OS_EXIT_CRITICAL();    return (OS_NO_ERR);}#endif                                                     /* OS_Q_QUERY_EN                            *//*$PAGE*//***********************************************************************************************************                                      QUEUE MODULE INITIALIZATION** Description : This function is called by uC/OS-II to initialize the message queue module.  Your*               application MUST NOT call this function.** Arguments   :  none** Returns     : none** Note(s)    : This function is INTERNAL to uC/OS-II and your application should not call it.**********************************************************************************************************/void  OS_QInit (void){#if OS_MAX_QS == 1    OSQFreeList         = &OSQTbl[0];            /* Only ONE queue!                                    */    OSQFreeList->OSQPtr = (OS_Q *)0;#endif#if OS_MAX_QS >= 2    INT16U  i;    OS_Q   *pq1;    OS_Q   *pq2;    pq1 = &OSQTbl[0];    pq2 = &OSQTbl[1];    for (i = 0; i < (OS_MAX_QS - 1); i++) {      /* Init. list of free QUEUE control blocks            */        pq1->OSQPtr = pq2;        pq1++;        pq2++;    }    pq1->OSQPtr = (OS_Q *)0;    OSQFreeList = &OSQTbl[0];#endif}#endif                                                     /* OS_Q_EN                                  */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米在线7777在线精品| 国产清纯白嫩初高生在线观看91| 一区二区三区国产| 91精品欧美久久久久久动漫 | aaa亚洲精品| 91视频在线看| 欧美日本一区二区三区四区| 91精品蜜臀在线一区尤物| 欧美日韩国产一二三| 国产精品资源在线| 日韩高清电影一区| 裸体在线国模精品偷拍| 不卡视频免费播放| 在线观看www91| 欧美日韩高清影院| 久久久久99精品国产片| 日韩美女久久久| 亚洲精品高清视频在线观看| 亚洲福利国产精品| 激情深爱一区二区| 在线一区二区三区四区五区| 欧美日韩国产bt| 久久婷婷久久一区二区三区| 亚洲女爱视频在线| 日本午夜精品一区二区三区电影| 国产在线观看一区二区| 91欧美一区二区| 欧美一区二区三区免费观看视频| 国产精品久久久久久久久搜平片 | 久久福利资源站| 成人av中文字幕| 欧美美女bb生活片| 国产精品网站在线| 五月婷婷激情综合| 国产丶欧美丶日本不卡视频| 在线国产亚洲欧美| 正在播放亚洲一区| 亚洲视频每日更新| 美女脱光内衣内裤视频久久网站| 成人涩涩免费视频| 3d成人动漫网站| 久久电影国产免费久久电影| av福利精品导航| 久久综合九色综合欧美就去吻| 亚洲精品国产品国语在线app| 免费日本视频一区| 欧美精品乱码久久久久久按摩| 久久精品一区二区| 免费观看日韩av| 在线观看日韩精品| 国产三级欧美三级日产三级99| 免费在线观看视频一区| 色综合久久久久综合体桃花网| 日韩欧美一级特黄在线播放| 欧美韩日一区二区三区四区| 日本午夜精品视频在线观看 | wwww国产精品欧美| 亚洲最大的成人av| thepron国产精品| 精品久久久久久久久久久久久久久| 午夜国产精品一区| 91福利资源站| 一区免费观看视频| 91亚洲精华国产精华精华液| 久久中文字幕电影| 国产乱对白刺激视频不卡| 91精品国产乱码久久蜜臀| 亚洲黄色在线视频| 天堂资源在线中文精品| 美国精品在线观看| 欧美日韩卡一卡二| 亚洲精品伦理在线| 色综合久久66| 香蕉乱码成人久久天堂爱免费| 91日韩一区二区三区| 日韩毛片视频在线看| 91久久线看在观草草青青| 亚洲欧美色图小说| 7777精品伊人久久久大香线蕉完整版| 亚洲国产毛片aaaaa无费看| 99视频超级精品| 亚洲福利视频一区| 日韩欧美一区二区三区在线| 老鸭窝一区二区久久精品| 久久众筹精品私拍模特| 成人综合婷婷国产精品久久 | 亚洲精品国产a| 精品国产一区二区三区久久影院| 在线视频一区二区三区| 日韩av中文字幕一区二区三区| 亚洲乱码国产乱码精品精小说| 一个色综合av| 久久综合一区二区| 国产制服丝袜一区| 国产在线国偷精品产拍免费yy| 免费人成精品欧美精品| 亚洲免费视频中文字幕| 人妖欧美一区二区| 精品国产乱码久久| 极品瑜伽女神91| 精品国产sm最大网站| 高清国产一区二区三区| 中文字幕成人在线观看| 高清不卡一二三区| 亚洲精品菠萝久久久久久久| 欧美性大战xxxxx久久久| 亚洲人成小说网站色在线| 97久久精品人人澡人人爽| 一区二区三区四区不卡视频 | 亚洲电影在线播放| voyeur盗摄精品| 亚洲精品一卡二卡| 欧美情侣在线播放| 麻豆91小视频| 日本一区二区三级电影在线观看| 99久久精品国产一区二区三区| 一区二区三区中文字幕在线观看| 91精彩视频在线| 国产在线播放一区| 国产日韩欧美电影| 欧美亚洲图片小说| 国内精品伊人久久久久av一坑 | 亚洲成人一二三| 欧美一区二区网站| heyzo一本久久综合| 亚洲国产综合在线| 日本一区免费视频| 欧美日韩国产电影| 国产在线一区二区| 亚洲午夜日本在线观看| 日韩小视频在线观看专区| 狠狠色综合播放一区二区| 亚洲天堂成人在线观看| 欧美一区二区三区在| 色综合视频一区二区三区高清| 亚洲成人一区二区在线观看| 精品国产乱码久久久久久夜甘婷婷| 成人免费视频网站在线观看| 午夜欧美视频在线观看| 亚洲人被黑人高潮完整版| 在线电影国产精品| av网站一区二区三区| 丝瓜av网站精品一区二区| 精品第一国产综合精品aⅴ| 在线观看成人小视频| 另类综合日韩欧美亚洲| 精品国产免费视频| 在线观看视频一区二区| 国产一区二区福利视频| 视频一区二区三区在线| 国产精品天干天干在线综合| 在线看不卡av| 91免费观看视频在线| 麻豆精品国产传媒mv男同| 亚洲一区二区欧美| 欧美高清在线精品一区| 3d动漫精品啪啪1区2区免费 | 国产农村妇女毛片精品久久麻豆 | 欧美成人vps| 欧洲激情一区二区| 91在线国产福利| 国产一区二区剧情av在线| 亚洲精品中文在线影院| 中文字幕一区二区三区不卡 | 黑人巨大精品欧美一区| 日韩国产精品久久久久久亚洲| 亚洲欧洲日韩av| 精品处破学生在线二十三| 日韩欧美国产电影| 丝袜美腿亚洲色图| 国产午夜精品福利| 中文字幕一区二区三区四区| 蜜臀91精品一区二区三区| 91一区二区在线| www欧美成人18+| 亚洲精品欧美综合四区| 粉嫩在线一区二区三区视频| 4438成人网| 亚洲韩国精品一区| 色婷婷久久一区二区三区麻豆| 亚洲精品一区二区三区福利 | 色综合色狠狠综合色| 精品国产乱码久久| 精品一区二区三区影院在线午夜| 欧美日韩中文字幕一区| 成人免费在线视频| 99久久精品国产毛片| 中文字幕二三区不卡| 成人性生交大片免费看中文| 亚洲三级理论片| 久久久噜噜噜久久中文字幕色伊伊| 久草中文综合在线| 一区二区三区中文字幕电影| 精品国产一区二区亚洲人成毛片| 成人精品免费网站| 色狠狠桃花综合| 亚洲午夜激情av| 午夜视黄欧洲亚洲| 成人免费一区二区三区视频| 成人小视频免费观看|