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

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

?? tcd.c

?? nucleas source code
?? C
字號:
/*************************************************************************/
/*                                                                       */
/*               Copyright Mentor Graphics Corporation 2002              */
/*                         All Rights Reserved.                          */
/*                                                                       */
/* THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS  */
/* THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS   */
/* SUBJECT TO LICENSE TERMS.                                             */
/*                                                                       */
/*************************************************************************/

/*************************************************************************/
/*                                                                       */
/* FILE NAME                                               VERSION       */
/*                                                                       */
/*      tcd.c                                          Nucleus PLUS 1.14 */
/*                                                                       */
/* COMPONENT                                                             */
/*                                                                       */
/*      TC - Thread Control                                              */
/*                                                                       */
/* DESCRIPTION                                                           */
/*                                                                       */
/*      This file contains global data structures for use within this    */
/*      component.                                                       */
/*                                                                       */
/* DATA STRUCTURES                                                       */
/*                                                                       */
/*      TCD_Created_Tasks_List              Pointer to the linked-list   */
/*                                            of created tasks           */
/*      TCD_Total_Tasks                     Total number of created tasks*/
/*      TCD_Priority_List                   Array of pointers to ready   */
/*                                            tasks, indexed by priority */
/*      TCD_Execute_Task                    Highest priority task to     */
/*                                            execute                    */
/*      TCD_Priority_Groups                 Bit map of 32 groups of task */
/*                                            priority                   */
/*      TCD_Sub_Priority_Groups             An array of 32 sub-priority  */
/*                                            groups                     */
/*      TCD_Lowest_Set_Bit                  Lookup table to find the     */
/*                                            lowest bit set in a byte   */
/*      TCD_Highest_Priority                Highest priority ready       */
/*      TCD_Created_HISRs_List              Pointer to the linked-list   */
/*                                            of created HISRs           */
/*      TCD_Total_HISRs                     Total number of created HISRs*/
/*      TCD_Active_HISR_Heads               Active HISR list head ptrs   */
/*      TCD_Active_HISR_Tails               Active HISR list tail ptrs   */
/*      TCD_Execute_HISR                    Highest priority HISR to     */
/*                                            execute                    */
/*      TCD_Current_Thread                  Pointer to the currently     */
/*                                            executing thread           */
/*      TCD_Registered_LISRs                List of registered LISRs     */
/*      TCD_LISR_Pointers                   Actual LISR pointers         */
/*      TCD_Interrupt_Count                 Count of ISRs in progress    */
/*      TCD_Stack_Switched                  Flag indicating that stack   */
/*                                            was switched in an ISR     */
/*      TCD_List_Protect                    Task list protection         */
/*      TCD_System_Protect                  System protection            */
/*      TCD_System_Stack                    System stack pointer - top   */
/*      TCD_LISR_Protect                    Protect LISR registration    */
/*      TCD_HISR_Protect                    Protect the list of created  */
/*                                            HISRs                      */
/*      TCD_Interrupt_Level                 Enable interrupt level       */
/*      TCD_Unhandled_Interrupt             Contains the most recent     */
/*                                            unhandled interrupt in     */
/*                                            system error conditions    */
/*                                                                       */
/* FUNCTIONS                                                             */
/*                                                                       */
/*      None                                                             */
/*                                                                       */
/* DEPENDENCIES                                                          */
/*                                                                       */
/*      cs_defs.h                           Common Service constants     */
/*      tc_defs.h                           Thread Control constants     */
/*                                                                       */
/* HISTORY                                                               */
/*                                                                       */
/*         DATE                    REMARKS                               */
/*                                                                       */
/*      03-01-1993      Created initial version 1.0                      */
/*      04-19-1993      Verified version 1.0                             */
/*      01-01-1993      Added variable to save last                      */
/*                        unhandled interrupt in system                  */
/*                        error conditions, resulting in                 */
/*                        version 1.0a                                   */
/*      11-01-1993      Verified version 1.0a                            */
/*      03-01-1994      Change schedule protection to a                  */
/*                        system protection to improve                   */
/*                        performance, resulting in                      */
/*                        version 1.1                                    */
/*                                                                       */
/*      03-18-1994      Verified version 1.1                             */
/*      04-17-1996      updated to version 1.2                           */
/*      03-24-1998      Released version 1.3.                            */
/*      03-26-1999      Released 1.11m (new release                      */
/*                        numbering scheme)                              */
/*      04-23-2001      Made TCD_LISR_Pointers array an exclusive count  */
/*      04-17-2002      Released version 1.13m                           */
/*      11-07-2002      Released version 1.14                            */
/*************************************************************************/
#define         NU_SOURCE_FILE

