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

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

?? os_task.lst

?? uCOS 嵌入式操作系統(tǒng)的改進(jìn)版,增加了網(wǎng)絡(luò)通訊.
?? LST
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
 409   3                      }
 410   2              OS_EXIT_CRITICAL();                                     /* Enabling INT. ignores next instruc. */
 411   2              OS_Dummy();                                             /* ... Dummy ensures that INTs will be */
 412   2              OS_ENTER_CRITICAL();                                    /* ... disabled HERE!                  */
 413   2                      if (OSLockNesting > 0) {
 414   3                  OSLockNesting--;
 415   3                      }
 416   2              OSTaskDelHook(ptcb);                                    /* Call user defined hook              */
 417   2              OSTaskCtr--;                                            /* One less task being managed         */
 418   2              OSTCBPrioTbl[prio] = (OS_TCB *)0;                       /* Clear old priority entry            */
 419   2              if (ptcb->OSTCBPrev == (OS_TCB *)0) {                   /* Remove from TCB chain               */
 420   3                  ptcb->OSTCBNext->OSTCBPrev = (OS_TCB *)0;
 421   3                  OSTCBList                  = ptcb->OSTCBNext;
 422   3              } else {
 423   3                  ptcb->OSTCBPrev->OSTCBNext = ptcb->OSTCBNext;
 424   3                  ptcb->OSTCBNext->OSTCBPrev = ptcb->OSTCBPrev;
 425   3              }
 426   2              ptcb->OSTCBNext   = OSTCBFreeList;                      /* Return TCB to free TCB list         */
C51 COMPILER V7.06   OS_TASK                                                               07/18/2003 11:06:04 PAGE 8   

 427   2              OSTCBFreeList     = ptcb;
 428   2      //        ptcb->OSTCBStkPtr = (OS_STK *)0;//#Lin                        /* Show that TCB is 'unused'      
             -     */
 429   2      #if OS_TASK_NAME_SIZE > 0
 430   2                      (void)strcpy(ptcb->OSTCBTaskName, "?");                       /* Unknown name                        */
 431   2      #endif
 432   2              OS_EXIT_CRITICAL();
 433   2              OS_Sched();                                             /* Find new highest priority task      */
 434   2              return (OS_NO_ERR);
 435   2          }
 436   1          OS_EXIT_CRITICAL();
 437   1          return (OS_TASK_DEL_ERR);
 438   1      }
 439          #endif
 440          /*$PAGE*/
 441          /*
 442          *********************************************************************************************************
 443          *                                    REQUEST THAT A TASK DELETE ITSELF
 444          *
 445          * Description: This function is used to:
 446          *                   a) notify a task to delete itself.
 447          *                   b) to see if a task requested that the current task delete itself.
 448          *              This function is a little tricky to understand.  Basically, you have a task that needs
 449          *              to be deleted however, this task has resources that it has allocated (memory buffers,
 450          *              semaphores, mailboxes, queues etc.).  The task cannot be deleted otherwise these
 451          *              resources would not be freed.  The requesting task calls OSTaskDelReq() to indicate that
 452          *              the task needs to be deleted.  Deleting of the task is however, deferred to the task to
 453          *              be deleted.  For example, suppose that task #10 needs to be deleted.  The requesting task
 454          *              example, task #5, would call OSTaskDelReq(10).  When task #10 gets to execute, it calls
 455          *              this function by specifying OS_PRIO_SELF and monitors the returned value.  If the return
 456          *              value is OS_TASK_DEL_REQ, another task requested a task delete.  Task #10 would look like
 457          *              this:
 458          *
 459          *                   void Task(void *data)
 460          *                   {
 461          *                       .
 462          *                       .
 463          *                       while (1) {
 464          *                           OSTimeDly(1);
 465          *                           if (OSTaskDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ) {
 466          *                               Release any owned resources;
 467          *                               De-allocate any dynamic memory;
 468          *                               OSTaskDel(OS_PRIO_SELF);
 469          *                           }
 470          *                       }
 471          *                   }
 472          *
 473          * Arguments  : prio    is the priority of the task to request the delete from
 474          *
 475          * Returns    : OS_NO_ERR          if the task exist and the request has been registered
 476          *              OS_TASK_NOT_EXIST  if the task has been deleted.  This allows the caller to know whether
 477          *                                 the request has been executed.
 478          *              OS_TASK_DEL_IDLE   if you requested to delete uC/OS-II's idle task
 479          *              OS_PRIO_INVALID    if the priority you specify is higher that the maximum allowed
 480          *                                 (i.e. >= OS_LOWEST_PRIO) or, you have not specified OS_PRIO_SELF.
 481          *              OS_TASK_DEL_REQ    if a task (possibly another task) requested that the running task be
 482          *                                 deleted.
 483          *********************************************************************************************************
 484          */
 485          /*$PAGE*/
 486          #if OS_TASK_DEL_EN > 0
 487          INT8U  OSTaskDelReq (INT8U prio) reentrant //using 0
