📄 tcf.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 *//* *//* tcf.c Nucleus PLUS 1.14 *//* *//* COMPONENT *//* *//* TC - Thread Control *//* *//* DESCRIPTION *//* *//* This file contains information (fact) routines for the Thread *//* Control component. *//* *//* DATA STRUCTURES *//* *//* None *//* *//* FUNCTIONS *//* *//* TCF_Established_Tasks Number of created tasks *//* TCF_Established_HISRs Number of created HISRs *//* TCF_Task_Pointers Build list of task pointers *//* TCF_HISR_Pointers Build list of HISR pointers *//* TCF_Task_Information Retrieve task information *//* TCF_HISR_Information Retrieve HISR information *//* *//* DEPENDENCIES *//* *//* cs_extr.h Common Service functions *//* tc_extr.h Thread Control functions *//* in_extr.h Initialization/Interrupt *//* functions *//* tm_extr.h Timer Control function *//* er_extr.h Error handling function *//* hi_extr.h History functions *//* *//* HISTORY *//* *//* DATE REMARKS *//* *//* 03-01-1994 Created initial version 1.1 from *//* original 1.0g version of TCC.C *//* *//* 03-18-1994 Verified version 1.1 *//* 04-17-1996 updated to version 1.2 *//* 11-18-1996 Protected Informational service *//* from NULL Control Block pointers *//* creating 1.2a. (SPR220) *//* 03-24-1998 Released version 1.3. *//* 03-26-1999 Released 1.11m (new release *//* numbering scheme) *//* 04-17-2002 Released version 1.13m *//* 11-07-2002 Released version 1.14 *//*************************************************************************/#define NU_SOURCE_FILE#include "cs_extr.h" /* Common service functions */#include "tc_extr.h" /* Thread control functions */#include "in_extr.h" /* Initialization/Interrupt */ /* functions */#include "tm_extr.h" /* Timer control functions */#include "er_extr.h" /* Error handling function */#include "hi_extr.h" /* History functions *//* Define external inner-component global data references. */extern CS_NODE *TCD_Created_Tasks_List;extern UNSIGNED TCD_Total_Tasks;extern TC_TCB *TCD_Priority_List[TC_PRIORITIES];extern UNSIGNED TCD_Priority_Groups;extern DATA_ELEMENT TCD_Sub_Priority_Groups[TC_MAX_GROUPS];extern UNSIGNED_CHAR TCD_Lowest_Set_Bit[];extern INT TCD_Highest_Priority;extern TC_TCB *TCD_Execute_Task;extern VOID *TCD_Current_Thread;extern UNSIGNED_CHAR TCD_Registered_LISRs[NU_MAX_VECTORS+1];extern VOID (*TCD_LISR_Pointers[NU_MAX_LISRS+1])(INT vector);extern INT TCD_Interrupt_Count;extern INT TCD_Stack_Switched;extern TC_PROTECT TCD_List_Protect;extern TC_PROTECT TCD_Schedule_Protect;extern TC_PROTECT TCD_LISR_Protect;extern CS_NODE *TCD_Created_HISRs_List;extern UNSIGNED TCD_Total_HISRs;extern TC_PROTECT TCD_HISR_Protect;extern INT TCD_Unhandled_Interrupt;/* Define external inner-component function calls that are not available to other components. */VOID TCT_Build_Task_Stack(TC_TCB *task_ptr);VOID TCT_Build_HISR_Stack(TC_HCB *hisr_ptr);VOID TCT_Build_Signal_Frame(TC_TCB *task_ptr);VOID TCT_Protect_Switch(TC_TCB *task);VOID TCT_Signal_Exit(VOID);/*************************************************************************//* *//* FUNCTION *//* *//* TCF_Established_Tasks *//* *//* DESCRIPTION *//* *//* This function returns the current number of established tasks. *//* Tasks previously deleted are no longer considered established. *//* *//* CALLED BY *//* *//* Application *//* *//* CALLS *//* *//* [TCT_Check_Stack] Stack checking function *//* *//* INPUTS *//* *//* None *//* *//* OUTPUTS *//* *//* TCD_Total_Tasks Number of established tasks *//* *//* HISTORY *//* *//* DATE REMARKS *//* *//* 03-01-1993 Created initial version 1.0 *//* 04-19-1993 Verified version 1.0 *//* *//*************************************************************************/UNSIGNED TCF_Established_Tasks(VOID){#ifdef NU_ENABLE_STACK_CHECK /* Call stack checking function to check for an overflow condition. */ TCT_Check_Stack();#endif /* Return the number of established tasks. */ return(TCD_Total_Tasks);}/*************************************************************************//* *//* FUNCTION *//* *//* TCF_Established_HISRs *//* *//* DESCRIPTION *//* *//* This function returns the current number of established HISRs. *//* HISRs previously deleted are no longer considered established. *//* *//* CALLED BY *//* *//* Application *//* *//* CALLS *//* *//* [TCT_Check_Stack] Stack checking function *//* *//* INPUTS *//* *//* None *//* *//* OUTPUTS *//* *//* TCD_Total_HISRs Number of established HISRs *//* *//* HISTORY *//* *//* DATE REMARKS *//* *//* 03-01-1993 Created initial version 1.0 *//* 04-19-1993 Verified version 1.0 *//* *//*************************************************************************/UNSIGNED TCF_Established_HISRs(VOID){#ifdef NU_ENABLE_STACK_CHECK /* Call stack checking function to check for an overflow condition. */ TCT_Check_Stack();#endif /* Return the number of established HISRs. */ return(TCD_Total_HISRs);}/*************************************************************************//* *//* FUNCTION *//* *//* TCF_Task_Pointers *//* *//* DESCRIPTION *//* *//* This function builds a list of task pointers, starting at the */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -