ext_defs.h

来自「澳洲人写的Cortex,包括uC_IP协议栈」· C头文件 代码 · 共 211 行

H
211
字号
<HTML><HEAD><TITLE>/home/asysweb/public_html/cortex/kernel/src/ext_defs.h</TITLE></HEAD><BODY><pre><font color="#6920ac">/*************************************************************************/</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/*     Copyright (c) 1997-1999 Australian Real Time Embedded Systems     */</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/* PROPRIETARY RIGHTS of Australian Real Time Embedded Systems           */</font><font color="#6920ac">/* are involved in the subject matter of this material. All reproduction,*/</font><font color="#6920ac">/* manufacturing, use, and sales rights pertaining to this subject matter*/</font><font color="#6920ac">/* are governed by the license agreement. The recipient of this software */</font><font color="#6920ac">/* implicitly accepts the terms of the license.                          */</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/*************************************************************************/</font><font color="#6920ac">/************************************************************************* * * FILE NAME * *      ext_defs.h * * SYSTEM COMPONENT * *      Extension Manager * * DESCRIPTION * *      This file contains data and constant definitions for  *      Extension manager * * *  The following table lists extension handlers supported on the  *  different extension levels (EXTS_LEVEL): * *  Level 1         Level 2         Level 3         Level 4         Level 5 *  ----------------------------------------------------------------------- *  TaskCreate      TaskCreate      TaskCreate      TaskCreate      TaskCreate *  TaskRun         TaskRun         TaskRun         TaskRun         TaskRun *  TaskRestart     TaskRestart     TaskRestart     TaskRestart     TaskRestart *  TaskStart       TaskStart       TaskStart       TaskStart       TaskStart *  TaskStop        TaskStop        TaskStop        TaskStop        TaskStop *  TaskDeleted     TaskDeleted     TaskDeleted     TaskDeleted     TaskDeleted *                  BeforeSwitch    AfterSwitch     BeforeSwitch    BeforeSwitch *                                                  AfterSwitch     AfterSwitch *                                                                  TaskSleep *                                                                  TaskWait *                                                                  TaskBlock * * SCCS HISTORY * *      @(#)ext_defs.h  1.1, 12/22/99, 16:43:31 * * AUTHOR * *      Vadim N. Azarovsky * * CREATED * *      10-Dec-1998         by Vadim N. Azarovsky * * REVISION HISTORY * *      NAME                DATE                    REMARKS * **************************************************************************/</font><b><font color='DarkGreen'>#ifndef</font></b><font color="maroon"> __EXT_DEFS__H</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="__EXT_DEFS__H">__EXT_DEFS__H</a></font><b><font color='DarkGreen'>#ifdef</font></b><font color="maroon">  __cplusplus</font><i>extern</i> <font color="DarkGreen">"C"</font> {<b><font color='DarkGreen'>#endif</font></b><font color="maroon">  <font color="#6920ac">/* __cplusplus */</font></font><b><font color='DarkGreen'>#include</font></b> <a href="crt_defs.h.FIND-INC"><font color="blue">"crt_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="rll_defs.h.FIND-INC"><font color="blue">"rll_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="tsk_defs.h.FIND-INC"><font color="blue">"tsk_defs.h"</font></a><font color="#6920ac">/*********************** *  GLOBAL CONSTANSTS  * ***********************/</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_BLOCK_ID">EXTS_BLOCK_ID</a></font>       0x45585442ul    <font color="#6920ac">/* "EXTB" - extensions control                                              * block ID  */</font><font color="#6920ac">/* * Return Codes */</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_SUCCESS">EXTS_SUCCESS</a></font>        CRTX_SUCCESS    <font color="#6920ac">/* successful completion */</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_ERR_INVALID_BLOCK">EXTS_ERR_INVALID_BLOCK</a></font>      -1      <font color="#6920ac">/* invalid ext control block */</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_ERR_DISABLED">EXTS_ERR_DISABLED</a></font>           -2      <font color="#6920ac">/* extensions disabled */</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_ERROR">EXTS_ERROR</a></font>                  -3      <font color="#6920ac">/* other errors */</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_LEVEL">EXTS_LEVEL</a></font>                  ENVI_EXTS_LEVEL<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_CREATE">EXTS_STATIC_TASK_CREATE</a></font>     ENVI_EXTS_STATIC_TASK_CREATE<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_RUN">EXTS_STATIC_TASK_RUN</a></font>        ENVI_EXTS_STAITC_TASK_RUN<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_RESTART">EXTS_STATIC_TASK_RESTART</a></font>    ENVI_EXTS_STAITC_TASK_RESTART<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_START">EXTS_STATIC_TASK_START</a></font>      ENVI_EXTS_STAITC_TASK_START<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_STOP">EXTS_STATIC_TASK_STOP</a></font>       ENVI_EXTS_STAITC_TASK_STOP<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_DELETED">EXTS_STATIC_TASK_DELETED</a></font>    ENVI_EXTS_STAITC_TASK_DELETED<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_BEFORE_SWITCH">EXTS_STATIC_BEFORE_SWITCH</a></font>   ENVI_EXTS_STATIC_BEFORE_SWITCH<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_AFTER_SWITCH">EXTS_STATIC_AFTER_SWITCH</a></font>    ENVI_EXTS_STATIC_AFTER_SWITCH<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_SLEEP">EXTS_STATIC_TASK_SLEEP</a></font>      ENVI_EXTS_STAITC_TASK_SLEEP<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_WAIT">EXTS_STATIC_TASK_WAIT</a></font>       ENVI_EXTS_STAITC_TASK_WAIT<b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="EXTS_STATIC_TASK_BLOCK">EXTS_STATIC_TASK_BLOCK</a></font>      ENVI_EXTS_STAITC_TASK_BLOCK<b><font color='DarkGreen'>#if</font></b><font color="maroon"> (EXTS_LEVEL &gt; 0) &amp;&amp; ((EXTS_STATIC_TASK_CREATE   != 0) || \</font>                         (<a href="#EXTS_STATIC_TASK_RUN">EXTS_STATIC_TASK_RUN</a>      != 0) || \                         (<a href="#EXTS_STATIC_TASK_RESTART">EXTS_STATIC_TASK_RESTART</a>  != 0) || \                         (<a href="#EXTS_STATIC_TASK_START">EXTS_STATIC_TASK_START</a>    != 0) || \                         (<a href="#EXTS_STATIC_TASK_STOP">EXTS_STATIC_TASK_STOP</a>     != 0) || \                         (<a href="#EXTS_STATIC_TASK_DELETED">EXTS_STATIC_TASK_DELETED</a>  != 0) || \                         (<a href="#EXTS_STATIC_BEFORE_SWITCH">EXTS_STATIC_BEFORE_SWITCH</a> != 0) || \                         (<a href="#EXTS_STATIC_AFTER_SWITCH">EXTS_STATIC_AFTER_SWITCH</a>  != 0) || \                         (<a href="#EXTS_STATIC_TASK_SLEEP">EXTS_STATIC_TASK_SLEEP</a>    != 0) || \                         (<a href="#EXTS_STATIC_TASK_WAIT">EXTS_STATIC_TASK_WAIT</a>     != 0) || \                         (<a href="#EXTS_STATIC_TASK_BLOCK">EXTS_STATIC_TASK_BLOCK</a>    != 0))<b><font color='DarkGreen'>#  define</font></b> <font color="maroon"><a name="EXTS_STATIC_ENABLED">EXTS_STATIC_ENABLED</a></font>       1<b><font color='DarkGreen'># else</font></b><font color="maroon"></font><b><font color='DarkGreen'>#  define</font></b> <font color="maroon"><a name="EXTS_STATIC_ENABLED">EXTS_STATIC_ENABLED</a></font>       0<b><font color='DarkGreen'># endif</font></b><font color="maroon"></font><font color="#6920ac">/***************** * GLOBAL MACROS * *****************/</font><font color="#6920ac">/* None */</font><font color="#6920ac">/*********************** *  GLOBAL DATA TYPES  * ***********************/</font><font color="#6920ac">/* task Child_a is created by Parent_a task */</font><i><a name="exts_TaskCreate_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskCreate_t</font></i>)(<i>task_ID_t</i> Parent_a, <i>task_ID_t</i> Child_a);<font color="#6920ac">/* task Child_a is make runnable by Parent_a task */</font><i><a name="exts_TaskRun_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskRun_t</font></i>)(<i>task_ID_t</i> Parent_a, <i>task_ID_t</i> Child_a);<font color="#6920ac">/* task Child_a is restarted by Parent_a task */</font><i><a name="exts_TaskRestart_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskRestart_t</font></i>)(<i>task_ID_t</i> Parent_a,<i>task_ID_t</i> Child_a);<font color="#6920ac">/* task Task_a started execution */</font><i><a name="exts_TaskStart_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskStart_t</font></i>)(<i>task_ID_t</i> Task_a);<font color="#6920ac">/* task Task_a stoped execution (terminated) */</font><i><a name="exts_TaskStop_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskStop_t</font></i>)(<i>task_ID_t</i> Task_a);<font color="#6920ac">/* task Deleted_a deleted is deleted by Current_a task */</font><i><a name="exts_TaskDeleted_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskDeleted_t</font></i>)(<i>task_ID_t</i> Current_a,                                           <i>task_ID_t</i> Deleted_a);<font color="#6920ac">/* task Current_a is about to be preempted by Next_a task */</font><i><a name="exts_BeforeSwitch_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_BeforeSwitch_t</font></i>)(<i>task_ID_t</i> Current_a,                                           <i>task_ID_t</i> Next_a);<font color="#6920ac">/* task Previous_a has been preempted by Current_a task */</font><i><a name="exts_AfterSwitch_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_AfterSwitch_t</font></i>)(<i>task_ID_t</i> Previous_a,                                          <i>task_ID_t</i> Current_a);<font color="#6920ac">/* task Task_a is going to sleep for Ticks_a */</font><i><a name="exts_TaskSleep_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskSleep_t</font></i>)(<i>task_ID_t</i> Task_a,                                         <i>tick_Timeout_t</i> Ticks_a);<font color="#6920ac">/* task Task_a is going to wait for Ticks_a */</font><i><a name="exts_TaskWait_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskWait_t</font></i>)(<i>task_ID_t</i> Task_a,                                        <i>rque_Queue_t</i> *pQueue_a,                                       <i>task_SuspendPolicy_t</i> SuspendPolicy_a,                                       <i>tick_Timeout_t</i> Ticks_a);<font color="#6920ac">/* task Task_a is going to block */</font><i><a name="exts_TaskBlock_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>exts_TaskBlock_t</font></i>)(<i>task_ID_t</i> Task_a,                                        <i>rque_Queue_t</i> *pQueue_a,                                         <i>task_SuspendPolicy_t</i> SuspendPolicy_a);<font color="#6920ac">/* extensions control block (ECB) */</font><i><a name="exts_Handlers_t">typedef</a></i> <i>struct</i> exts_Handlers_s {    <i>exts_TaskCreate_t</i>   TaskCreate;    <i>exts_TaskRun_t</i>      TaskRun;    <i>exts_TaskRestart_t</i>  TaskRestart;    <i>exts_TaskStart_t</i>    TaskStart;    <i>exts_TaskStop_t</i>     TaskStop;    <i>exts_TaskDeleted_t</i>  TaskDeleted;    <i>exts_TaskSleep_t</i>    TaskSleep;    <i>exts_TaskWait_t</i>     TaskWait;    <i>exts_TaskBlock_t</i>    TaskBlock;    <i>exts_BeforeSwitch_t</i> BeforeSwitch;    <i>exts_AfterSwitch_t</i>  AfterSwitch;} <i><font color='DarkBlue'>exts_Handlers_t</font></i>;<i><a name="exts_ECB_t">typedef</a></i> <i>struct</i> exts_ECB_s {    <i>rlst_Node_t</i>         Node;           <font color="#6920ac">/* node to link EXBs together */</font>    <i>exts_Handlers_t</i>     Handlers;       <font color="#6920ac">/* extension handlers */</font><b><font color='DarkGreen'>#if</font></b><font color="maroon"> ENVI_CRTX_ERR_CHECK_LEVEL &gt; 0</font>    <i>crtx_Uint32_t</i>       CheckID;        <font color="#6920ac">/* object id (for error checking) */</font><b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* ENVI_CRTX_ERR_CHECK_LEVEL &gt; 0 */</font></font>} <i><font color='DarkBlue'>exts_ECB_t</font></i>;<font color="#6920ac">/***************** *  GLOBAL DATA  * *****************/</font><font color="#6920ac">/* None */</font><font color="#6920ac">/*************************** *  PROCEDURES PROTOTYPES  * ***************************/</font><font size="+1"><i>exts_ECB_t</i> *<a href="exts_Create.FIND-FUNC">exts_Create</a>(<i>exts_Handlers_t</i> *pHandlers_a);</font><font size="+1"><i>crtx_Status_t</i> <a href="exts_Delete.FIND-FUNC">exts_Delete</a>(<i>exts_ECB_t</i> *pECB_a);</font><font color="#6920ac">/* ===== END OF THE DEFINITION FILE ===== */</font><b><font color='DarkGreen'>#ifdef</font></b><font color="maroon">  __cplusplus</font>}<b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* __cplusplus */</font></font><b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* __EXT_DEFS__H */</font></font></pre></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?