C51 COMPILER V7.06   OS_TASK                                                               07/18/2003 11:06:04 PAGE 9   

 488          {
 489   1      #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
 490   1          OS_CPU_SR  cpu_sr;
 491   1      #endif
 492   1          BOOLEAN    stat;
 493   1          INT8U      err;
 494   1          OS_TCB    *ptcb;
 495   1      
 496   1      
 497   1      #if OS_ARG_CHK_EN > 0
 498   1          if (prio == OS_IDLE_PRIO) {                                 /* Not allowed to delete idle task     */
 499   2              return (OS_TASK_DEL_IDLE);
 500   2          }
 501   1          if (prio >= OS_LOWEST_PRIO) {                                                       /* Task priority valid ?               */
 502   2              if (prio != OS_PRIO_SELF) {                       
 503   3                  return (OS_PRIO_INVALID);
 504   3                      }
 505   2          }
 506   1      #endif
 507   1          if (prio == OS_PRIO_SELF) {                                 /* See if a task is requesting to ...  */
 508   2              OS_ENTER_CRITICAL();                                    /* ... this task to delete itself      */
 509   2              stat = OSTCBCur->OSTCBDelReq;                           /* Return request status to caller     */
 510   2              OS_EXIT_CRITICAL();
 511   2              return (stat);
 512   2          }
 513   1          OS_ENTER_CRITICAL();
 514   1          ptcb = OSTCBPrioTbl[prio];
 515   1          if (ptcb != (OS_TCB *)0) {                                  /* Task to delete must exist           */
 516   2              ptcb->OSTCBDelReq = OS_TASK_DEL_REQ;                    /* Set flag indicating task to be DEL. */
 517   2              err               = OS_NO_ERR;
 518   2          } else {
 519   2              err               = OS_TASK_NOT_EXIST;                  /* Task must be deleted                */
 520   2          }
 521   1          OS_EXIT_CRITICAL();
 522   1          return (err);
 523   1      }
 524          #endif
 525          /*$PAGE*/
 526          /*
 527          *********************************************************************************************************
 528          *                                        GET THE NAME OF A TASK
 529          *
 530          * Description: This function is called to obtain the name of a task.
 531          *
 532          * Arguments  : prio      is the priority of the task that you want to obtain the name from.
 533          *
 534          *              pname     is a pointer to an ASCII string that will receive the name of the task.  The 
 535          *                        string must be able to hold at least OS_TASK_NAME_SIZE characters.
 536          *
 537          *              err       is a pointer to an error code that can contain one of the following values:
 538          *
 539          *                        OS_NO_ERR                  if the requested task is resumed
 540          *                        OS_TASK_NOT_EXIST          if the task has not been created
 541          *                        OS_PRIO_INVALID            if you specified an invalid priority:
 542          *                                                   A higher value than the idle task or not OS_PRIO_SELF.
 543          *                        OS_ERR_PNAME_NULL          You passed a NULL pointer for 'pname'
 544          *
 545          * Returns    : The length of the string or 0 if the task does not exist.
 546          *********************************************************************************************************
 547          */
 548          
 549          #if OS_TASK_NAME_SIZE > 0
