tmr_defs.h

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

H
160
字号
<HTML><HEAD><TITLE>/home/asysweb/public_html/cortex/kernel/src/tmr_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><b><font color='DarkGreen'>#ifndef</font></b><font color="maroon"> __TMR_DEFS__H</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="__TMR_DEFS__H">__TMR_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="tsk_defs.h.FIND-INC"><font color="blue">"tsk_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="pri_defs.h.FIND-INC"><font color="blue">"pri_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="evn_defs.h.FIND-INC"><font color="blue">"evn_defs.h"</font></a><font color="#6920ac">/*********************** *  GLOBAL CONSTANSTS  * ***********************/</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="TIMR_ILLEGAL_ENTRY">TIMR_ILLEGAL_ENTRY</a></font> CRTX_NULL        <font color="#6920ac">/* illegal entry decriptor */</font><font color="#6920ac">/***************** * GLOBAL MACROS * *****************/</font><font color="#6920ac">/* macro to allocate memory for timer control block that */</font><font color="#6920ac">/* timer component does not allocate control block itself dynamically */</font><b><font color='DarkGreen'>#define</font></b> <font color="maroon"><a name="TIMR_STRUCT_DEFINE">TIMR_STRUCT_DEFINE</a></font>(Name,n) \        <i>struct</i> { \            <i>timr_Desc_t</i>     Desc; \            <i>crtx_Uint32_t</i>   ChangeFlags[(n+31)/32]; \            <i>timr_Entry_t</i>    Entries[n]; \        } Name = {{Name.ChangeFlags, Name.Entries}};<font color="#6920ac">/*********************** *  GLOBAL DATA TYPES  * ***********************/</font><font color="#6920ac">/* style of calling timer entry handler */</font><i><a name="timr_Style_t">typedef</a></i> <i>enum</i> {    TIMR_ONCE   = 1,    TIMR_FOREVER = 0} <i><font color='DarkBlue'>timr_Style_t</font></i>;<font color="#6920ac">/* timer control block */</font><i><a name="timr_Desc_t">typedef</a></i> <i>struct</i> timr_Desc_s <i><font color='DarkBlue'>timr_Desc_t</font></i>;<font color="#6920ac">/* entry control block */</font><i><a name="timr_Entry_t">typedef</a></i> <i>struct</i> timr_Entry_s <i><font color='DarkBlue'>timr_Entry_t</font></i>;<font color="#6920ac">/* entry handler type */</font><i><a name="timr_Function_t">typedef</a></i> <i>crtx_Void_t</i> (*<i><font color='DarkBlue'>timr_Function_t</font></i>)(<i>timr_Entry_t</i> *pEntry_a,                                       <i>crtx_Void_t</i> *pContext_a);<font color="#6920ac">/* create timer attributes */</font><i><a name="timr_Attr_t">typedef</a></i> <i>struct</i> {    <i>crtx_SegNum_t</i>           Segment;       <font color="#6920ac">/* memory segment for internal */</font>                                           <font color="#6920ac">/* structures */</font>    <i>prio_Level_t</i>            Priority;      <font color="#6920ac">/* timer task priority */</font>    <i>crtx_Char_t</i>             *pTaskName;    <font color="#6920ac">/* timer task name */</font>    <i>task_Attr_t</i>             *pTaskAttr;    <font color="#6920ac">/* timer task attributes */</font>} <i><font color='DarkBlue'>timr_Attr_t</font></i>;<font color="#6920ac">/* timer control block */</font><i>struct</i> timr_Desc_s {    <i>crtx_Uint32_t</i>   *pChangeFlags;  <font color="#6920ac">/* entries changes flags */</font>    <i>timr_Entry_t</i>    *pEntries;      <font color="#6920ac">/* pointer to entries descriptors */</font>    <i>timr_Entry_t</i>    *pActive;       <font color="#6920ac">/* chain of active entries */</font>    <i>crtx_Int_t</i>      EntriesNumber;  <font color="#6920ac">/* number of available entries */</font>    <i>evnt_Events_t</i>   Event;          <font color="#6920ac">/* event control block */</font>    <i>crtx_Bool_t</i>     MemAllocated;   <font color="#6920ac">/* flag that memory was allocated */</font>    <i>crtx_SegNum_t</i>   SegNum;         <font color="#6920ac">/* number of a segment to allocate memory*/</font>    <i>task_ID_t</i>       TaskId;         <font color="#6920ac">/* timer task task id */</font>};<font color="#6920ac">/* timer's entry control block */</font><i>struct</i> timr_Entry_s {    <i>timr_Entry_t</i>    *pNext;         <font color="#6920ac">/* next entry in chain of active */</font>    <i>timr_Entry_t</i>    *pPrev;         <font color="#6920ac">/* previous entry in chain of active */</font>    <i>crtx_Int_t</i>      CreateCounter;  <font color="#6920ac">/* counter to lock entry on creation */</font>    <i>crtx_Int_t</i>      Ready;          <font color="#6920ac">/* counter of entry changes */</font>    <i>crtx_Int_t</i>      StartReady;     <font color="#6920ac">/* value of Ready field on entry */</font>                                    <font color="#6920ac">/* activation */</font>    <i>timr_Function_t</i> pFunction;      <font color="#6920ac">/* entry handler */</font>    <i>void</i>            *pContext;      <font color="#6920ac">/* context to be sent to handler */</font>    <i>timr_Desc_t</i>     *pDesc;         <font color="#6920ac">/* pointer to timer control block */</font>    <i>tick_Timeout_t</i>  LastCall;       <font color="#6920ac">/* time counter of last handler calling */</font>    <i>tick_Timeout_t</i>  CreateTime;     <font color="#6920ac">/* time of creation */</font>    <i>tick_Timeout_t</i>  Delt;           <font color="#6920ac">/* delta time to next handler call */</font>    <i>tick_Timeout_t</i>  Interval;       <font color="#6920ac">/* time interval to call handler */</font>    <i>timr_Style_t</i>    NumCall;        <font color="#6920ac">/* counter of handler calls */</font>    <i>timr_Style_t</i>    Style;          <font color="#6920ac">/* style to call entry handler */</font>};<font color="#6920ac">/***************** *  GLOBAL DATA  * *****************/</font><i>extern</i> <i>timr_Attr_t</i> timr_AttrDefault_g;     <font color="#6920ac">/* default attributes */</font><font color="#6920ac">/*************************** *  PROCEDURES PROTOTYPES  * ***************************/</font><font color="#6920ac">/* init component procedure */</font><font size="+1"><i>crtx_Void_t</i> <a href="timr_Init.FIND-FUNC">timr_Init</a>(<i>crtx_Void_t</i>);</font><font color="#6920ac">/* create control block */</font><font size="+1"><i>timr_Desc_t</i> * <a href="timr_Create.FIND-FUNC">timr_Create</a>(    <i>crtx_Void_t</i>     *pDesc_a,   <font color="#6920ac">/* pointer to memory preallocated by macro */</font>                                <font color="#6920ac">/* TIMR_STRUCT_DEFINE if memory for timer */</font>                                <font color="#6920ac">/* data is allocated by application, in the */</font>                                <font color="#6920ac">/* case of CRTX_NULL this memory is allocated*/</font>                                <font color="#6920ac">/* the service */</font>    <i>crtx_Int_t</i>      EntrNum_a,  <font color="#6920ac">/* max entries number */</font>    <i>timr_Attr_t</i>     *pAttr_a    <font color="#6920ac">/* create attributes */</font>    );</font><font color="#6920ac">/* add entry */</font><font size="+1"><i>timr_Entry_t</i> * <a href="timr_Add.FIND-FUNC">timr_Add</a>(    <i>timr_Desc_t</i>     *pDesc_a,       <font color="#6920ac">/* pointer to timer control block */</font>    <i>timr_Function_t</i> pFunction_a,    <font color="#6920ac">/* entry handler */</font>    <i>crtx_Void_t</i>     *pContext_a,    <font color="#6920ac">/* user context to call handler */</font>    <i>tick_Timeout_t</i>  Interval_a,     <font color="#6920ac">/* time interval to call handler */</font>    <i>timr_Style_t</i>     Style_a        <font color="#6920ac">/* style to call entry handler */</font>    );</font><font color="#6920ac">/* remove handler */</font><font size="+1"><i>crtx_Bool_t</i> <a href="timr_Remove.FIND-FUNC">timr_Remove</a>(    <i>timr_Entry_t</i>    *pEntry_a       <font color="#6920ac">/* pointer to entry control block */</font>    );</font><font color="#6920ac">/* destroy timer control block */</font><font size="+1"><i>crtx_Void_t</i> <a href="timr_Destroy.FIND-FUNC">timr_Destroy</a>(    <i>timr_Desc_t</i> *pDesc_a    <font color="#6920ac">/* pointer on timer control block */</font>    );</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">/* __TMR_DEFS__H */</font></font></pre></BODY></HTML>

⌨️ 快捷键说明

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