#include        "cs_defs.h"                 /* Common Service constants  */
#include        "tc_defs.h"                 /* Thread Control constants  */


/* TCD_Created_Tasks_List is the head pointer of the linked list of
   created tasks.  If the list is NU_NULL, there are no tasks created.  */

CS_NODE        *TCD_Created_Tasks_List;


/* TCD_Total_Tasks contains the number of currently created tasks.  */

UNSIGNED        TCD_Total_Tasks;


/* TCD_Priority_List is an array of TCB pointers.  Each element of the array
   is effectively the head pointer of the list of tasks ready for execution
   at that priority.  If the pointer is NULL, there are no tasks ready
   for execution at that priority.  The array is indexed by priority.  */

TC_TCB         *TCD_Priority_List[TC_PRIORITIES];


/* TCD_Priority_Groups is a 32-bit unsigned integer that is used as a bit
   map.  Each bit corresponds to an 8-priority group.  For example, if bit 0
   is set, at least one task of priority 0 through 8 is ready for execution. */

UNSIGNED        TCD_Priority_Groups;


/* TCD_Sub_Priority_Groups is an array of sub-priority groups.  These are
   also used as bit maps.  Index 0 of this array corresponds to priorities
   0 through 8.  Bit 0 of this element represents priority 0, while bit 7
   represents priority 7.  */

DATA_ELEMENT    TCD_Sub_Priority_Groups[TC_MAX_GROUPS];


/* TCD_Lowest_Set_Bit is nothing more than a standard lookup table.  The
   table is indexed by values ranging from 1 to 255.  The value at that
   position in the table indicates the number of the lowest set bit.  This is
   used to determine the highest priority task represented in the previously
   defined bit maps.  */

UNSIGNED_CHAR  TCD_Lowest_Set_Bit[] = {0,
   0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0,
   1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1,
   0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0,
   2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2,
   0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0,
   1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1,
   0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0,
   4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3,
   0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0,
   1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1,
   0, 2, 0, 1, 0};


/* TCD_Highest_Priority contains the highest priority task ready for execution.
   Note that this does not necessarily represent the priority of the currently
   executing task.  This is true if the currently executing task has preemption
   disabled.  If no tasks are executing, this variable is set to the maximum
   priority.  */

INT             TCD_Highest_Priority;


/* TCD_Execute_Task is a pointer to the task to execute.  Note that this
   pointer does not necessarily point to the currently executing task.  There
   are several points in the system where this is true.  One situation is
   when preemption is about to take place.  Another situation can result from
   a internal protection conflict.  */

TC_TCB         *TCD_Execute_Task;


/* TCD_Created_HISRs_List is the head pointer of the list of created High-
   Level Interrupt Service Routines (HISR).  If this pointer is NU_NULL, there
   are no HISRs currently created.  */

CS_NODE        *TCD_Created_HISRs_List;


/* TCD_Total_HISRs contains the number of currently created HISRs.  */

UNSIGNED        TCD_Total_HISRs;


/* TCD_Active_HISR_Heads is an array of active HISR list head pointers.
   There are three HISR priorities available.  The HISR priority is an index
   into this table.  Priority/index 0 represents the highest priority.  */

TC_HCB         *TCD_Active_HISR_Heads[TC_HISR_PRIORITIES];


/* TCD_Active_HISR_Tails is an array of active HISR list tail pointers.
   There are three HISR priorities available.  The HISR priority is an index
   into this table.  Priority/index 0 represents the highest priority.  */

TC_HCB          *TCD_Active_HISR_Tails[TC_HISR_PRIORITIES];


/* TCD_Execute_HISR contains a pointer to the highest priority HISR to execute.
   If this pointer is NU_NULL, no HISRs are currently activated.  Note that
   the current thread pointer is not always equal to this pointer.  */

TC_HCB         *TCD_Execute_HISR;


/* TCD_Current_Thread points to the control block of the currently executing
   thread of execution.  Therefore, this variable points at either a TC_TCB
   or a TC_HCB structure.  Except for initialization, this variable is set
   and cleared in the target dependent portion of this component.  */

VOID           *TCD_Current_Thread;


/* TCD_System_Stack contains the system stack base pointer.  When the system
   is idle or in interrupt processing the system stack pointer is used.  This
   variable is usually setup during target dependent initialization.  */