C51 COMPILER V7.06   OS_TASK                                                               07/18/2003 11:06:04 PAGE 10  

 550          INT8U  OSTaskNameGet (INT8U prio, char *pname, INT8U *err) reentrant //using 0
 551          {
 552   1      #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
 553   1          OS_CPU_SR  cpu_sr;
 554   1      #endif
 555   1          OS_TCB    *ptcb;
 556   1          INT8U      len;
 557   1      
 558   1      
 559   1          OS_ENTER_CRITICAL();
 560   1      #if OS_ARG_CHK_EN > 0
 561   1          if (prio > OS_LOWEST_PRIO && prio != OS_PRIO_SELF) {        /* Task priority valid ?               */
 562   2              *err = OS_PRIO_INVALID;                                 /* No                                  */
 563   2              return (0);
 564   2          }
 565   1          if (pname == (char *)0) {                    /* Is 'pname' a NULL pointer?                         */
 566   2              OS_EXIT_CRITICAL();                      /* Yes                                                */
 567   2              *err = OS_ERR_PNAME_NULL;
 568   2              return (0);
 569   2          }
 570   1      #endif
 571   1          if (prio == OS_PRIO_SELF) {                  /* See if caller desires it's own name                */
 572   2              prio = OSTCBCur->OSTCBPrio;
 573   2          }
 574   1          ptcb = OSTCBPrioTbl[prio];
 575   1          if (ptcb == (OS_TCB *)0) {                   /* Does task exist?                                   */
 576   2              OS_EXIT_CRITICAL();                      /* No                                                 */
 577   2              *err = OS_TASK_NOT_EXIST;
 578   2              return (0);
 579   2          }
 580   1          (void)strcpy(pname, ptcb->OSTCBTaskName);    /* Yes, copy name from TCB                            */
 581   1          len  = strlen(pname);
 582   1          OS_EXIT_CRITICAL();
 583   1          *err = OS_NO_ERR;
 584   1          return (len);
 585   1      }
 586          #endif
 587          
 588          /*$PAGE*/
 589          /*
 590          *********************************************************************************************************
 591          *                                        ASSIGN A NAME TO A TASK
 592          *
 593          * Description: This function is used to set the name of a task.
 594          *
 595          * Arguments  : prio      is the priority of the task that you want the assign a name to.
 596          *
 597          *              pname     is a pointer to an ASCII string that contains the name of the task.  The ASCII
 598          *                        string must be NUL terminated.
 599          *
 600          *              err       is a pointer to an error code that can contain one of the following values:
 601          *
 602          *                        OS_NO_ERR                  if the requested task is resumed
 603          *                        OS_TASK_NOT_EXIST          if the task has not been created
 604          *                        OS_ERR_TASK_NAME_TOO_LONG  if the name you are giving to the task exceeds the 
 605          *                                                   storage capacity of a task name as specified by 
 606          *                                                   OS_TASK_NAME_SIZE.
 607          *                        OS_ERR_PNAME_NULL          You passed a NULL pointer for 'pname'
 608          *                        OS_PRIO_INVALID            if you specified an invalid priority:
 609          *                                                   A higher value than the idle task or not OS_PRIO_SELF.
 610          *
 611          * Returns    : None
C51 COMPILER V7.06   OS_TASK                                                               07/18/2003 11:06:04 PAGE 11  

 612          *********************************************************************************************************
 613          */
 614          #if OS_TASK_NAME_SIZE > 0

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产a| 激情成人综合网| 国产免费观看久久| 欧美成人伊人久久综合网| 韩国毛片一区二区三区| 亚洲午夜精品久久久久久久久| 2020国产精品自拍| 成人小视频在线| 久久精品欧美一区二区三区不卡| 看电视剧不卡顿的网站| 久久久亚洲精华液精华液精华液| 秋霞成人午夜伦在线观看| 久久久精品国产免费观看同学| 在线观看成人免费视频| 日本高清不卡aⅴ免费网站| 精品三级在线看| 欧美日免费三级在线| 亚洲成人精品在线观看| 亚洲欧美日韩小说| 欧美精品一区二区三区蜜桃| 欧美精品一区二区蜜臀亚洲| 日韩欧美电影在线| 91麻豆精品国产| 欧美大黄免费观看| 久久综合色一综合色88| 国产精品人妖ts系列视频| 日本一区二区三区在线观看| 亚洲国产精品成人综合色在线婷婷| 中文字幕欧美国产| 中文字幕色av一区二区三区| 欧美经典一区二区| 亚洲精品乱码久久久久| 亚洲午夜久久久久久久久久久 | 美腿丝袜一区二区三区| 美女免费视频一区二区| 国产不卡在线一区| 亚洲网友自拍偷拍| 椎名由奈av一区二区三区| 国产亚洲精品资源在线26u| 欧美日韩精品高清| 欧美在线观看视频在线| 成人aa视频在线观看| 国产精品18久久久久久久久| 亚洲成人av免费| 中文字幕在线不卡国产视频| 久久精品免视看| 国产人伦精品一区二区| 久久久精品免费免费| 国产精品全国免费观看高清 | 欧美人xxxx| 欧美日韩高清在线| 亚洲午夜av在线| 国产剧情一区二区三区| 久久精品国产久精国产爱| 亚洲欧洲制服丝袜| 中文字幕在线不卡| 国产精品蜜臀在线观看| 一区二区三区国产| 99国产精品久久久久久久久久 | 国产ts人妖一区二区| 成人久久久精品乱码一区二区三区 | 国产精品久久看| 亚洲乱码精品一二三四区日韩在线| 亚洲一区二区高清| 亚洲私人黄色宅男| 亚洲国产综合色| 国产精品一品二品| 欧美日韩精品一区二区| 91麻豆精品国产91久久久久久久久| 在线播放日韩导航| 日韩欧美激情四射| 国产精品久久久久久一区二区三区| 亚洲影院免费观看| 欧美日韩精品免费观看视频| 国产做a爰片久久毛片| 久久在线观看免费| 日韩福利视频网| 成人av影视在线观看| 精品入口麻豆88视频| 亚洲精品精品亚洲| 国产一区二三区好的| 在线播放91灌醉迷j高跟美女| 免费成人结看片| 不卡一区二区三区四区| 亚洲精品一区二区三区香蕉| 一区二区三区成人| 亚洲成人免费视| 在线观看网站黄不卡| 国产农村妇女精品| 国产乱码字幕精品高清av | 精品国产a毛片| 视频一区在线播放| 成av人片一区二区| 久久这里只有精品首页| 久久99久国产精品黄毛片色诱| 欧美午夜不卡视频| 亚洲人成人一区二区在线观看 | 亚洲色图视频免费播放| 成人99免费视频| 久久众筹精品私拍模特| 国产揄拍国内精品对白| 91精品久久久久久蜜臀| 日韩专区中文字幕一区二区| 日本韩国欧美三级| 亚洲特黄一级片| 在线观看av不卡| 一区二区三区在线观看国产| 91极品视觉盛宴| 亚洲免费高清视频在线| 色综合天天视频在线观看| 亚洲国产成人在线| 成人丝袜18视频在线观看| 国产日韩欧美在线一区| 国产高清久久久| 精品国产免费久久| 日本视频在线一区| 欧美一区二区三区不卡| 视频一区欧美精品| 日韩欧美亚洲一区二区| 日本不卡一区二区三区高清视频| 91免费看视频| 丝袜诱惑制服诱惑色一区在线观看 | 欧美成人女星排名| 亚洲va天堂va国产va久| 欧美日韩在线观看一区二区| 亚洲综合精品自拍| 91精品国产欧美一区二区| 免费精品99久久国产综合精品| 欧美在线观看一区| 久久99精品国产.久久久久久| 日韩精品影音先锋| 国产99久久久国产精品免费看| 粉嫩在线一区二区三区视频| 欧美亚洲国产一区二区三区va | 99精品视频一区| 亚洲精品一二三区| 91精品国产综合久久精品app| 丝袜亚洲另类欧美综合| 国产亚洲综合在线| 99久久99久久精品免费观看 | 日韩一区二区三| 美女爽到高潮91| 精品区一区二区| 国产成人亚洲综合a∨猫咪| 精品日韩成人av| 成人国产在线观看| 亚洲一区在线观看视频| 成人免费看黄yyy456| 一区二区三区四区国产精品| 久久精品这里都是精品| 色综合天天性综合| 日产国产高清一区二区三区| 精品国产91久久久久久久妲己 | 日韩精品一级中文字幕精品视频免费观看 | 蜜桃精品视频在线观看| 久久久久久久久岛国免费| 国产高清一区日本| 一区二区三区四区中文字幕| 欧美日本一区二区三区四区| 国产成a人亚洲| 亚洲精品中文在线观看| 欧美无人高清视频在线观看| 91精品在线麻豆| 欧美一区二区国产| 日韩一级视频免费观看在线| 欧美中文字幕不卡| 欧美一区二区三区小说| 国产欧美日韩精品一区| 欧美一级二级在线观看| 精品视频1区2区| 欧美精品三级日韩久久| 日韩欧美国产精品| 国产欧美日韩激情| 亚洲va天堂va国产va久| 久久福利视频一区二区| 国产成人综合网| 成人动漫一区二区| 欧美一区二区二区| 国产精品免费丝袜| 视频一区视频二区中文字幕| 经典一区二区三区| 日韩欧美电影一二三| 一区二区三区中文字幕| 国内精品久久久久影院薰衣草| 99久久精品免费看国产免费软件| 成人h动漫精品一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 91久久国产最好的精华液| 日韩欧美一级二级| 成人免费一区二区三区视频| 欧美男男青年gay1069videost | 欧美色综合网站| 国产精品18久久久久久久久 | 欧美老人xxxx18| 成人国产视频在线观看| 蜜臀av一区二区在线观看| 一区二区三区欧美亚洲| 一本一道久久a久久精品综合蜜臀| 午夜精品一区在线观看| 国产不卡视频在线播放|