VOID           *TCD_System_Stack;


/* TCD_Registered_LISRs is a list that specifies whether or not a
   LISR is registered for a given interrupt vector.  If the value in the
   list indexed by the vector is non-zero, then that value can be used
   as the index into the list of LISR pointers to find the actual registered
   LISR.  */

UNSIGNED_CHAR   TCD_Registered_LISRs[NU_MAX_VECTORS+1];


/* TCD_LISR_Pointers is a list of LISR pointers that indicate the LISR function
   to call when the interrupt occurs.  If the entry is NULL, it is
   available.  */

VOID    (*TCD_LISR_Pointers[NU_MAX_LISRS+1])(INT vector);


/* TCD_Interrupt_Count contains the number of Interrupt Service Routines (ISRs)
   currently in progress.  If the contents of this variable is zero, then no
   interrupts are in progress.  If the contents are greater than 1, nested
   interrupts are being processed.  */

INT     TCD_Interrupt_Count;


/* TCD_Stack_Switched contains a flag indicating that the system stack was
   switched to after the thread's context was saved.  This variable is not
   used in all ports.  */

INT     TCD_Stack_Switched;


/* TCD_List_Protect is a structure that is used to protect against multiple
   access to the list of established tasks.  */

TC_PROTECT      TCD_List_Protect;


/* TCD_System_Protect is a structure that is used to provide protection
   against multiple threads accessing the same system structures at the
   same time.  */

TC_PROTECT      TCD_System_Protect;


/* TCD_LISR_Protect is a structure that is used to provide protection against
   multiple threads accessing the LISR registration structures at the same
   time.  */

TC_PROTECT      TCD_LISR_Protect;


/* TCD_HISR_Protect is a structure that is used to provide protection against
   multiple threads accessing the created HISR linked-list at the same time. */

TC_PROTECT      TCD_HISR_Protect;


/* TCD_Interrupt_Level is a variable that contains the enabled interrupt
   level.  If the target processor does not have multiple enable interrupt
   levels, this variable is a boolean.  */

INT             TCD_Interrupt_Level;


/* TCD_Unhandled_Interrupt is a variable that contains the last unhandled
   interrupt in system error conditions.  */

INT             TCD_Unhandled_Interrupt;





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91.xcao| 2019国产精品| 欧美日韩精品一区视频| 欧美日产国产精品| 日韩一区二区三区在线视频| 欧美一区二区三区成人| 亚洲精品在线观看网站| 国产欧美日韩另类视频免费观看| 亚洲欧美另类图片小说| 午夜影院久久久| 狠狠色伊人亚洲综合成人| 99久久精品免费看国产免费软件| 欧美日韩国产小视频| 国产午夜亚洲精品不卡| 亚洲图片自拍偷拍| 国产精品一区二区男女羞羞无遮挡| 色老汉av一区二区三区| 久久综合久色欧美综合狠狠| 一区二区在线观看视频在线观看| 久久国产尿小便嘘嘘尿| 色综合欧美在线| 精品欧美一区二区在线观看| 亚洲欧美日韩精品久久久久| 精品一区二区在线播放| 91丨porny丨中文| 日韩视频123| 亚洲免费观看高清完整版在线观看 | 亚洲裸体xxx| 另类小说欧美激情| 欧美中文字幕一二三区视频| 久久久久久久久久看片| 首页国产欧美久久| 91尤物视频在线观看| 精品播放一区二区| 亚洲电影一级片| 成人激情文学综合网| 欧美一二三区精品| 亚洲自拍偷拍网站| 91在线视频观看| 国产亚洲美州欧州综合国| 性久久久久久久久久久久 | 国产精品久久毛片| 日产精品久久久久久久性色| 91美女在线视频| 欧美国产综合一区二区| 伦理电影国产精品| 4438x亚洲最大成人网| 亚洲女与黑人做爰| 大桥未久av一区二区三区中文| 欧美一区二区三区视频在线| 亚洲一二三四在线| 99国产精品国产精品久久| 国产欧美日韩不卡免费| 蜜桃视频一区二区| 在线综合+亚洲+欧美中文字幕| 亚洲另类春色国产| 99九九99九九九视频精品| 日本一区二区三区电影| 国产剧情在线观看一区二区| 日韩一区二区三区电影在线观看| 亚洲午夜久久久久久久久电影院 | 亚洲欧洲无码一区二区三区| 国产成人午夜高潮毛片| 久久在线观看免费| 久久精品国产成人一区二区三区 | 久久黄色级2电影| 日韩一级大片在线观看| 天天做天天摸天天爽国产一区 | 日本在线播放一区二区三区| 欧美日韩国产在线播放网站| 亚洲成人福利片| 在线观看亚洲专区| 亚洲一区二区在线视频| 欧美性淫爽ww久久久久无| 一区二区三区日韩欧美精品| 91老师片黄在线观看| 亚洲人成精品久久久久久| 91丝袜高跟美女视频| 亚洲美女屁股眼交| 欧美在线啊v一区| 亚洲亚洲人成综合网络| 欧美日韩一区二区在线观看| 五月开心婷婷久久| 欧美一区日本一区韩国一区| 蜜桃免费网站一区二区三区| 久久综合五月天婷婷伊人| 国产99一区视频免费| 中文字幕在线视频一区| 91麻豆精品秘密| 亚洲成年人网站在线观看| 7777精品伊人久久久大香线蕉的 | 久久综合狠狠综合久久激情| 国产成人亚洲综合色影视| 日本一区二区三区国色天香 | 中文字幕一区二区三区四区不卡| 99国产一区二区三精品乱码| 一二三四区精品视频| 欧美日韩二区三区| 麻豆成人91精品二区三区| 久久无码av三级| av综合在线播放| 亚洲国产综合91精品麻豆| 91精品国产91久久综合桃花| 国产一区二区三区日韩| 国产精品国产三级国产普通话三级 | www久久久久| 99riav久久精品riav| 亚洲一区在线观看免费观看电影高清| 欧美巨大另类极品videosbest| 久久99久久久欧美国产| 国产精品热久久久久夜色精品三区| 91在线无精精品入口| 日本成人超碰在线观看| 欧美精品一区二区在线播放| 91亚洲精品久久久蜜桃网站 | 欧美一区二区久久| 国产成人自拍在线| 亚洲一区二区视频| 久久丝袜美腿综合| 在线一区二区观看| 激情小说欧美图片| 中文字幕亚洲视频| 制服.丝袜.亚洲.中文.综合| 国产精品一二二区| 亚洲午夜在线视频| 久久久五月婷婷| 欧美私人免费视频| 国产成人aaa| 丝瓜av网站精品一区二区| 国产精品看片你懂得| 欧美日韩在线播放三区| 国产精品主播直播| 亚洲 欧美综合在线网络| 国产精品丝袜91| 欧美一区二区日韩一区二区| caoporm超碰国产精品| 免费精品99久久国产综合精品| 中文字幕日本不卡| 精品日韩在线观看| 在线观看国产91| 国产成人av一区二区三区在线观看| 亚洲福利电影网| 日韩一区日韩二区| 欧美精品一区二区在线观看| 欧美伦理视频网站| 99精品视频在线观看| 国产精品一区在线观看你懂的| 五月天视频一区| 亚洲三级电影网站| 国产日韩一级二级三级| 日韩一区二区三区观看| 欧美日韩性生活| 91热门视频在线观看| 丰满放荡岳乱妇91ww| 免费成人你懂的| 亚洲1区2区3区视频| 亚洲男人都懂的| 国产精品电影一区二区| 久久久亚洲综合| 日韩精品中文字幕在线一区| 欧美日韩成人综合天天影院| 欧美曰成人黄网| 97久久久精品综合88久久| 成人深夜在线观看| 国产福利不卡视频| 国产福利视频一区二区三区| 精品中文av资源站在线观看| 日韩av中文在线观看| 亚洲成年人影院| 亚洲成人精品在线观看| 夜夜精品浪潮av一区二区三区| 中文字幕在线不卡视频| 国产网站一区二区| 欧美r级在线观看| 欧美视频一区二区三区四区| 91九色最新地址| 99久久免费精品| 国产成人在线影院 | 中文字幕va一区二区三区| 欧美白人最猛性xxxxx69交| 色呦呦一区二区三区| 91小宝寻花一区二区三区| 国产精品一区二区三区乱码| 日韩电影网1区2区| 青青草精品视频| 午夜精品免费在线| 亚洲一区二区偷拍精品| 亚洲精品五月天| 亚洲色图都市小说| 国产精品免费视频一区| 成人欧美一区二区三区小说| 久久久国产精品午夜一区ai换脸| 日韩欧美国产小视频| 久久伊人蜜桃av一区二区| 日韩一级免费观看| 日韩午夜精品电影| 91搞黄在线观看| 欧美怡红院视频| 日本精品视频一区二区三区| 99久久综合精品|